一、增加记忆功能

        1.可计算问题

回归任务的神经网络 神经自回归网络_java

                其中函数不涉及记忆问题,可以使用前馈神经网络计算

                但是图灵机涉及记忆问题,需要为神经网络增加记忆能力

        2.如何增加记忆能力

                 ①时延神经网络

                        额外增加一个延时单元(用以存储网络的历史信息<输入、输出、隐状态等>)

回归任务的神经网络 神经自回归网络_回归任务的神经网络_02

                 ②自回归模型

                        用变量yt的历史信息来预测自己

回归任务的神经网络 神经自回归网络_数据库_03

                 ③有外部输入的非线性自回归模型

回归任务的神经网络 神经自回归网络_循环神经网络_04

                                 f(.)为非线性函数,可以是前馈网络。Kx和Ky为超参数

回归任务的神经网络 神经自回归网络_循环神经网络_05

 二、循环神经网络

        循环神经网络的神经元自带反馈,可以处理任意长度的时序数据

回归任务的神经网络 神经自回归网络_数据库_06

         循环神经网络比前馈神经网络更符合神生物经网络的结构,被广泛应用在语音设备、预言模型、及自然语言生成等任务。

        将循环神经网络按时间展开

回归任务的神经网络 神经自回归网络_数据库_07

                 其在时间维上极深,同样存在梯度消失问题。在非时间维上较浅,需要适度增加其模型复杂度。

        1.简单循环神经网络

回归任务的神经网络 神经自回归网络_回归任务的神经网络_08

                 一个完全连接的循环网络是任何非线性动力系统的近似器

                循环神经网络通用近似定理

                         

回归任务的神经网络 神经自回归网络_数据库_09

        

回归任务的神经网络 神经自回归网络_servlet_10

                         St为每个时刻的隐藏状态,xt为外部输入,g(.)为状态转换函数,O(.)为连续输出函数

                图灵完备

                        可以实现图灵机的所用功能(可以解决所有可以算问题),一个完全连接的循环神经网络可以近似于图灵完备

        2.应用到机器学习

                 ①序列到类别

回归任务的神经网络 神经自回归网络_servlet_11

                         将所有h进行平均/求和,再送入分类器之中

                ②同步的序列到序列模式

回归任务的神经网络 神经自回归网络_循环神经网络_12

                         例如:中文分词、信息抽取(文本中抽取信息,形成知识)、语音识别--等容易出现分歧的问题

                ③异步的序列到序列模式

回归任务的神经网络 神经自回归网络_java_13

                         例如:机器翻译

        3.参数学习与长程依赖问题

                ①参数学习

                        以同步的序列到序列循环神经网络为例,给定一个学习样本(x,y),长度均为T

回归任务的神经网络 神经自回归网络_servlet_14

                         时刻t的瞬时损失函数为:

回归任务的神经网络 神经自回归网络_循环神经网络_15

     

回归任务的神经网络 神经自回归网络_循环神经网络_16

为后验概率                        总损失函数

回归任务的神经网络 神经自回归网络_servlet_17

                         计算梯度

回归任务的神经网络 神经自回归网络_循环神经网络_18

       

回归任务的神经网络 神经自回归网络_数据库_19

                        

回归任务的神经网络 神经自回归网络_循环神经网络_20

                                

回归任务的神经网络 神经自回归网络_回归任务的神经网络_21

为第t时刻的损失对第k步隐藏神经元的净输入

回归任务的神经网络 神经自回归网络_循环神经网络_22

的导数                        

回归任务的神经网络 神经自回归网络_servlet_23

                               tips:diag(x,n):矩阵x上的第n条对角线上的元素

回归任务的神经网络 神经自回归网络_java_24

                        随时间的反向传播算法(BPTT)

                        

回归任务的神经网络 神经自回归网络_回归任务的神经网络_25

                        

回归任务的神经网络 神经自回归网络_servlet_26

                              

回归任务的神经网络 神经自回归网络_servlet_27

                ②长程依赖问题

                        当

\gamma>1


回归任务的神经网络 神经自回归网络_servlet_29

,

回归任务的神经网络 神经自回归网络_回归任务的神经网络_30

时会出现梯度爆炸问题                        当

回归任务的神经网络 神经自回归网络_循环神经网络_31


回归任务的神经网络 神经自回归网络_servlet_29

,

回归任务的神经网络 神经自回归网络_回归任务的神经网络_30

时会出现梯度消失问题

                        梯度爆炸和梯度消失统称为长程依赖问题,由于此问题,实际上只能学习到短周期的依赖关系。

                        原因是循环神经网络在时间维度上非常深

                        1.修正梯度爆炸问题

                                权重衰减、梯度截断

                        2.修正梯度消失问题

使

回归任务的神经网络 神经自回归网络_java_34

回归任务的神经网络 神经自回归网络_循环神经网络_35

之间的线性关系移动到

回归任务的神经网络 神经自回归网络_回归任务的神经网络_36

                                改进方法①:令梯度

回归任务的神经网络 神经自回归网络_回归任务的神经网络_37

                                        将循环边改为线性依赖关系:

回归任务的神经网络 神经自回归网络_回归任务的神经网络_38

     会削弱非线性性能                                                其中

回归任务的神经网络 神经自回归网络_回归任务的神经网络_39

                                        增加非线性

回归任务的神经网络 神经自回归网络_回归任务的神经网络_40

                                                其中

回归任务的神经网络 神经自回归网络_servlet_41

        4.常见的循环神经网络

                门控机制:控制信息积累的速度。(选择性的加入新的信息,选择性遗忘)

                ①GRU(门控循环单元)

                        

回归任务的神经网络 神经自回归网络_数据库_42

更新门

回归任务的神经网络 神经自回归网络_数据库_43

,值域为[0,1],用于选择性遗忘

回归任务的神经网络 神经自回归网络_回归任务的神经网络_44

                        

回归任务的神经网络 神经自回归网络_java_45

使用tanh实现

回归任务的神经网络 神经自回归网络_java_46

                        改进

回归任务的神经网络 神经自回归网络_循环神经网络_47

,使

回归任务的神经网络 神经自回归网络_java_34

仅与

回归任务的神经网络 神经自回归网络_数据库_49

相关(去除与

回归任务的神经网络 神经自回归网络_循环神经网络_35

的联系重置门

回归任务的神经网络 神经自回归网络_循环神经网络_51

,                                

回归任务的神经网络 神经自回归网络_循环神经网络_52

 ,

回归任务的神经网络 神经自回归网络_servlet_53

                门控循环单元

回归任务的神经网络 神经自回归网络_循环神经网络_54

                ②LSTM(长短期记忆网络)

回归任务的神经网络 神经自回归网络_循环神经网络_55

                 引入内部记忆单元

回归任务的神经网络 神经自回归网络_servlet_56

用于记忆,解放

回归任务的神经网络 神经自回归网络_java_34

,使其可以更好的进行非线性拟合                

回归任务的神经网络 神经自回归网络_回归任务的神经网络_58

     

回归任务的神经网络 神经自回归网络_循环神经网络_59

                

回归任务的神经网络 神经自回归网络_回归任务的神经网络_60

                !!! 可以使得

回归任务的神经网络 神经自回归网络_servlet_61

                各种变体

回归任务的神经网络 神经自回归网络_servlet_62

         5.深层循环神经网络

                ①堆叠循环神经网络

回归任务的神经网络 神经自回归网络_循环神经网络_63

                ②双向循环神经网络

回归任务的神经网络 神经自回归网络_回归任务的神经网络_64

 三、小结

        优点:引入记忆功能、图灵完备

        缺点:长程依赖问题、记忆容量问题、并行能力问题

四、将循环神经网络扩展到图

        序列是最简单的数据结构,更复杂的结构还有

        1.递归神经网络

                用于处理结构。

回归任务的神经网络 神经自回归网络_servlet_65

                 在一个有向无循环图共享一个组合函数

        2.图网络

                用于处理结构。

回归任务的神经网络 神经自回归网络_数据库_66

                 更新序列:先更新点、再更新边、最后更新全局结点

回归任务的神经网络 神经自回归网络_servlet_67

                 对于任意图结构G(V,E)

                更新函数

回归任务的神经网络 神经自回归网络_java_68

        

回归任务的神经网络 神经自回归网络_循环神经网络_69

                读出函数

回归任务的神经网络 神经自回归网络_java_70