NN神经网络,输入层,隐藏层,输出层
DNN深度神经网络,输入层。多个隐藏层,输出层
DNN不能解决序列问题
RNN在DNN的基础上为了解决序列数据提出的
中间的那个环,Hidden state是RNN提出来的
输出的ht,不仅仅是输出,还会当成下一个时间的输入
输入时一个序列,X0到Xt
计算公式上的差别
DNN就是每层节点加权求和,套一个**函数
RNN时不单有当前输入的加权求和,还有上一时刻状态的加权求和
DNN一般用sigmoid被relu RNN一般用tanh
RNN在时间序列上和在深度序列上维度的增加
RNN的记忆能力有限,序列太长会遗忘
比如预测句子的最后一个单词
传统的RNN还很难训练,因为时间序列太长的时候,如果参数初始值设置的不好,误差就很难传回去
LSTM解决记忆太短和难以训练这两个问题
RNN时这一步的输入加权求和以及上一时刻的输出加权求和,tanh**后得到这一步的输出
LSTM复杂很多
- forget gate
判断这一帧到底有多没有价值
- input gate
和RNN的一样
- current state
判断应该更多的把之前发生过的传递给后面还是应该更多的把自己的信息告诉后面
- output layer
后面有工作加了更多的逻辑来处理信息
最常用的还是LSTM本身和GRU
应用,分为四种结构
一到多:输入图片输出句子
多到一:输出视频输出类别
多到多
例子一
手写句子识别
不确定性高,强调联系,图中长得像A实际上时Than的首字母T,LSTM正确识别
例子二
语音识别
例子三
输入video输出一段话,不是一一对应,需要基于整个视频的理解给出生成的语句
先encode出中间的特征,再根据这个生成
例子四
视频分类
例子五
写诗,给一个字,不停的输出下一个词
三个推荐的博客