UMBRELLA

未雨绸缪,举重若轻

RMSProp算法

RMSProp算法作为将速率调度与坐标自适应学习率分离的简单修复方法。问题在于,Adagrad算法将梯度的平方累加成状态矢量。因此,由于缺乏规范化,没有约束力,持续增长,几乎是在算法收敛时呈线性递增。解决此问题的一种方法是使用。对的合理分布来说,它将收敛。遗憾的是,限制行为生效可能需要很长时间,因为该流程记住了值的完整轨迹。另一种方法是按动量法中的方式使用泄漏平均值,即,其中参数。保持所有其它部分不变就产生了RMSProp算法。

阅读全文 »

优化算法对于深度学习非常重要。一方面,训练复杂的深度学习模型可能需要数小时、几天甚至数周。优化算法的性能直接影响模型的训练效率。另一方面,了解不同优化算法的原则及其超参数的作用将使我们能够以有针对性的方式调整超参数,以提高深度学习模型的性能。

阅读全文 »

编译器和解释器

命令式编程

命令式编程(imperative programming)。命令式编程使用诸如print、“+”if之类的语句来更改程序的状态。考虑下面这段简单的命令式程序:

阅读全文 »

灵长类动物的视觉系统接受了大量的感官输入,这些感官输入远远超过了大脑能够完全处理的程度。然而,并非所有刺激的影响都是相等的。意识的聚集和专注使灵长类动物能够在复杂的视觉环境中将注意力引向感兴趣的物体,例如猎物和天敌。只关注一小部分信息的能力对进化更加有意义,使人类得以生存和成功。自19世纪以来,科学家们一直致力于研究认知神经科学领域的注意力。基于注意力机制的Transformer架构,该架构中使用了多头注意力(multi-head attention)和自注意力(self-attention)。自2017年横空出世,Transformer一直都普遍存在于现代的深度学习应用中,例如语言、视觉、语音和强化学习领域。

阅读全文 »

门控循环单元

我们讨论了如何在循环神经网络中计算梯度,以及矩阵连续乘积可以导致梯度消失或梯度爆炸的问题。下面我们简单思考一下这种梯度异常在实践中的意义:

  • 我们可能会遇到这样的情况:早期观测值对预测所有未来观测值具有非常重要的意义。考虑一个极端情况,其中第一个观测值包含一个校验和,目标是在序列的末尾辨别校验和是否正确。在这种情况下,第一个词元的影响至关重要。我们希望有某些机制能够在一个记忆元里存储重要的早期信息。如果没有这样的机制,我们将不得不给这个观测值指定一个非常大的梯度,因为它会影响所有后续的观测值。
  • 我们可能会遇到这样的情况:一些词元没有相关的观测值。
  • 我们可能会遇到这样的情况:序列的各个部分之间存在逻辑中断。

在学术界已经提出了许多方法来解决这类问题。其中最早的方法是“长短期记忆”(long-short-term memory,LSTM),门控循环单元(gated recurrent unit,GRU)是一个稍微简化的变体,通常能够提供同等的效果,并且计算的速度明显更快。

阅读全文 »

我们学习了元语法模型,其中单词在时间步的条件概率仅取决于前面个单词。对于时间步之前的单词,如果我们想将其可能产生的影响合并到上,需要增加,然而模型参数的数量也会随之呈指数增长,因为词表需要存储个数字,因此与其将模型化,不如使用隐变量模型:

阅读全文 »

简言之,如果说卷积神经网络可以有效地处理空间信息(图片),循环神经网络(recurrent neural network,RNN)则可以更好地处理序列信息(文本)。循环神经网络通过引入状态变量存储过去的信息和当前的输入,从而可以确定当前的输出。

阅读全文 »

随着我们设计越来越深的网络,深刻理解“新添加的层如何提升神经网络的性能”变得至关重要。更重要的是设计网络的能力,在这种网络中,添加层会使网络更具表现力,为了取得质的突破,我们需要一些数学基础知识。

阅读全文 »

2014年的ImageNet图像识别挑战赛中,一个名叫GoogLeNet的网络架构大放异彩。GoogLeNet吸收了NiN中串联网络的思想,并在此基础上做了改进。这篇论文的一个重点是解决了什么样大小的卷积核最合适的问题。毕竟,以前流行的网络使用小到,大到的卷积核。

阅读全文 »
0%