Skip to content
Merged

mmt #36

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
Binary file added Computational Science/.DS_Store
Binary file not shown.
Binary file added Computational Science/graduate/.DS_Store
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@

本文旨在填补从知晓ISTA“做什么”到理解其“如何工作得快”之间的知识鸿沟。我们将系统性地剖析ISTA的[收敛理论](@entry_id:176137),从其稳健但缓慢的[全局收敛](@entry_id:635436)保证,到在特定条件下令人惊喜的快速局部收敛现象。通过本文的学习,您将不仅掌握[收敛性分析](@entry_id:151547)的数学工具,更能领会这些理论如何转化为算法设计的智慧和实践应用的洞察。

[click me](shttps://www.bohrium.com)

文章将分为三个核心部分。首先,在“原理与机制”一章中,我们将奠定理论基础,从ISTA的基本迭代步骤出发,严谨推导其 $O(1/k)$ 的[次线性收敛速率](@entry_id:755607),并深入探讨实现[局部线性收敛](@entry_id:751402)所需的关键条件及其背后的机制。接着,在“ISTA[收敛性分析](@entry_id:151547)的应用与跨学科联系”一章中,我们将展示这些理论分析的强大应用价值,探讨如何利用它来[增强算法](@entry_id:635795)性能、理解与其他[优化方法](@entry_id:164468)的深刻联系,以及如何将优化理论与[统计学习](@entry_id:269475)的需求相结合。最后,“动手实践”部分将提供一系列精心设计的计算练习,帮助您将抽象的理论概念转化为具体的计算技能和直观理解。

让我们从第一章开始,深入探索驱动ISTA收敛的核心原理。
Expand Down Expand Up @@ -155,4 +157,4 @@ FISTA (Fast ISTA) 是 ISTA 的一个著名加速版本,它通过引入一个
- 如果强[凸性](@entry_id:138568)来源于**光滑项 $f(x)$**,那么 FISTA 的动量机制能够有效利用这种曲率信息,实现比 ISTA 更优的[线性收敛](@entry_id:163614)速率(因子近似为 $1 - \sqrt{\mu/L}$,而 ISTA 为 $1 - \mu/L$)。
- 然而,如果强凸性仅来源于**非光滑项 $g(x)$**(例如,通过在 $\ell_1$-范数上增加一个 $\ell_2^2$ 项,即所谓的[弹性网络正则化](@entry_id:748859)),情况则大不相同。此时,梯度步 $x \mapsto x - \alpha \nabla f(x)$ 仅仅是非扩张的,而不是收缩的。算法的收敛性主要由[近端算子](@entry_id:635396) $\operatorname{prox}_{\alpha g}$ 提供的收缩保证。在这种结构下,FISTA 的动量项无法在渐近意义上提供额外的加速。因此,ISTA 和带重启策略的 FISTA 最终会以相同的[线性收敛](@entry_id:163614)速率收敛,该速率由[近端算子](@entry_id:635396)的[收缩性](@entry_id:162795)质决定,约为 $1/(1+\alpha\gamma)$。

综上所述,ISTA 的收敛行为呈现出丰富的多阶段特性。它从一个稳健但缓慢的全局次[线性收敛](@entry_id:163614)开始,在满足特定局部结构条件时,能够平滑过渡到一个快速的[局部线性收敛](@entry_id:751402)阶段。理解这一过程的原理与机制,对于在实践中诊断算法性能、调整参数以及选择合适的算法变体至关重要。
综上所述,ISTA 的收敛行为呈现出丰富的多阶段特性。它从一个稳健但缓慢的全局次[线性收敛](@entry_id:163614)开始,在满足特定局部结构条件时,能够平滑过渡到一个快速的[局部线性收敛](@entry_id:751402)阶段。理解这一过程的原理与机制,对于在实践中诊断算法性能、调整参数以及选择合适的算法变体至关重要。
Binary file added keyword/.DS_Store
Binary file not shown.
Binary file added keyword/2deg/.DS_Store
Binary file not shown.
Binary file added keyword/2deg/Feynman/.DS_Store
Binary file not shown.
4 changes: 3 additions & 1 deletion keyword/2deg/Feynman/zh-CN/MainContent.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
## 引言
在广阔的材料世界中,存在一个引人入胜的特例,其中电子被迫生活在一个“二维世界”——一个仅有纳米厚度的平面中。这就是二维电子气(2DEG)的世界,一个重写了量子力学规则的系统,从而产生了奇异的性质和革命性的技术。但这种限制为何如此特殊?当电子被剥夺第三个维度时,它们的行为如何?这种约束又会产生哪些独特的现象?本文将全面概述二维电子气,将基础理论与现实世界的影响联系起来。第一章“**原理与机制**”深入探讨其核心物理学,从恒定的态密度到[磁场](@article_id:313708)中[朗道能级](@article_id:304674)的形成,解释了这套量子规则如何支配系统的电学和磁学特性。随后的“**应用与跨学科联系**”一章将展示这些原理如何被利用,探讨二维电子气在诺贝尔奖级别的量子霍尔效应中的作用、其在先进材料中的工程实现,以及其在从[计量学](@article_id:309728)到自旋电子学等领域中的关键功能。

[meow](https://www.google.com.hk)

## 原理与机制

想象一个物理规则微妙而又深刻地不同的宇宙。这不是科幻小说,而是**[二维电子气 (2DEG)](@article_id:306100)** 的世界。在介绍了什么是二维电子气——被困在量子薄层中的电子片——之后,我们现在可以开始一段旅程,去理解其奇异而美妙的内部运作。就像埃德温·阿伯特的《平面国》中的居民一样,这些电子被禁止向上或向下移动;它们的整个存在都在一个平面上展开。这单一的限制极大地改写了它们的规则手册,导致了一系列独特的行为,这些行为不仅是科学上的奇观,更是前沿技术背后的引擎。
Expand Down Expand Up @@ -43,4 +45,4 @@

我们的旅程一直由一个简化的、纯粹的无相互作用电[子模](@article_id:309341)型引导。这是一个极其强大的模型,揭示了本质的物理学。但在现实世界中,电子作为带电粒子,会相互排斥。这些相互作用增加了另一层复杂性和丰富性。

最直接的后果是**[交换能](@article_id:297520)**,这是一种纯粹的量子力学效应,源于相同的电子必须相互避开。这种相互作用实际上降低了系统的总能量。当我们考虑它时,计算添加一个电子的“成本”——即化学势——的公式中增加了一个新的负项。这提醒我们,我们的简单模型仅仅是模型而已:它们是理解一个总是比我们最初想象的更复杂、更迷人的宇宙的绝佳起点。然而,我们所揭示的原理仍然是建立所有进一步理解的基石。
最直接的后果是**[交换能](@article_id:297520)**,这是一种纯粹的量子力学效应,源于相同的电子必须相互避开。这种相互作用实际上降低了系统的总能量。当我们考虑它时,计算添加一个电子的“成本”——即化学势——的公式中增加了一个新的负项。这提醒我们,我们的简单模型仅仅是模型而已:它们是理解一个总是比我们最初想象的更复杂、更迷人的宇宙的绝佳起点。然而,我们所揭示的原理仍然是建立所有进一步理解的基石。
Binary file added 计算科学@@619980/.DS_Store
Binary file not shown.
Binary file added 计算科学@@619980/本科@@619981/.DS_Store
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
## 引言

喵了个咪的

软件的性能与效率,在很大程度上取决于一个默默无闻却至关重要的角色——编译器的[代码生成器](@entry_id:747435)。它负责将程序员编写的[抽象逻辑](@entry_id:635488),转化为特定处理器能够执行的具体指令,是连接高级语言与底层硬件的最后一道桥梁。然而,这个转化过程并非简单的“翻译”,而是一系列充满智慧与权衡的复杂决策。从选择哪条机器指令最快,到如何管理稀缺的寄存器资源,再到如何编排指令以发挥硬件的最大潜能,这些决策共同决定了程序的最终速度和安全性。

本文将系统地揭示[代码生成器](@entry_id:747435)的各项核心职责。在“原理与机制”一章中,我们将深入探讨其工作的基本法则和核心技术,如[指令选择](@entry_id:750687)、[寄存器分配](@entry_id:754199)和[指令调度](@entry_id:750686)。接着,在“应用与跨学科联系”一章中,我们将展示这些技术如何在机器学习、[密码学](@entry_id:139166)乃至软件安全等前沿领域发挥关键作用。最后,“动手实践”部分将提供具体的编码挑战,让你亲身体验[代码生成](@entry_id:747434)的精妙之处。
Expand Down Expand Up @@ -58,4 +61,4 @@

最后,所有这一切都发生在一个由[代码生成器](@entry_id:747435)亲手搭建的“舞台”上——函数的**栈帧**(stack frame)。它负责在栈上为局部变量、保存的寄存器以及[溢出](@entry_id:172355)的值分配空间。这里还有一个至关重要的细节:**对齐**(alignment)。某些高级指令(如用于[并行计算](@entry_id:139241)的 SIMD 指令)非常“挑剔”,它们要求其操作的数据必须存放在 $16$ 字节对齐的内存地址上。如果数据没有对齐,它们要么直接罢工,要么执行效率大打[折扣](@entry_id:139170)。为此,[代码生成器](@entry_id:747435)必须一丝不苟地计算栈上每个元素的大小,并在必要时插入一些看似无用的**填充字节**(padding),以确保所有数据都完美地落在它们期望的地址边界上。这是一种为了满足硬件苛刻要求而进行的精密工程 [@problem_id:3628169]。

总而言之,[代码生成器](@entry_id:747435)的各项职责并非孤立的任务,而是一张相互关联、充满权衡的决策网络。指令的选择会影响寄存器的需求,而寄存器的压力又反过来约束指令的调度。一个看似简单的 C 语言语句,在[代码生成器](@entry_id:747435)手中,会绽放为一段精心编排的机器指令之舞,其目的不仅是为了正确,更是为了从底层的硅晶片中榨取出每一滴性能。这便是[代码生成器](@entry_id:747435)隐藏的魅力:一个不知疲倦的智能代理,将我们的抽象思维,转化为触手可及、快如闪电的现实。
总而言之,[代码生成器](@entry_id:747435)的各项职责并非孤立的任务,而是一张相互关联、充满权衡的决策网络。指令的选择会影响寄存器的需求,而寄存器的压力又反过来约束指令的调度。一个看似简单的 C 语言语句,在[代码生成器](@entry_id:747435)手中,会绽放为一段精心编排的机器指令之舞,其目的不仅是为了正确,更是为了从底层的硅晶片中榨取出每一滴性能。这便是[代码生成器](@entry_id:747435)隐藏的魅力:一个不知疲倦的智能代理,将我们的抽象思维,转化为触手可及、快如闪电的现实。