美文网首页百面机器学习|学习笔记
百面机器学习|第十章循环神经网络知识点(一)

百面机器学习|第十章循环神经网络知识点(一)

作者: 蓝白绛 | 来源:发表于2019-02-09 20:24 被阅读38次

    前言

    如果你能找到这里,真是我的幸运~这里是蓝白绛的学习笔记,本集合主要针对《百面机器学习——算法工程师带你去面试》这本书。主要记录我认为重要的知识点,希望对大家有帮助。

    第十章 循环神经网络

    1、循环神经网络和卷积神经网络

    1. 典型的循环神经网络如下图:
      10-1 循环神经网络结构
      如上图,一个长度为T的序列用循环神经网络建模,展开之后可以看作是一个T层的前馈神经网络。其中,第t层的隐含状态h_t编码了序列中前t个输入的信息,可以通过当前的输入x_t和上一层神经网络的状态h_{t-1}计算得到;最后一层的状态h_T编码了整个序列的信息,因此可以作为整篇文档的压缩表示,以此为基础的结构可以应用于多种具体任务。例如,在h_T后面直接接一个Softmax层,输出文本所属类别的预测概率y,就可以实现文本分类。h_ty的计算公式为:net_t=Ux_t+Wh_{t-1}, h_t=f(net_t), y=g(Vh_T),其中fg为激活函数,U为输入层到隐含层的权重矩阵,W为隐含层从上一时刻到下一时刻状态转移的权重矩阵。在文本分类任务中,f可以取Tanh函数或者ReLU函数,g可以采用Softmax函数。

    2、循环神经网络的梯度消失问题

    1. 循环神经网络模型的求解可以采用BPTT(Back Propagation Through Time,基于时间的反向传播)算法实现,BPTT实际上是反向传播算法的简单变种,可以将循环神经网络按时间展开成T层的前馈神经网络来理解。
    2. 梯度爆炸的问题可以通过梯度裁剪来缓解,即当梯度的范式大于某个给定值时,对梯度进行等比收缩
      梯度消失问题相对棘手,需要对模型本身进行改进。深度残差网络是对前馈神经网络的改进,通过残差学习的方式缓解了梯度消失的现象;对于循环神经网络来说,LSTM及其变种GRU等模型通过加入门控机制,很大程度上弥补了梯度消失所带来的损失。

    3、循环神经网络中的激活函数

    1. 在循环神经网络中使用ReLU作为激活函数,需要对矩阵W初值做一定限制,否则十分容易引发数值问题。而在卷积神经网络中一般不会出现严重的数值问题。
    2. 循环神经网络中使用ReLU作为激活函数时,只有当W的取值在单位矩阵附近时才能取得比较好的效果,因此需要将W初始化为单位矩阵。实验证明,初始化W为单位矩阵并使用ReLU激活函数在一些应用中取得了与LSTM相似的结果,并且学习速度比LSTM更快,是一个值得尝试的小技巧。

    小结

    这是本章的第一部分,书中公式还是有一些的,我这里没有写。主要是循环神经网络的前向计算公式,循环神经网络会发生梯度爆炸和梯度消失的公式解释,以及为什么要将W初始化为单位矩阵的公式解释。本章的第二部分主要是LSTM、Seq2Seq模型和注意力机制。

    结尾

    如果您发现我的文章有任何错误,或对我的文章有什么好的建议,请联系我!如果您喜欢我的文章,请点喜欢~*我是蓝白绛,感谢你的阅读!

    相关文章

      网友评论

        本文标题:百面机器学习|第十章循环神经网络知识点(一)

        本文链接:https://www.haomeiwen.com/subject/spbosqtx.html