第1章 绪论
第2章 机器学习概述
第3章 线性模型
第4章 前馈神经网络
第5章 卷积神经网络
第6章 循环神经网络
第7章 网络优化与正则化
第8章 注意力机制与外部记忆
第9章 无监督学习
第10章 模型独立的学习方式
第11章 概率图模型
第12章 深度信念网络
第13章 深度生成模型
第14章 深度强化学习
第15章 序列生成模型
延时神经网络(Time Delay Neural Network,TDNN),即建立一个额外的延时单元,用来存储网络的历史信息(可以包括输入、输出、隐状态等)
h t ( l ) = f ( h t ( l − 1 ) , h t − 1 ( l − 1 ) , … h t − K ( l − 1 ) ) h_t^{(l)}=f(h_t^{(l-1)},h_{t-1}^{(l-1)},…h_{t-K}^{(l-1)}) ht(l)=f(ht(l−1),ht−1(l−1),…ht−K(l−1))
自回归模型(Autoregressive Model,AR),一类时间序列模型,用变量的历史信息来预测自己。
y t = w 0 + ∑ k = 1 K w k y t − k + ϵ t y_t=w_0+\sum _{k=1}^K w_ky_{t-k}+\epsilon_t yt=w0+k=1∑Kwkyt−k+ϵt
ϵ t \epsilon_t ϵt为第t个时刻的噪音
有外部输入的非线性自回归模型(Nonlinear Autoregressive with Exogenous Inputs Model,NARX)
y t = f ( x t , x t − 1 , … , x t − K x , y t − 1 , y t − 2 , … , y t − K x ) y_t=f(x_t,x_{t-1},…,x_{t-K_x},y_{t-1},y_{t-2},…,y_{t-K_x}) yt=f(xt,xt−1,…,xt−Kx,yt−1,yt−2,…,yt−Kx)
其中 f(⋅) 表示非线性函数,可以是一个前馈网络, K x K_x Kx和 K y K_y Ky 为超参数
循环神经网络通过使用带自反馈的神经元,能够处理任意长度的时序数据。
h t = f ( h t − 1 , x t ) h_t=f(h_{t-1},x_t) ht=f(ht−1,xt)
状态更新:
h t = f ( U h t − 1 + W x t + b ) h_t=f(Uh_{t-1}+Wx_{t}+b) ht=f(Uht−1+Wxt+b)
一个完全连接的循环网络是任何非线性动力系统的近似器 。
图灵完备(Turing Completeness)是指一种数据操作规则,比如一种计算机编程语言,可以实现图灵机的所有功能,解决所有的可计算问题。
一个完全连接的循环神经网络可以近似解决所有的可计算问题。
给定一个训练样本(x,y),其中x = ( x 1 x_{1} x1,… , x T x_{T} xT )为长度是T 的输入序列,y = ( y 1 y_{1} y1 ,… , y T y_{T} yT )是长度为T 的标签序列。则时刻t的瞬时损失函数为:
L t = L ( y t , g ( h t ) ) L_{t}=L(y_t,g(h_t)) Lt=L(yt,g(ht))
总损失函数为:
L = ∑ t = 1 T L t L=\sum_{t=1}^{T}L_{t} L=t=1∑TLt
梯度消失与爆炸:
由于计算过程中 λ \lambda λ部分要经过多次求积,所以当得到的大于1时会出现梯度爆炸问题,小于1时会出现梯度消失问题。
出现原因:
循环神经网络在时间维度上非常深,所以会出现梯度消失或爆炸问题,因此实际上只能学习到短周期的依赖关系。这就是所谓的长程依赖问题。
改进原理:
针对梯度爆炸问题,可采用权重衰减或梯度截断方法;针对梯度消失问题,可改进模型。
改进方法
h t = h t − 1 + g ( x t ; h t − 1 ; θ ) h_t = h_{t-1}+g(x_t;h_{t-1};\theta) ht=ht−1+g(xt;ht−1;θ)
计算公式
f t = σ ( W f x t + U f h t − 1 + b f ) i t = σ ( W i x t + U i h t − 1 + b i ) c ~ t = t a n h ( W c x t + U c h t − 1 + b c ) o t = σ ( W o x t + U o h t − 1 + b o ) c t = f t ⊙ c t − 1 + i t ⊙ c ~ t h t = o t ⊙ t a n h ( c t ) f_t = \sigma(W_fx_t+U_fh_{t-1}+b_f) \\ i_t = \sigma(W_ix_t+U_ih_{t-1}+b_i)\\ \tilde c_t = tanh(W_cx_t+U_ch_{t-1}+b_c)\\ o_t = \sigma(W_ox_t+U_oh_{t-1}+b_o) \\ c_t = f_t\odot c_{t-1}+i_t\odot \tilde c_t\\ h_t = o_t\odot tanh(c_t) ft=σ(Wfxt+Ufht−1+bf)it=σ(Wixt+Uiht−1+bi)c~t=tanh(Wcxt+Ucht−1+bc)ot=σ(Woxt+Uoht−1+bo)ct=ft⊙ct−1+it⊙c~tht=ot⊙tanh(ct)
递归神经网络实在一个有向图无循环图上共享一个组合函数: