前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【神经网络篇】--RNN递归神经网络初始与详解

【神经网络篇】--RNN递归神经网络初始与详解

作者头像
LhWorld哥陪你聊算法
发布2018-09-13 15:08:08
1K0
发布2018-09-13 15:08:08
举报

一、前述

传统的神经网络每个输入节点之间没有联系,

 RNN (对中间信息保留):

由图可知,比如第二个节点的输入不仅依赖于本身的输入U1,而且依赖上一个节点的输入W0,U0,同样第三个节点依赖于前两个节点的输入,

假设每一个节点分别代表着“我出生在中国,我说——”的一个预测,则“说”后面则是依赖于前面的说的每个单词的所有组合。

xt表示第t,t=1,2,3...步(step)的输入 st为隐藏层的第t步的状态,它是网络的记忆单元。 st=f(Uxt+Wst−1),其中f一般是非线性的激活函数。 ot是第t步的输出,如下个单词的向量表示softmax(Vst)(多分类)。 二、具体

1、递归神经网络的反向传播

损失函数有多个,以E3为例

E3由t0-t3时刻x,W共同确定 Δ W的确定要考虑E3在各个时刻对w导数。

t3:

t2:

t1:

不仅更新当前节点的输入梯度,还更新当前节点的所有记忆单元,一直传播下去。

2、RNN局限性问题

I am Chines, I Love China 递归神经网络参数太多,信息量冗余(因为最后的预测可能只 依赖它最近的词,但我们输入的时候是所有的词,所以信息量冗余)、梯度消失或者爆炸。

3、LSTM(长短记忆网络)

为了解决RNN的一些缺点,RNN与LSTM对比

C:控制参数 决定什么样的信息会被保留什么样的会被遗忘

 具体操作:

 门是一种让信息选择式通过的方法sigmoid 神经网络层和一乘法操作。

Sigmoid 层输出 0 到 1 之间的数值,描述每个部分有多少量可以通过。0 代表“不许任何量通过”,1 就指“允许任意量通过”!

Sigmoid函数

具体过程:

丢弃的信息:

先把当前节点的输入和之前记忆的输入传递进来,然后通过sigmod函数组合起来后得到的函数值(0,1)之间,然后再跟Ct-1组合,决定丢弃什么信息。Ct是永远更新维护的值。

保留的信息:

最后总的信息:

分两部分,遗忘的信息Cti-1和保留Ct的信息。先走遗忘的信息,再走保留的信息。Ct从开始到最后一直更新。

 输出:

 LSTM整体架构:

 与RNN对比会有一部分信息保留,一部分信息丢弃。LSTM比RNN更实用。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-05-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档