1.基本RNN结构

 这几天想入门NLP,所以开始了解RNN以及一系列变体。首先RNN最原始的结构如下图(图是按自己的理解用visio画的,有错麻烦提一下),

  

首先我们来说明一下各个符号的定义:

各个变量之间的关系如下:

2.RNN推导

其实,在RNN中,框架并不大,整体的参数只有W和b,因为这些参数是共用的。下面说一下RNN的loss函数,它的loss是随你的需求变化,比如你的RNN是多对多,那么总的loss就是所有输出的loss之和,如果RNN的是多对一,那么总loss就是最后一个输出的loss。下面就具体说一说RNN的反向传播,这里叫BPTT (Back propagation through time).

  • loss计算

    其中

      ,为了便于推导,假设我们的训练batch_size=1,

        

        

  • 误差推导

    为了方便推导,我把变量之间的关系在这里再写一遍:

     具体推导如下:

      有一个小提示就是,注意这里求导的时候,由于a<t>与a<t+1>和y_hat<t>均有关系,所以链式求导的时候要算这两个部分。

    然后我们把式子通过向量化简化一下:

  • 梯度计算

    当我我们把误差算出来,那么各个参数的梯度就很简单了~~~

    剩下的就是通过迭代更新了~~其实整个推导也不是很难~~~只要把几个量的关系理清楚就可以了~~

3.RNN推导的更多相关文章

  1. RNN推导

    http://www.cnblogs.com/YiXiaoZhou/p/6058890.html RNN求解过程推导与实现 RNN LSTM BPTT matlab code opencv code ...

  2. RNN及其变体框架

    RNN及其变体框架  含RNN推导 LSTM理解 理解LSTM网络  算法细节理解及参考文献  

  3. 程序猿 tensorflow 入门开发及人工智能实战

    tensorflow 中文文档: http://www.tensorfly.cn http://wiki.jikexueyuan.com/project/tensorflow-zh/ tensorfl ...

  4. 循环神经(LSTM)网络学习总结

    摘要: 1.算法概述 2.算法要点与推导 3.算法特性及优缺点 4.注意事项 5.实现和具体例子 6.适用场合 内容: 1.算法概述 长短期记忆网络(Long Short Term Memory ne ...

  5. RNN求解过程推导与实现

    RNN求解过程推导与实现 RNN LSTM BPTT matlab code opencv code BPTT,Back Propagation Through Time. 首先来看看怎么处理RNN. ...

  6. 《神经网络的梯度推导与代码验证》之vanilla RNN的前向传播和反向梯度推导

    在本篇章,我们将专门针对vanilla RNN,也就是所谓的原始RNN这种网络结构进行前向传播介绍和反向梯度推导.更多相关内容请见<神经网络的梯度推导与代码验证>系列介绍. 注意: 本系列 ...

  7. 《神经网络的梯度推导与代码验证》之vanilla RNN前向和反向传播的代码验证

    在<神经网络的梯度推导与代码验证>之vanilla RNN的前向传播和反向梯度推导中,我们学习了vanilla RNN的前向传播和反向梯度求导,但知识仍停留在纸面.本篇章将基于深度学习框架 ...

  8. RNN的简单的推导演算公式(BPTT)

    附上y=2x-b拟合的简单的代码. import numpy as np x = np.asarray([2,1,3,5,6]); y = np.zeros((1,5)); learning_rate ...

  9. 【Deep Learning】RNN LSTM 推导

    http://blog.csdn.net/Dark_Scope/article/details/47056361 http://blog.csdn.net/hongmaodaxia/article/d ...

随机推荐

  1. [NOIp2016] 换教室

    题目类型:期望\(DP\) 传送门:>Here< 题意:现有\(N\)个时间段,每个时间段上一节课.如果不申请换教室,那么时间段\(i\)必须去教室\(c[i]\)上课,如果申请换课成功, ...

  2. consul命令记录

    服务端启动脚本 #/bin/bash! echo "********************************************************************* ...

  3. Mysql注入小tips --持续更新中

    学习Web安全好几年了,接触最多的是Sql注入,一直最不熟悉的也是Sql注入.OWASP中,Sql注入危害绝对是Top1.花了一点时间研究了下Mysql类型的注入. 文章中的tips将会持续更新,先说 ...

  4. CF1059D Nature Reserve

    原题链接 网络不好的可以到洛谷上去QwQ 题目大意 有N个点,求与y=0相切的,包含这N个点的最小圆的半径 输入输出样例 输入: 2 0 1 1 1 输出 0.625 感觉最多是蓝题难度? 首先无解的 ...

  5. IrisSkin 单独控件样式设置 不使用皮肤样式

    可以设置控件的Tag为this.skinEngine1.DisableTag [DefaultValue()] [Description("If you do not want skin t ...

  6. Stacking:Catboost、Xgboost、LightGBM、Adaboost、RF etc

    python风控评分卡建模和风控常识(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005214003&am ...

  7. crm 权限设计

    先在项目中创建  app rbac的models.py from django.db import models class Permission(models.Model): "" ...

  8. MessagePack for C#

    MessagePack for C# 快速序列化组件MessagePack介绍   简介 MessagePack for C#(MessagePack-CSharp)是用于C#的极速MessagePa ...

  9. Linux系统在线安装、启动 redis

    环境: Linux系统:VMware 14 中 CentOS 7 64 位 redis版本:redis-stable.tar.gz(当前版本是:redis-cli 4.0.9) 一.Linux在线安装 ...

  10. MySQL初步

    一 写在开头1.1 本节内容本节的主要内容是MySQL的基本操作(来自MySQL 5.7官方文档). 1.2 工具准备一台装好了mysql的ubuntu 16.04 LTS机器. 二 MySQL的连接 ...