rnn神经网络模型_机器学习干货-TensorFlow循环神经网络(1)

由于卷积神经网络不擅长处理语音数据、翻译语句等有先后顺序的数据结构。随之而来的循环神经网络(Recurrent Natural Network,RNN)它特别适合处理序列数据,RNN已经成功应用于自然语言处理(Neuro-Linguistic Programming)、语音识别、图像标注、智能翻译等场景中。

ea8844e89b97eb920ff5f86577317614.png

RNN网络结构的应用

随着深度学习的不断发展和网络结构的优化,循环神经网络出现其他衍生网络模型,如长短期记忆模型LSTM(Long Short-Term Memory)、门控循环单元GRU(Gated Recurrent Unit)和双向循环神经网络Bi-RNN(Bidirectional Recurrent Neural Networks)等。首先从循环神经网络入手,该部分内容由3部分构成:

1)循环神经网络RNN模型介绍;

2)前向传播和随时间反向传播;

3)梯度消失和梯度爆炸问题。

由于篇幅本文先针对循环神经网络RNN模型做介绍。

循环神经网络模型介绍

循环神经网络模型是一种经典网络结构,它包括输入层、隐含层、输出层,它的最大特点在于它有自循环结构,即表示神经元之间还有关联,这是传统神经网络、卷积神经网络所没有的。

(a)传统神经网络

c90b652fceca326b57c18e7f9f941505.png

传统神经网络结构

上图中,第1列圆圈代表输入层,第2列圆圈就是神经网络的中间层,这里的中间层只有一层,输出层与逻辑回归的输出层一致。在神经网络中,输入层是已知的,是用户输入的数据,因此不将输入层看出神经网络的网络层,上图的神经网络只包含一层隐藏层和一层输出层,又称为双层神经网络。为了区分神经元在神经网络中的位置,我们分别用上标[l]和下标[i]代表神经网络所处的网络层次l和在该层中的位置i。

单隐层中的神经元也包括了以上两个处理步骤,以此图为例, 其流程为:

586ddd18bbac3f82b5c22c49cb3dc58a.png

网络参数说明

(由于不能输入公式只能截图了!)

隐藏层中的可以是任意的激活函数,例如ReLu函数,tanh函数,PReLu函数及Sigmoid函数,输出层在二分类问题中经常采用sigmoid函数。

(b)循环神经网络

d7a90d5b2b1bb8870ab7133dc59cefba.png

循环神经网络模型

U是输入层到隐含层的权重矩阵,W是状态到隐含层的权重矩阵,s为状态,V是隐含层到输出层的权重矩阵。从上图中可以看出共享参数各个时间节点对应的U、V、W都是不变的,这个机制与卷积神经网络的过滤器机制一样,通过参数共享,降低了参数量。

隐藏层详细介绍:

bc30a0b742d6d0006f003178ce66dabc.png

RNN隐藏层详细示意图

该网络在每一时间都t有相同的网络结构,假设输入x为n维向量,隐含层的神经元个数为m,输出层神经元个数为r,则U为nxm维,W是上一次的为这一次输入的权重矩阵,大小为mxm维;V是输出层的权重矩阵,大小为mxr维。其中x(t),a(t),o(t)均为向量,编程含义如下:

x(t):为时刻t的输入;

a(t):为时刻t的隐藏层状态。它即是网络的记忆,基于前一时刻的隐层状态和当前时刻的输入进行计算,即,函数f通常是非线性的,如tanh或者ReLU,位前一时刻的隐藏层状态,初始化时值一般为0。

o(t):为时刻t的输出。

3062f6563c389ebe89a7728bbfb41b28.png

网络记忆

a(t)被认为是网络的记忆状态,可以捕获之前所有时刻发生的信息,输出的计算仅仅是依赖于时刻t的记忆。循环神经网络最大的特点就是隐藏层状态,它可以捕获一个序列的信息。

TensorFlow中这样的循环体结构叫做cell,用tf.nn.rnn_cell.BasicRNNCell,其参数定义如下:

tf.nn.rnn_cell.BasicRNNCell(num_units,activation=None,reuse=None,name=None)

参数说明:

num_units:int类型,必选参数,表示有多少个cell结构单元;

activation:string类型,激活函数,默认为tanh;

reuse:bool类型,代表是否重新使用scope中的参数;

name:string类型,名称。

下一篇继续讲《前向传播和随时间反向传播》内容。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值