兰 亭 墨 苑
期货 · 量化 · AI · 终身学习
首页
归档
编辑文章
标题 *
URL 别名 *
内容 *
(支持 Markdown 格式)
辛顿的深度置信网络DBN,敲开了笼罩在神经网络头上多年的坚冰。它证明了深层网络是可训练的,梯度问题也并非完全无法解决的洪水猛兽,特别是霍克赖特和本吉奥还分别从不同的维度,掀开了它神秘的面纱。从1997年开始,到2017年,这二十年里,从业者们前赴后继,从不同的角度,为解决梯度问题打造了七种不同的武器。 1、霍克赖特的多情环:把梯度锁在环里 在霍克赖特的理论中,神经网络层数多了,没有好下场,除非 𝑊 的特征值恒等于1。但是约束权重矩阵恒等于1,相当于让通过调整权重增加神经网络智能的方式也受到了约束。这种做法,梯度虽然不消失了,但是神经网络也变傻了。霍克赖特很快找出了让权重矩阵恒等于1的方法,他构建了一个环路,让误差信号在反向传播时以系数 1无损的保留在内容。这个机制被称作CEC(常数误差循环)机制。 这个环,虽然解决了一个问题,但是带来了另外一个新问题。这种让权重矩阵特征值恒等于1的约束,等于让权重网络中的数值只能做定类型的变换(主要是旋转变换)。这极大地压缩了权重矩阵的智能,很多复杂的数据模式,网络根本学不会。这个环只会旋转,而不会前后左右飞舞。 施密德胡伯发现,其实并不是所有的任务,都需要维持权重特征值为1的。当进行一些短期记忆任务的时候,这些任务是提取当前输入信息的特征,做非线性变换的。这就需要权重的分布灵活多变。此时再把权重矩阵特征值约束为1,网络就会变傻。当需要进行状态传递任务的时候,才需要权重矩阵的特征值接近1保持稳定。 霍克赖特深刻地意识到了这个矛盾。他的想法是:既然这两个任务冲突,那就分家。首先他创立了一个记忆通道CEC,这就是那条特征值恒定为 1 的通道。它不负责任何模式识别,它只负责一件事:无损地传递信息。 另外他建立了一个控制通道,他做了三个门,分别是输入门、遗忘门、输出门。这些门都有自己的权重矩阵。这些权重矩阵不受“特征值必须为 1”的约束。它们可以自由地学习任何分布,以便根据当前数据判断什么时候该开门、什么时候该关门。当任务需要时,网络会打开遗忘门,让权重重新生成。这样就可以实现这些特定的任务可以灵活的学习,而当长任务来临时,则关上遗忘门,让权重直接走CEC的记忆通道,不至于丢失信息。 在这套架构下的网络,就被叫为LSTM(Long Short-Term Memory),和他们的那篇经典论文《Long Short-Term Memory》同名。这是发生在1997年,神经网络最早期的寒冬时期,从此以后,LSTM就成为处理序列模型的第一选择。这个第一,一直持续了20年。即便在今天,如果你去翻阅最顶级的 AI 论文,依然能看到 LSTM 的影子。正如施密德胡伯所言:“现代深度学习的一切,几乎都能在那个时代的发现中找到根源。” 直到大模型已经全面占领生态的今天,我们依然能看到LSTM的身影。无论是是苹果的 "Hey Siri"、亚马逊的 Alexa,还是你手机里的“小爱同学”或“你好华为”,它们后面跑的模型都是基于LSTM的,在需要24小时待命的唤醒词领域,这种体积小、计算量低,且非常擅长处理这种短促、连续的音频流模型,还有着顽强的生命力。 2、起手贼稳的霸王枪:初始化技术 从霍克赖特和本吉奥的结论中, W 矩阵的特征值 \lambda 是关键因素。它的绝对值和1的接近程度,直接决定后续梯度的情况。但是神经网络的训练,往往是随便用个高斯分布来初始化这个 W 矩阵的。此时,作出决定性贡献的还是那个把什么东西都可以看成信号的杨立昆。 杨立昆认为,神经网络就是个信号放大器,为了让这个网络能够稳定的训练,每一层输出信号的方差,应该等于输入信号的方差。这在物理上叫“单位增益”。信号既不被放大也不被缩小,原样传下去。杨立昆这个大神,又用信号处理的方法,把霍克赖特和本吉奥论文里面说的核心内容,又重新发现了一遍。 而后杨立昆发现,单纯小心翼翼地初始化矩阵并不管用,因为神经网络是个典型的三明治结构: $$y = \sigma(W \cdot x + b)$$ 在这个公式里,所有的线性变换由 W 主导,它来负责对输入空间进行旋转,缩放,剪切或投影。但是问题是,这些变化无论怎么变,直线还是直线,平面还是平面。它无法把拧成麻花的数据解开。简单的说,线性无法产生创造性,它只是简单的叠加。 真正让神经网络拥有创造力的,是那个 \sigma ,那个叫做激活函数的非线性变换的掌控者。它是对空间的扭曲、折叠或者切断。为什么非线性变换能让神经网络具备创造力呢?我们需要深度理解一下,在数学上,什么是创造性。 让我们先从认知科学这个熟悉的领域开始。在人类的认知中,创造性通常不意味着“无中生有”,而是“旧元素的新组合”。对于平庸的思维来说,看到的是事物表面的相似性。比如看到一个苹果,想到一个梨,我们关注的是它们形状,颜色或者功能上的相近之处。在脑海里,或者说我们的脑神经里,它们的距离是相近的。创造性的思维是,看到事物本质上的联系,尽管它们表面上风马牛不相及,比如牛顿看到苹果落地,想到了月球绕地运行。我们常说的脑洞大,就是一种很形象的比喻,两个距离很远的事物,打个洞直接把它们连在一起,这就是创造力的体现。 把我们刚才那段话映射到数学上,我们就能堂而皇之的宣布:创造性就是重新定义距离的能力。通过扭曲空间,让看似无关的事物发生连接,这就是“灵感”的数学解释。而拥有扭曲空间能力的就是非线性变换,就是激活函数。 我们暂且把非线性的创造能力放在一边,后面我们讲本吉奥的另外一个故事的时候会继续展开,那将会是一段更加烧脑的旅程。现在我们聚焦到激活函数身上,杨立昆发现,如果不和激活函数配合,初始化矩阵的工作就会白费。目前神经网络里面使用的激活函数都是Sigmoid,是PDP小组在BP的奠基性论文中使用的。之所以选择这个函数,因为这是最像当时罗森布拉特的感知机里面阶跃函数的,又是处处平滑可导的,而阶跃函数则是来自仿生学。 Sigmoid函数 Sigmoid函数深受辛顿喜欢,因为它能完美的呈现概率,因为它会把所有值都压缩在0和1之间,所以辛顿把它放在输出层,以便在输出时能回答“是猫的概率是 0.8”。但是信号工程师杨立昆,对它非常的头疼。在信号工程里面,有一个现象叫直流偏置。这种现象被戏称为“睡在床沿的人”,只要处理不小心,就会一翻身滚到床下去,但明明床上有很大的空间。这个Sigmoid函数,长得就和直流偏置一模一样,在神经网络中也会产生类似的效果,让网络训练的收敛变慢。所以杨立昆又下手改掉了这个函数,用Tanh这个双曲线正切函数代替了它。 Tanh函数和Sigmoid函数 和Sigmoid函数相比,Tanh函数更适合做“特征提取者”。这更适合隐藏层这个用来把特征信号放大、扭曲、传递下去的特征提取器。在杨立昆的LeNet-5中,Tanh函数出现在每一个隐藏层之后,再加上CNN本身特有的非全连接,才让CNN网络在那个年代没有遇到梯度消失。辛顿的全连接DBN叠到5层,整整比杨立昆晚了8年。起手贼稳的初始化矩阵,也就自然成为CV界霸王杨立昆手中最趁手的那杆霸王枪。 在这把神兵利器的带动下,行业产生了两大初始化方法:2010年的Xavier 初始化和 2015年的He 初始化。这两个初始化,在后来号称人工智能英雄榜的ImageNet大赛中,不知斩落了多少名将。其中He 初始化的发明者何恺明,更是成为了杨立昆的战友,共同在Meta的实验室开疆拓土。 3、辛顿的碧玉刀:ReLU激活函数 不只是杨立昆,霍克赖特的论文中,其实也提到了Sigmoid函数的问题。这个函数的问题,像一片乌云始终笼罩在辛顿的心里。这片乌云烟消云散,起源于辛顿的又一个跨学科联想。谁也没有想到,这个被计算机科学家寻找了数年的灵感,居然隐藏在生活在深海里的枪乌贼的巨型轴突里。 1900 年代初,科学家已经知道神经元遵循“全或无定律” (All-or-None Law)。即神经元产生的动作电位幅度是固定的。不管刺激多强,脉冲永远是大概 100 毫伏。这也是M-P神经元模型建立时的生物学参照。但是生物学家始终有个疑问,用羽毛轻抚过皮肤和用针刺皮肤是显然不同的两种感受,如果神经元只能处理简单的0-1,那是无法处理这种程度问题的。显然M-P模型还是太过简单了。 为了解决这个疑惑,生物学家采用了大量的实验工作。其中因为枪乌贼的神经非常粗壮,很适合进行电刺激实验,所以实验人员用了大量的枪乌贼的轴突,对其进行电击实验。这又是一个诺贝尔奖级别的发现,神经生理学家艾伦·霍奇金,他把一根微电极插入枪乌贼的神经元内部,通过电极向神经元持续注入恒定的直流电流 (I),观察神经元发放脉冲的频率 (f) 随电流变化的情况。霍奇金根据实验结果,将神经元分为了三类。其中 Class 1 (第一类兴奋性) 启发了辛顿。这类神经元有一个特征:当 I < I_{th} (阈值) 时: 频率 f = 0。神经元静默,当 I > I_{th} 时: 神经元开始发放脉冲。随着电流 I 的增加,频率 f 可以从 0 开始连续、平滑地增加。这与当时数学家想象的“阶跃函数”(0跳变到1)完全不同。它证明了神经元不是简单的逻辑开关,而是一个模拟-数字转换器,且转换函数是线性的。 ReLU函数 辛顿重新审视了霍奇金在 1948 年画出的那张曲线图,他想:“大自然演化了亿万年,选择了这种‘单侧线性’的响应曲线,一定是因为它在传递信息时最高效。为什么我们要自作聪明地用 Sigmoid 把信号压扁呢?”所以,辛顿抛开了作为数学家的审美,拥抱了生物学的现实,开始在玻尔兹曼机中引入这种被命名为ReLU (Rectified Linear Unit,线性整流单元) 的函数。ReLU 使得在神经网络中,只要神经元是激活状态,梯度就能无损地(乘以 1)穿过几十层、上百层网络,直接传到最前面。信号不再衰减。 此时,资深辅助本吉奥,又为辛顿套上了重要的BUFF。这次和他一起出现的,还有他的学生沙维尔·格洛罗特(Xavier Glorot)。 沙维尔·格洛罗特(Xavier Glorot) 沙维尔是个典型的隐士,在社交网络上深藏功与名,但是他却在2010年和2021年,从“初始化”和“激活函数”两个维度,几乎凭一己之力扫清了深层网络训练的大部分障碍。上文提到的Xavier 初始化就是他的作品。他发现LeCun 初始化只考虑了输入层宽,为了保持前向传播的信号和反向传播的梯度的方差都不爆炸、不消失,必须同时考虑输出层宽。他改进的初始化方法,几乎所有的Sigmoid/Tanh 网络都在使用。 2011年,他在导师本吉奥的带领下,开始研究激活函数。本吉奥首先就抛弃了数学上的完美主义,转而回归生物大脑的本质。传统的观念上,这些函数是“稠密”的。给一个输入,几乎所有的神经元都会输出一个非零的值。这相当于大脑处理任何信息时,所有的脑细胞都在微微发光。本吉奥觉得这个绝不合理,真正的生物生存在一个能量极度稀缺的现实世界,进化绝对不会允许一个这么浪费能量的机制存在的。这和枪乌贼的实验暗合,但是真正算出这笔能量账的,是生物物理学家戴维·阿特维尔(David Attwell) 和 西蒙·劳克林(Simon B.Laughlin)。他们计算了大脑消耗的葡萄糖和氧气,以及神经元放电时钠钾泵消耗的 ATP。大脑虽然占体重的 2%,但消耗了 20% 的能量。如果大脑里所有的神经元同时放电,大脑瞬间就会耗尽能量甚至烧掉。所以,从能量预算来看,大脑在任何时刻,最多只能允许1%到4% 的神经元同时处于高频放电状态。剩下的 96%以上必须是静默的。 从优化上,有着丰富经验的沙维尔发现了ReLU的单侧线性的优势。只要神经元处于激活状态,梯度就能无损地传回前一层。这使得深度网络在训练时,表现得更像是一个线性网络。ReLU 让深层网络不需要预训练,直接用反向传播就能收敛,而且速度极快。 本吉奥和沙维尔在2011年,发表了名为《Deep Sparse Rectifier Neural Networks》的论文,并力荐辛顿放弃处处平滑的Sigmoid 或 Tanh,该用ReLU。 辛顿相信来自队友的证明,并鼓励自己的学生用ReLU来参加学术竞赛。没想到,这场竞赛给辛顿带来的巨大的人生转折,也让世界上又多了一个富可敌国的大型企业。 辛顿手里的这把碧玉刀,不仅仅只是锋利无比,而且贵气逼人,称得上是最名贵的武器。 关于解决梯度问题的七种武器,我们先介绍到这里,因为从此时开始,神经网络的春天已经彻底来临了。行业中到处都是欣欣向荣的味道,这三把武器已经让大家看到梯度消失墙壁的完全倒塌只是时间问题了。草莽英雄遍地开花的时节,自然是逐鹿天下的好机会。一场神经网络的比武大会正在萌芽中,很快这个大会将会成为整个行业的华山论剑,后面四种武器和凭借前三种武器崭露头角的年轻人们,将会登上历史的舞台。
配图 (可多选)
选择新图片文件或拖拽到此处
标签
更新文章
删除文章