RNN-应用场景
语音识别
音乐生成
情感分析:根据输入的评论,猜测评论的分数。
DNA序列分析
语言翻译等
带时间序列应用的场景
后面产生的结果,是受到前面结果的影响的。
区别于神经网络预测
神经网络的输入的特征都是固定不变的,强调特征的位置。
标准的神经网络是不适合用来处理带时间序列的模型的。
但是RNN 可以处理
RNN网络结构
将每一个时间状态 进行串联
后面的状态后受到前面状态的影响
单个单元
当前的x 和 前一个状态 a的t-1
tanh激活函数 学习非线性的部分
输出还乘以权重+偏置
比喻理解:
a的t-1状态,和男朋友吵架。
输入 x的t,闺蜜煽风点火。
当下的产生的行为,y的t,和男朋友分手。
同时,产生新的状态 a的t。
RNN的特点:
1.串联,能体现前因后果,后面结果的生产要参考前面的信息。
2.所有的特征共享一套参数。每一个单元的W都是一样的。
面对不同的输入,能学到不同的 相应的结果。
极大的减少了训练参数量。
输入和输出可以有不同的长度
RNN前向传播路径:
如下图红色 所示,即箭头的指向。
这里的y的t状态的输入,如果是2分类问题,比如判断是否是人名,可以使用 signal作为激活函数,替代softmax函数。
损失函数
损失函数的评估使用 交叉熵函数:
整个序列的损失函数:就是每个单元函数的损失的和
反向传播更新参数
一共需要通过反向传播需要更新四个参数
分别是图中的四个 红色 的圈圈