RNN BPTT算法推导
目录
BPTT算法推导
注1:激活函数tanh(x)求导
注2 softmax求导
BPTT算法推导
对于一个普通的RNN来说,其前向传播过程为:
先介绍一下等下计算过程中会用到的偏导数:
关于tanh求导的过程见下面注1。
indicates the diagonal matrix(对角矩阵) containing the elements
。
另一个,当y采用one-hot并且损失函数L为交叉熵时:
这里涉及到softmax求导的规律,关于softmax求导的过程见下面注2。
(1)接下来从RNN的尾部开始,逐步计算隐藏状态的梯度。如果
是最后的时间步,
就是最后的隐藏输出。
(2)然后一步步往前计算的梯度,注意
同时有
和
两个后续节点,
所以:
剩下的参数计算起来就简单多了:
损失函数为交叉熵损失函数(二元交叉熵损失函数),输出的激活函数应该为sigmoid函数,隐藏层的激活函数为tanh函数。(二分类问题)
注1:激活函数tanh(x)求导
作用:非常优秀,几乎适合所有的场景。
缺点:该导数在正负饱和区的梯度都会接近于 0 值,会造成梯度消失。还有其更复杂的幂运算。
可视化:
注2 softmax求导
https://blog.csdn.net/weixin_39910711/article/details/100775918?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162271501716780269860450%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=162271501716780269860450&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-3-100775918.nonecase&utm_term=%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C&spm=1018.2226.3001.4450 中的3.3节
使用交叉熵代价函数(多分类交叉熵形式)+softmax函数进行反向传播:
使用该方法时,应先将真实输出经过softmax函数进行转换,再带入代价函数中进行计算。即:
softmax函数:
多分类交叉熵:
计算误差函数对求导的导数:
当我们对分类的Loss进行改进的时候,我们要通过梯度下降,每次优化一个step大小的梯度,这个时候我们就要求Loss对每个权重矩阵的偏导,然后应用链式法则。那么这个过程的第一步,就是对softmax求导。
计算误差函数对未经过softmax函数转化的输出,即求导的导数
,根据链式法则
,可将其转化为误差函数对经过softmax函数转化后的输出求导的导数,再乘以经过softmax函数转化后的输出对
求导的导数:
忽略样本数量,即:
其中,
(1)损失函数对softmax层求导:
我们对Si求导,其实是对Si中的求导,从公式中可以看出,由于每个Si的分母中都包含
,因此对所有的Si都要求导。
其中,为第k个神经元的期望输出值,
为第k个神经元经过softmax函数转化后的输出,即y_out。
(2)softmax层对输出层求导
分两种情况:
① q = k
② q ≠ k
(3)输出层对隐藏层输出神经元求导
此时我们分别求出了两个偏导数,将两个偏导数合并起来(相乘),因为softmax层对输出层的偏导数有两种情况,因此链式求导的结果也分 q = k 和 q ≠ k 两种情况,加以合并:
由于:
因此:
主要:花书BPTT公式推导:https://www.cnblogs.com/zyb993963526/p/13797144.html
https://blog.csdn.net/qq_36033058/article/details/107117030?utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~default-7.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~default-7.control
https://blog.csdn.net/chaianlove/article/details/83650152?utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromMachineLearnPai2~default-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromMachineLearnPai2~default-1.control
https://blog.csdn.net/qq_14962179/article/details/88832275
RNN的简单的推导演算公式(BPTT):https://cloud.tencent.com/developer/article/1074307
RNN详解及BPTT详解:https://blog.csdn.net/zhaojc1995/article/details/80572098
RNN BPTT算法推导:https://blog.csdn.net/qq_14962179/article/details/88832275
RNN BPTT算法推导相关推荐
- RNN BPTT算法详细推导
BPTT算法推导 BPTT全称:back-propagation through time.这里以RNN为基础,进行BPTT的推导. BPTT的推导比BP算法更难,同时所涉及的数学知识更多,主要用到了 ...
- RNN中BPTT的推导和可能的问题
最近开始啃LSTM,发现BPTT这块还是不是很清晰,结合RNN,把这块整理整理 RNN 前馈神经网络(feedforward neural networks)如下图所示(这块内容可见我的博客神经网络B ...
- 【Pytorch神经网络理论篇】 17 循环神经网络结构:概述+BP算法+BPTT算法
1 循环神经网络结构概述 循环神经网络(Recurrent Neural Network,RNN)是一个具有记忆功能的网络模型.它可以发现样本彼此之间的相互关系.它多用于处理带有序列特征的样本数据. ...
- 收藏 | 人人都能看懂的LSTM介绍及反向传播算法推导
点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:作者:陈楠 来源:知乎 链接:https://zhuanla ...
- 反向传播算法推导、激活函数、梯度消失与爆炸
目录 反向传播算法 定义 推导过程 激活函数 定义 性质 常用的激活函数 Sigmoid Tanh ReLU softmax 梯度消失与梯度爆炸 起因 出现的原因 表现 解决方案 参考文档 反向传播算 ...
- 人人都能看懂的EM算法推导
作者丨August@知乎(已授权) 来源丨https://zhuanlan.zhihu.com/p/36331115 编辑丨极市平台 估计有很多入门机器学习的同学在看到EM算法的时候会有种种疑惑:EM ...
- 第八课.EM算法的合理性与算法推导
目录 EM算法背景 EM算法迭代的合理性 EM算法推导 EM算法的E步和M步 分析EM算法的由来 EM算法背景 在硬币投掷和班级身高问题中,引入了隐变量问题,模型变成了混合模型,我们不能直接利用极大似 ...
- BP神经网络算法推导
一:算法推导 神经网络通过模拟人的神经元活动,来构造分类器.它的基本组成单元称为"神经元",离线情况下如果输入大于某值时,设定神经元处于兴奋状态,产生输出,否则不响应.而这个输入来 ...
- em算法 实例 正态分布_人人都能看懂的EM算法推导
↑ 点击蓝字 关注极市平台作者丨August@知乎(已授权)来源丨https://zhuanlan.zhihu.com/p/36331115编辑丨极市平台 极市导读 EM算法到底是什么,公式推导怎么去 ...
最新文章
- SAP RETAIL 如何查看分配表是参考哪个PO来创建的?
- 在TMG2010中发布Web服务器场
- 聚焦3D地形编程第五章GeomipMapping for the CLOD
- Python使用proj将GPS经纬度数据转换为utm坐标系(真实的地理位置坐标系,以米为单位),然后可以进行轨迹显示
- 智能手机系统对进程生命周期的管理
- UML大战需求分析阅读笔记——02
- java广度优先遍历
- 困难时拉你一把的图片_2019早上好表情图片合集 早晨祝福语动画
- 如何从ngrx-store-devtools.js里找到actions的触发源头
- 使用HANA Web-based Development Workbench创建最简单的Server Side JavaScript
- 架构师:我们需要顶层设计
- onvif发送订阅规则
- c++用new求数组中n个数的和_在C++中实现任意大小数组的定义方法
- 吉麦新能源与联想签订战略合作协议,共同拥抱智能网联汽车升维时代
- [Web Chart系列之七] 物理动画效果(如撕扯效果)
- 金盾加密视频破解翻录限制工具使用教程
- 程序员工作交接文档怎么写_IT交接事项.doc
- unity3d显示c4d材质_C4D入门到精通,没那么难
- 介绍现有三大前端框架-思想
- 微信小程序云函数服务器,微信小程序云函数使用的几点说明