当前位置:   article > 正文

《神经网络与深度学习》第二部分 (二)_recnn

recnn

这篇比较水。我现在需要先去编写一下这几种神经网络的程序以及手动推导损失函数对参数的求导。
所以这本书我先看到这,等学一段时间再回来看。

6.循环神经网络

前馈神经网络、卷积神经网络都是单向传递的。而时序数据不仅与当前输入相关,还和过去一段时间的输出相关。
前馈神经网络、卷积神经网络的输入 输出维数都是固定的。而时序数据的长度一般是不固定的。
所以用循环神经网络处理时序数据。

由RNN扩展出两种记忆网络模型:递归神经网络、图网络
RNN的参数学习算法:随时间反向传播算法
RNN是指 Recurrent NN  循环神经网络(有时候也叫递归神经网络)
RecNN是指 Recursive NN 递归神经网络

6.1 给网络增加记忆能力

延时神经网络 TDNN    
有外部输入的非线性自回归模型 (自回归模型 AR的扩展)
RNN       

6.2 简单循环神经网络 Simple Rrcurrent NN


与全连接网络相比,SRN的隐藏层的神经元之间也进行了连接

这是本书中RNN的数学模型

 这是另一个课程中的RNN数学模型
对比发现,本书中第二项式子没有激活函数以及偏置
 

这是一个非线性动力系统的状态表达式
6.10是状态方程,表示输入与状态的关系,用输入层与隐藏层近似
6.11是输出方程,表示状态和输出的关系,用隐藏层与输出层近似
可以用RNN去近似该非线性动力系统
St = g(St-1,Xt)  >>>  S't = f(A*St-1 + B*Xt + b)     St = C*S't
Yt = o(St) >>> Y't = f(A'*St-1 + B'*Xt + b')   Yt = D*Y't
右边4个式子可写成矩阵形式


 
那么矩阵形式可写作下面的形式


注:
两层的全连接神经网络
输入层——隐藏层——输出层
H = f(X*W+b)
Y = f(H*W'+b') 
所以得 Y= f(f(X*W+b)*W'+b')) 
通用近似定理指出 状态方程与输出方程可分别由一个两层网络近似  Y= f(X*W+b)*W'

感想:
对于这一节 特别难理解,反正我现在无法理解

6.3 应用到机器学习

序列到类别:将序列分类。如:文本分类、音频分类
同步的序列到序列:序列标注。如:词性标注
异步的序列到序列:也称编码器—解码器。如:翻译

注:
Yt 有两种取法
Yt = f(Ht*Why + By)
Yt = f(H_*Why + By)   H_ = [H1+H2+....+Ht]/t

6.4 参数学习

计算梯度的方式:随时间反向传播BPTT与实时循环学习RTRL

循环神经网络在学习过程中的主要问题是由于梯度消失或爆炸问题,很难建模长时间间隔的状态之间的依赖关系。
梯度爆炸:梯度很大
梯度消失:梯度很小

Lt = L(Yt_ ,Yt)   Yt_是t时刻输出的目标值,t时刻的损失函数Lt是关于Yt_与Yt的函数
整个序列的损失函数关于参数的梯度为每个时刻的损失函数关于参数的梯度求和 

BPTT反向传播计算梯度

  δt,k  第t时刻的损失Lt对第k时刻的隐藏层净输入Zk的导数
Zk = U*Hk-1 + W*Xk + b      Hk = f(Zk)


RTRL前向传播计算梯度

由于我理解的RNN数学模型与本书中的不一样,所以我会在另一篇博客中推导RNN的参数学习,并且再写一篇前向微分与反向微分的博客。

6.6 基于门控的RNN

Gated RNN:包括LSTM、GRU等

6.7 深层循环神经网络

纵向是很“深”的,横向是很“浅”的。深层循环神经网络就是将横向加深,多加几个隐层。

SRNN(堆叠RNN)

Bi-RNN(双向循环神经网络)

6.8 扩展到图结构


图a RecNN递归神经网络是RNN在有向无(循)环图上的扩展。
图b 退化后的RecNN就是RNN。
RecNN主要用来进行语句的情感分析。

 

图网络 GN
概率图 PGM
图神经网络GNN

 

这篇博客还需不断改进。加油。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/680316
推荐阅读
相关标签
  

闽ICP备14008679号