Assignment #2

3.Recurrent Neural Networks: Language Modeling

在这一节中,计算RNN语言模型的梯度。

语言模型是NLP中的一个核心任务,语言模型也存在于语音识别、机器翻译等许多其他系统的核心部分。给定一个单词(表示为一个one-hot行向量)序列,语言模型根据下列模型预测下一个单词

其中是单词表中的一个单词。

下面计算RNN语言模型的梯度,它使用隐藏层中的反馈信息来模拟“历史”,形式化定义如下:

对于

其中是隐藏层的一些初始向量,和one-hot行向量的点积表示当前词。参数如下:

其中L是词嵌入矩阵,I是输入词表示矩阵,H是隐藏变换矩阵,U是输出词表示矩阵,是偏置值,d是词嵌入的维度,|V|是单词表的大小,是隐藏层的维度。

输出向量是单词表上的一个概率分布。模型通过最小化交叉熵损失函数(没有正则化的)来训练:

其中是与目标单词(在这里等于)相关的one-hot向量,对一个序列中的所有样本(即单词)的交叉熵损失进行平均来得到单个序列的损失。

(a)按照惯例,当报告语言模型的表现时,我们评估困惑度,其定义为:

即正确单词的逆概率,根据模型的分布。从交叉熵损失中推导出困惑度(记住是one-hot向量),因此讨论在训练集上最小化(算术)平均交叉熵损失也会最小化(几何)平均困惑度。

对于一个有|V|个单词的单词表,如果模型预测完全随机(从单词表中均匀选取),你预期中的困惑度是多少?计算|V|=10000时相关的交叉熵损失。

(b)计算损失J关于下列模型参数在时刻t的梯度:

其中是L关于当前词的行向量,表示t时刻关于该参数的梯度。

附加:计算关于之前的隐藏层的偏导数:

(c)下面是一个单独时间步的网络示意图:

画出三个时间步的“展开”形式的网络,计算BPTT梯度:

其中表示在t-1时刻关于参数的梯度,因为参数在前馈计算中使用了很多次,我们需要在每次它们出现时计算梯度。

需要使用第五节课中的反向传播法则,以上一节中计算得到的误差项的形式来表示这些导数。

注意,关于训练样本的真正的梯度需要我们进行所有的反向传播直到t=0时刻,而在练习中,通常缩减为仅反向传播5~10个时间步。

(d)给定,需要多少步操作来进行一步前向传播以计算损失函数?一个时间步的反向传播呢?个时间步呢?以O为记号,以的形式表示。slow step是哪一步?

CS224N刷题——Assignment2.3_RNN:Language Modeling相关推荐

  1. leetcode c程序总提示主函数_帅气中国小哥出“大招”,程序员跳槽面试刷题必备...

    整理 | 一一 出品 | AI科技大本营 春节刚过,年终奖收入囊中,属于工程师们一年一度的跳槽季也来了. 跳槽后薪水翻倍自然爽歪歪,但最怕的是面试翻车,那就悲剧了.可想而知,想要跳槽或者为春招准备的毕 ...

  2. 程序员跳槽面试刷题必备,微软工程师放大招!| 程序员硬核评测

    整理 | 一一 出品 | AI科技大本营(ID:rgznai100) 春节刚过,年终奖收入囊中,属于工程师们一年一度的跳槽季也来了. 跳槽后薪水翻倍自然爽歪歪,但最怕的是面试翻车,那就悲剧了.可想而知 ...

  3. Bigder:53/100 真香免费网站!在线练习SQL\Python\Shell像游戏通关一样刷题

    给大家推荐一个在线练习语言的网站.有20多个语言:像游戏通关一样刷题,如:SQL\Python\Shell,在看.转发分享给更多人 入口: https://www.codewars.com/join ...

  4. Pintia(拼题A)刷题插件 on VS Code

    开发背景 初次在拼题A(Pintia)上刷题是在2019年的暑假,使用的首选语言是 C++,编辑器则以 VS Code 为主.VS Code 由于其免费.轻量以及插件库丰富的特性,吸引了越来越多的开发 ...

  5. 各大编程语言、软件,电子电路刷题学习网站链接及微信公众号

    20210813 增加一些公众号 一些对程序员有用的网站 https://mp.weixin.qq.com/s/GiEbcBSReaKrVezjGA9_fA 20210715:公众号:拓跋啊秀 资源: ...

  6. 【HDLBits 刷题】所有答案直达链接汇总

    写在前面 以下为HDLBits全部答案,有些题的解法不唯一,我的也许不是最优解,欢迎提出更好的想法,HDLBits总的来说比较适合初学者. HDLBits 答案汇总 Language [HDLBits ...

  7. 数学建模进入“新课标”,告别了“刷题”“押题”数学应该怎么学?

    前段时间,光明日报教育周刊发表了一篇题为<靠刷题.押题还能得高分吗>的文章,并用一整个版面来探讨"双减"后的数学教育问题.各大媒体纷纷转发,一时间刷爆朋友圈. < ...

  8. BUUCTF-2020寒假刷题记录

    BUUCTF-2020寒假刷题记录 Web [RoarCTF 2019]Easy Calc 打开源码,看到calc.php,打开看到源码. 在 num 前面加个空格即可绕过 ? num=phpinfo ...

  9. 【牛客网】C/C++牛客网专项刷题(02)

    以下为牛客网C/C++专项刷题: 1.虚函数不可以内联,因为虚函数是在运行期的时候确定具体调用的函数,内联是在编译期的时候进行代码展开,两者冲突,所以没有一起使用的做法. 2.C++中构造函数和析构函 ...

  10. 《学Unity的猫》——第十八集:Unity3D游戏开发工程师笔试刷题,皮皮收到面试邀请

    文章目录 18.1 皮皮收到面试邀请 18.2 面试题库相关网站 18.2.1 牛客网 18.2.2 领扣LintCode 18.2.3 力扣LeetCode 18.3 优质学习网站 18.3.1 菜 ...

最新文章

  1. mysql 释放错误连接_JSP连接MySQL后数据库链接释放的错误
  2. 管家服务器未显示数据库启动,服务器受到后缀为gupwp的**,10年数据库等大神解救...
  3. 2019年第十届蓝桥杯 - 省赛 - C/C++大学B组 - I. 后缀表达式
  4. redis布隆过滤器PHP,Redis 中的布隆过滤器
  5. java jdbc分页_使用JDBC进行分页查询
  6. PIX防火墙security context配置手册(虚拟防火墙技术)
  7. Python 绘图,我只用 Matplotlib
  8. 《数字视频和高清:算法和接口》一2.6消费类电子显示器
  9. CCF NOI1061 Wifi密码
  10. 以太坊地址和公钥_以太坊的私钥、公钥、地址、账户
  11. 数理统计-随机变量的数字特征:期望、方差、协方差、矩、协方差矩阵
  12. 如何从C快速过渡到C++
  13. php mysql统计去掉重复的,php - Mysql:根据最小数量删除重复记录 - 堆栈内存溢出...
  14. 推荐个工作日志的软件nyfedit
  15. 线性调频信号与脉冲压缩
  16. win10更新后C盘空间变小解决方法
  17. 华硕双屏笔记本windows系统驱动安装
  18. 外贸里面 LC TT DP DA BG 是什么
  19. 数据库系统原理期末复习
  20. C#基础知识点个人整理【菜鸟教程】

热门文章

  1. ssh无密码登录设置方法以及出现问题 ECDSA host key 和IP地址对应的key不同的解决...
  2. 第一百六十天 how can I 坚持
  3. ASP.NET中 Bin,App_Browser,App_code,App_Data,App_Theme 等文件
  4. [书目20080225]软件工程与项目管理解析
  5. OpenCV2 图像叠加 给照片加水印
  6. 【GDB调试学习笔记】调试程序段错误
  7. 魔方机器人之下位机编程---模拟PWM
  8. BERT-BiLSTM-CRF命名实体识别应用
  9. NSGA-II资料合集
  10. 从零基础入门Tensorflow2.0 ----五、20. 预定义estimator使用