码迷,mamicode.com
首页 > 编程语言 > 详细

七月算法12月机器学习在线班---第二十次课笔记---深度学习--RNN

时间:2016-05-13 14:37:49      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:

七月算法12月机器学习在线班---第二十次课笔记---深度学习--RNN

七月算法(julyedu.com)12月机器学习在线班学习笔记http://www.julyedu.com

  1. 循环神经网络

复习之前的知识点:

全连接前向网络: 学习出来的是函数

卷积网络:卷积操作,部分链接,共享操作,逐层提取原始图像的特征(语音,NLP)

学习出来的特征

局部相关性

浅层宽网络很难做成神经网络

?

1.1状态和模型

1, ID数据

·分类问题

·回归问题

·特征表达

2, 大部分数据都不满足ID

·大部分数据都不满足旧

·序列分析(Tagging, Annotation)

·序列生成,如语言翻译,自动文本生成

·内容提取(Content Extraction),如图像描)

需要将之前的状态加入当前层

1.2 序列样本

1,输入和输出的映射关系(序列的应用)

a, 一对一:普通的神经网络,不带循环

b. 一对多,看图说话

c. 多对一:情感判断

d: 多对多:语言翻译

e: 序列到序列 L/R/U/D

技术分享

·RNN不仅仅能够处理序列输出,也能得到序列输出,这里序列

指的是向量的序列。

. RNN学习出来的是程序,不是函数

?

1.3 序列预测

·输入的是时间变化向量序列:技术分享

. 在t时刻通过模型来估计:技术分享

?

·问题:

·对内部状态难以建模和观察

·对长时间范围的场景(Context)难以建模和观察

·解决方案: 引入内部隐含状态变量

技术分享

内部的状态,对应的是位置

?

1.4 序列预测模型

·输入离散列序列

技术分享

技术分享

·在时间t的更新计算

上面两幅图等价, 上一次t-1时刻的的H和当前的当前的时刻,一同作用输出。

技术分享

·预测计算

技术分享

  1. 整个计算过程中,W保持不变
  2. H在0时刻初始化

?

1.4 RNN训练(1)

1, 前向计算,相同的W矩阵需要乘以多次

2, 多步之前的输入X,会影响当前的输出

3, 在后向计算的时候,同样相同的矩阵也会乘以多次

1.4.1 B PTT算法一BackProp Through Time

1,RNN前向计算

技术分享

2,计算W的偏导,需要把所有Time Step加起来, 每一步的损失函数一样

技术分享

3, 应用链式规则

技术分享

?

1.4.2 BPTT算法:计算实现

链式规则求目标,使用向量的微分

计算目标是求和,

序列要是16的话,W转置要乘以16次,产生一个爆炸现象,按时间展开,容易发生,出现了连乘,,普通的网络,W有大有小,梯度消失,不会很严重,每一层的W都不一样

?

技术分享

BPTT算法 梯度vanishing/ exploding现象分析

?

?

1.4.3 BPTT算法的解决的方案

1, clipping

2, W初始化为1,将激活函数使用Relu替换成Tanh

?

2 LSTM (Long Short Term Memory) Cell 长时间记忆能力

通过结构的方法解决,梯度离散和梯度爆炸的现象,避免了一个W从头到尾连乘,具备了一定的常识记忆的能力

应用最为广泛、成功的RNN

?

2.1 cell state (单元状态)

?

1, 可以长期保存某个状态, cell state值通过forget gat(图中的乘)控制实现保留多少"老"的状态,

2, Layer把输入维度X变成输出维度h

?

技术分享

2.2 Forget /input unit

技术分享技术分享

至于是[0,1],b是偏移量

2.3 Update cell

技术分享

2.4 output

技术分享

下图为总结,四个矩阵Wf ,Wi,Wc,Wo

技术分享

?

七月算法12月机器学习在线班---第二十次课笔记---深度学习--RNN

标签:

原文地址:http://www.cnblogs.com/sweet-dew/p/5488050.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!