更改

跳到导航 跳到搜索
第82行: 第82行:     
== 顿悟现象的可解释性分析 ==
 
== 顿悟现象的可解释性分析 ==
−
尽管[[人工智能]]神经网络在各种任务中非常出色,但它们的内部机制仍然像过去一样难以理解。研究人员一直在寻找任何可以深入了解这些模型的线索。顿悟现象的发现促使了很多后续研究,很多人已经复现了这些结果,甚至进行了[[逆向工程]]。最近发表的研究论文不仅阐明了这些神经网络在顿悟时正在做什么,还提供了一个新的视角来审视它们的内部机制。麻省理工学院的 Eric Michaud 评价,顿悟现象中数据的设置就像是一个很好的模式生物,观察这个生物体内部有助于理解深度学习的许多不同方面。现就职于伦敦谷歌深度思维的 Neel Nanda 也认为,挖掘模型顿悟的内部原理,不仅能发现美丽的结构,而且这种美丽的结构对于理解内部发生的事情非常重要<ref>{{cite web | author=Pérez I | title=How Do Machines Grok Data? | website=Quanta Magazine | year=2024 | url=https://www.quantamagazine.org/how-do-machines-grok-data-20240412/ }}</ref>。这些模型内部表征的研究揭示了神经网络在处理复杂任务时的内部运作机制,进一步验证了顿悟现象的可重复性和可解释性.通过深入分析内部结构,科学家们能够更好地理解神经网络如何逐步构建和优化其认知模型,从而为未来的AI研究提供了宝贵的理论基础和实践指导。
+
尽管[[人工智能]]神经网络在各种任务中非常出色,但它们的内部机制仍然像过去一样难以理解。研究人员一直在寻找任何可以深入了解这些模型的线索。顿悟现象的发现促使了很多后续研究,很多人已经复现了这些结果,甚至进行了[[逆向工程]]。最近发表的研究论文不仅阐明了这些神经网络在顿悟时正在做什么,还提供了一个新的视角来审视它们的内部机制。麻省理工学院的 Eric Michaud 评价,顿悟现象中数据的设置就像是一个很好的模式生物,观察这个生物体内部有助于理解深度学习的许多不同方面。现就职于伦敦谷歌深度思维的 Neel Nanda 也认为,挖掘模型顿悟的内部原理,不仅能发现美丽的结构,而且这种美丽的结构对于理解内部发生的事情非常重要<ref>{{cite web | author=Pérez I | title=How Do Machines Grok Data? | website=Quanta Magazine | year=2024 | url=https://www.quantamagazine.org/how-do-machines-grok-data-20240412/ }}</ref>。这些模型内部表征的研究揭示了神经网络在处理复杂任务时的内部运作机制,进一步验证了顿悟现象的可重复性和可解释性。通过深入分析内部结构,科学家们能够更好地理解神经网络如何逐步构建和优化其认知模型,从而为未来的AI研究提供了宝贵的理论基础和实践指导。
       
=== 结构化表征 ===
 
=== 结构化表征 ===
−
OpenAI团队在发现顿悟最初就对模型输出层的权重进行了可视化(使用t-SNE),发现网络学到的符号嵌入中出现了可识别的数学结构<ref name="Power_grokking" />,例如下图所示,在模加法任务中,[[嵌入空间]]中出现了圆形拓扑结构,表现出模运算的循环性质;在对称群S5任务中,嵌入空间中出现了[[子群]]和[[陪集]]的结构,显示出网络对群结构的理解。
+
OpenAI团队在发现顿悟最初就对模型输出层的权重进行了可视化(使用t-SNE),发现网络学到的符号嵌入中出现了可识别的数学结构<ref name="Power_grokking" />,例如下图所示,在模加法任务中,[[嵌入空间]]中出现了圆形拓扑结构,表现出模运算的循环性质;在对称群S5任务中,嵌入空间中出现了[[子群]]和[[陪集]]的结构,显示出神经网络对群结构的理解。
 
[[文件:群运算和模加法运算的嵌入空间结构.png|none|缩略图|群运算和模加法运算的嵌入空间结构(左:群运算,右:模加法运算)。左图为在S5群运算上训练的网络输出层权重的t-SNE投影,可以观察到排列的聚类,每个聚类都是子群 <math>\langle (0,3)(1,4), (1,2)(3,4) \rangle</math>或其共轭子群的陪集。右图是在模加法上训练的网络输出层权重的t-SNE投影,线条表示每个元素加8的结果,颜色表示各元素模8的余数。模加法对应的圆环拓扑结构通过"将每个元素加8"形成的"数轴"得以呈现,这种结构在采用权重衰减优化的网络中表现得更为明显。
 
[[文件:群运算和模加法运算的嵌入空间结构.png|none|缩略图|群运算和模加法运算的嵌入空间结构(左:群运算,右:模加法运算)。左图为在S5群运算上训练的网络输出层权重的t-SNE投影,可以观察到排列的聚类,每个聚类都是子群 <math>\langle (0,3)(1,4), (1,2)(3,4) \rangle</math>或其共轭子群的陪集。右图是在模加法上训练的网络输出层权重的t-SNE投影,线条表示每个元素加8的结果,颜色表示各元素模8的余数。模加法对应的圆环拓扑结构通过"将每个元素加8"形成的"数轴"得以呈现,这种结构在采用权重衰减优化的网络中表现得更为明显。
 
|764x764像素]]
 
|764x764像素]]
   −
尽管输入是无内在结构的符号(如字母、数字代号),网络仍能从它们的交互中推断出结构,并形成有意义的嵌入表示,这表明神经网络不仅能记忆训练数据,还能从有限样本中归纳出抽象关系。
+
尽管对于神经网络来说,输入是无内在先验结构与意义的符号,网络仍能从它们的交互中推断出结构,并形成有意义的嵌入表示,这表明神经网络不仅能记忆训练数据,还能从有限样本中归纳出抽象关系。
    
刘子鸣在他们的论文<ref name=":1" />里更明确地指出,泛化的发生与输入嵌入高度结构化的出现直接相关。他们发现,在玩具模型中,这种结构表现为嵌入向量形成平行四边形结构;在模运算中,表现为圆形结构。当且仅当模型学到了这种结构,它才能进行泛化。为了精确衡量结构化程度,他们还提出了一个可量化的指标——表征质量指数(RQI)。RQI 衡量的是学习到的嵌入在多大程度上满足任务所要求的数学关系(例如,在加法中,检查有多少 <math>(i, j, m, n)</math> 四元组满足 <math>E_i + E_j = E_m + E_n</math>)。实验表明,RQI 与模型的泛化准确率高度一致,证实了结构化表征是泛化的直接原因。
 
刘子鸣在他们的论文<ref name=":1" />里更明确地指出,泛化的发生与输入嵌入高度结构化的出现直接相关。他们发现,在玩具模型中,这种结构表现为嵌入向量形成平行四边形结构;在模运算中,表现为圆形结构。当且仅当模型学到了这种结构,它才能进行泛化。为了精确衡量结构化程度,他们还提出了一个可量化的指标——表征质量指数(RQI)。RQI 衡量的是学习到的嵌入在多大程度上满足任务所要求的数学关系(例如,在加法中,检查有多少 <math>(i, j, m, n)</math> 四元组满足 <math>E_i + E_j = E_m + E_n</math>)。实验表明,RQI 与模型的泛化准确率高度一致,证实了结构化表征是泛化的直接原因。
第96行: 第96行:     
=== 时钟和披萨算法 ===
 
=== 时钟和披萨算法 ===
−
Nanda 的工作重点是逆向工程训练好的网络,以弄清楚它学习了哪些算法<ref name=":0" />。他设计了一个更简单的 OpenAI 神经网络版本,以便在模型学习模块化算术时仔细检查其参数。他观察到了相同的行为:过拟合逐渐让位于泛化,测试准确率突然提高。他的网络也在将数字排列成圆形。
+
Nanda 的工作重点是逆向工程训练好的神经网络,以弄清楚它学习了哪些算法<ref name=":0" />。他设计了一个更简单的神经网络版本,以便在模型学习模块化算术时仔细检查其参数。他观察到了相同的行为:过拟合逐渐让位于泛化,测试准确率突然提高。他的网络也在将数字排列成圆形。
   −
经过一番努力,Nanda最终弄清了原因。当将数字表示在圆形上时,网络并不是像看时钟的小学生那样简单地数数:它在进行一些复杂的数学操作。通过研究网络参数的值,Nanda和同事们发现,它通过对这些时钟数字进行“[[离散傅里叶变换]]”来相加——使用正弦和余弦等三角函数转换数字,然后利用三角恒等式对这些值进行操作以得出解决方案。
+
经过一番努力,Nanda最终弄清了原因。当将数字表示在圆形时钟上时,网络并不是像看时钟的小学生那样简单地数数,而是在进行一些复杂的数学操作。通过研究网络参数的值,Nanda和同事们发现,它通过对这些时钟数字进行“[[离散傅里叶变换]]”来相加——使用正弦和余弦等三角函数转换数字,然后利用三角恒等式对这些值进行操作以得出解决方案。
   −
麻省理工学院的刘子鸣团队继续研究了Nanda的工作,他们展示了这些“理解”神经网络并不总是发现这个“时钟”算法,有时会找到研究人员称之为“披萨”的算法<ref>{{cite journal | author1=Zhong Z | author2=Liu Z | author3=Tegmark M | author4=Andreas J | year=2023 | title=The clock and the pizza: Two stories in mechanistic explanation of neural networks | journal=Advances in Neural Information Processing Systems | volume=36 | page=27223–27250 | url= }}</ref>。这种方法设想一个披萨被分成若干片并按顺序编号,要加两个数,想象从披萨中心指向所问数字的箭头,然后计算由前两个箭头形成的角度的角平分线。这条线穿过披萨某一片的中间:这一片的编号就是两个数的和。这些操作也可以用三角函数和代数操作来表示,即对 a 和 b 的正弦和余弦进行操作,理论上它们与“时钟”方法一样精确。时钟和披萨算法的原理如下图所示:
+
刘子鸣团队继续研究了Nanda的工作,他们展示了这些“理解”神经网络并不总是发现这个“时钟”算法,有时会找到研究人员称之为“披萨”的算法<ref>{{cite journal | author1=Zhong Z | author2=Liu Z | author3=Tegmark M | author4=Andreas J | year=2023 | title=The clock and the pizza: Two stories in mechanistic explanation of neural networks | journal=Advances in Neural Information Processing Systems | volume=36 | page=27223–27250 | url= }}</ref>。这种方法设想一个披萨被分成若干片并按顺序编号,要加两个数,想象从披萨中心指向所问数字的箭头,然后计算由前两个箭头形成的角度的角平分线。这条线穿过披萨某一片的中间:这一片的编号就是两个数的和。这些操作也可以用三角函数和代数操作来表示,即对 a 和 b 的正弦和余弦进行操作,理论上它们与时钟方法一样精确。时钟和披萨算法的原理如下图所示:
    
[[文件:披萨和时钟.png|none|缩略图|时钟与披萨算法示意图。左侧为Clock算法,右侧为Pizza算法。两者均包含三个核心步骤:输入嵌入(Embed)、中间计算(MLP/Transformer)、输出预测(Unembed/Logit),但中间计算逻辑存在本质差异。时钟算法模拟时钟指针相加:将<math>a</math> 和<math>b</math> 对应的角度直接相加,得到和<math>a+b</math> 对应的角度,再映射到结果<math>c</math> 。披萨算法通过<math>a</math> 和<math>b</math> 的平均值向量所在的“披萨切片"区域判断结果。平均值向量的角度由<math>a+b</math> 决定,长度由<math>a-b</math> 决定。|764x764像素]]
 
[[文件:披萨和时钟.png|none|缩略图|时钟与披萨算法示意图。左侧为Clock算法,右侧为Pizza算法。两者均包含三个核心步骤:输入嵌入(Embed)、中间计算(MLP/Transformer)、输出预测(Unembed/Logit),但中间计算逻辑存在本质差异。时钟算法模拟时钟指针相加:将<math>a</math> 和<math>b</math> 对应的角度直接相加,得到和<math>a+b</math> 对应的角度,再映射到结果<math>c</math> 。披萨算法通过<math>a</math> 和<math>b</math> 的平均值向量所在的“披萨切片"区域判断结果。平均值向量的角度由<math>a+b</math> 决定,长度由<math>a-b</math> 决定。|764x764像素]]
第108行: 第108行:     
=== 控制权之争 ===
 
=== 控制权之争 ===
−
研究人员也开始理解网络顿悟数据的过程。Varma 等人指出,模型执行任务时存在两种机制:高效但学习慢的泛化机制和低效但学习快的记忆算法。顿悟现象的突然性源于记忆机制与泛化算法之间主导性的转换——只有当模型完全抑制了其记忆机制之后,泛化能力才会真正显现出来,并且存在一个数据集规模的临界值<math>𝐷_{\text{crit}}</math><ref>{{cite web | author1=Varma V | author2=Shah R | author3=Kenton Z | author4=Kramár J | author5=Kumar R | year=2023 | title=Explaining Grokking Through Circuit Efficiency | website=arXiv | url=https://arxiv.org/abs/2309.02390 }}</ref>。因此,虽然泛化能力的延迟似乎突然出现,但网络内部参数实际上一直在学习泛化算法。只有当网络既学会了泛化算法,又完全消除了记忆算法时,才能实现顿悟。Nanda说:“看似突然的事情,实际上可能表面之下是渐进的”——这个问题在其他机器学习研究中也出现过。
+
研究人员也开始理解网络顿悟数据的过程。Varma 等人指出,模型执行任务时存在两种机制:高效但学习慢的泛化机制,和低效但学习快的记忆算法。顿悟现象的突然性源于记忆机制与泛化算法之间主导性的转换——只有当模型完全抑制了其记忆机制之后,泛化能力才会真正显现出来,并且存在一个数据集规模的临界值<math>𝐷_{\text{crit}}</math><ref>{{cite web | author1=Varma V | author2=Shah R | author3=Kenton Z | author4=Kramár J | author5=Kumar R | year=2023 | title=Explaining Grokking Through Circuit Efficiency | website=arXiv | url=https://arxiv.org/abs/2309.02390 }}</ref>。因此,虽然泛化能力的延迟似乎突然出现,但网络内部参数实际上一直在学习泛化算法。只有当网络既学会了泛化算法,又完全消除了记忆算法时,才能实现顿悟。Nanda说:“看似突然的事情,实际上可能表面之下是渐进的”,这个问题在其他机器学习研究中也出现过。
    
并且,由于临界数据集规模<math>𝐷_{\text{crit}}</math>决定记忆和泛化竞争结果,通过控制数据集规模可衍生逆顿悟(ungrokking)和半顿悟(semi-grokking)现象。逆顿悟现象是指若对已完成顿悟的网络在新数据集(满足<math>𝐷 < 𝐷_{\text{crit}}</math>条件)上继续训练,网络会退化为显著记忆状态,导致测试损失重新恶化。半顿悟是指当 <math>𝐷 ≈ 𝐷_{\text{crit}}</math>时,记忆算法与泛化算法在收敛过程中相互竞争,因此我们观察到测试损失有所改善但未达完美。
 
并且,由于临界数据集规模<math>𝐷_{\text{crit}}</math>决定记忆和泛化竞争结果,通过控制数据集规模可衍生逆顿悟(ungrokking)和半顿悟(semi-grokking)现象。逆顿悟现象是指若对已完成顿悟的网络在新数据集(满足<math>𝐷 < 𝐷_{\text{crit}}</math>条件)上继续训练,网络会退化为显著记忆状态,导致测试损失重新恶化。半顿悟是指当 <math>𝐷 ≈ 𝐷_{\text{crit}}</math>时,记忆算法与泛化算法在收敛过程中相互竞争,因此我们观察到测试损失有所改善但未达完美。
第145行: 第145行:     
这些条件共同导致训练曲线出现延迟分离和突然收敛的顿悟现象<ref>{{cite web | author1=Kumar T | author2=Bordelon B | author3=Gershman S J | author4=Pehlevan C | year=2024 | title=Grokking as the Transition from Lazy to Rich Training Dynamics | website=Twelfth International Conference on Learning Representations (ICLR) | url=https://openreview.net/forum?id=vt5mnLVIVo }}</ref>。
 
这些条件共同导致训练曲线出现延迟分离和突然收敛的顿悟现象<ref>{{cite web | author1=Kumar T | author2=Bordelon B | author3=Gershman S J | author4=Pehlevan C | year=2024 | title=Grokking as the Transition from Lazy to Rich Training Dynamics | website=Twelfth International Conference on Learning Representations (ICLR) | url=https://openreview.net/forum?id=vt5mnLVIVo }}</ref>。
−
  −
      
== 促进顿悟的方法 ==
 
== 促进顿悟的方法 ==
81

个编辑

导航菜单