3.1 基础模型-深度学习第五课《序列模型》-Stanford吴恩达教授
基础模型 (Basic Model)
在这一周,你将会学习seq2seq(sequence to sequence)模型,从机器翻译到语音识别,它们都能起到很大的作用,从最基本的模型开始。之后你还会学习集束搜索(Beam search)和注意力模型(Attention Model),一直到最后的音频模型,比如语音。
现在就开始吧,比如你想通过输入一个法语句子,比如这句 “Jane visite I’Afrique en septembre.”,将它翻译成一个英语句子,“Jane is visiting Africa in September.”。和之前一样,我们用 x<1>x^{<1>}x<1> 一直到 x<5>x^{<5>}x<5> 来表示输入的句子的单词,然后我们用 y<1>y^{<1>}y<1> 到 y<6>y^{<6>}y<6> 来表示输出的句子的单词,那么,如何训练出一个新的网络来输入序列 xxx 和输出序列 yyy 呢?
这里有一些方法,这些方法主要都来自于两篇论文,作者是Sutskever,Oriol Vinyals 和 Quoc Le,另一篇的作者是Kyunghyun Cho,Bart van Merrienboer,Caglar Gulcehre,Dzmitry Bahdanau,Fethi Bougares,Holger Schwen 和 Yoshua Bengio。
首先,我们先建立一个网络,这个网络叫做编码网络(encoder network)(上图编号1所示),它是一个RNN的结构, RNN的单元可以是GRU 也可以是LSTM。每次只向该网络中输入一个法语单词,将输入序列接收完毕后,这个RNN网络会输出一个向量来代表这个输入序列。之后你可以建立一个解码网络,我把它画出来(上图编号2所示),它以编码网络的输出作为输入,编码网络是左边的黑色部分(上图编号1所示),之后它可以被训练为每次输出一个翻译后的单词,一直到它输出序列的结尾或者句子结尾标记,这个解码网络的工作就结束了。和往常一样我们把每次生成的标记都传递到下一个单元中来进行预测,就像之前用语言模型合成文本时一样。
深度学习在近期最卓越的成果之一就是这个模型确实有效,在给出足够的法语和英语文本的情况下,如果你训练这个模型,通过输入一个法语句子来输出对应的英语翻译,这个模型将会非常有效。这个模型简单地用一个编码网络来对输入的法语句子进行编码,然后用一个解码网络来生成对应的英语翻译。
还有一个与此类似的结构被用来做图像描述,给出一张图片,比如这张猫的图片(上图编号1所示),它能自动地输出该图片的描述,一只猫坐在椅子上,那么你如何训练出这样的网络?通过输入图像来输出描述,像这个句子一样。
方法如下,在之前的卷积网络课程中,你已经知道了如何将图片输入到卷积神经网络中,比如一个预训练的AlexNet结构(上图编号2方框所示),然后让其学习图片的编码,或者学习图片的一系列特征。现在幻灯片所展示的就是AlexNet结构,我们去掉最后的softmax单元(上图编号3所示),这个预训练的AlexNet结构会给你一个4096维的特征向量,向量表示的就是这只猫的图片,所以这个预训练网络可以是图像的编码网络。现在你得到了一个4096维的向量来表示这张图片,接着你可以把这个向量输入到RNN中(上图编号4方框所示),RNN要做的就是生成图像的描述,每次生成一个单词,这和我们在之前将法语译为英语的机器翻译中看到的结构很像,现在你输入一个描述输入的特征向量,然后让网络生成一个输出序列,或者说一个一个地输出单词序列。
事实证明在图像描述领域,这种方法相当有效,特别是当你想生成的描述不是特别长时。据我所知,这种模型首先是由Junhua Mao,Wei Xu,Yi Yang,Jiang Wang,Zhiheng Huang和Alan Yuille提出的,尽管有几个团队都几乎在同一时间构造出了非常相似的模型,因为还有另外两个团队也在同一时间得出了相似的结论。我觉得有可能Mao的团队和Oriol Vinyals,Alexander Toshev,Samy Bengio和Dumitru Erhan,还有Andrej Karpathy和Fei-Fei Yi是同一个团队。
现在你知道了基本的seq2seq模型是怎样运作的,以及image to sequence模型或者说图像描述模型是怎样运作的。不过这两个模型运作方式有一些不同,主要体现在如何用语言模型合成新的文本,并生成对应序列的方面。一个主要的区别就是你大概不会想得到一个随机选取的翻译,你想要的是最准确的翻译,或者说你可能不想要一个随机选取的描述,你想要的是最好的最贴切的描述,我们将在下节视频中介绍如何生成这些序列。
3.1 基础模型-深度学习第五课《序列模型》-Stanford吴恩达教授相关推荐
- 深度学习教程(6) | 神经网络优化算法(吴恩达·完整版)
作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/35 本文地址:https://www.showmeai.tech/article-d ...
- 深度学习教程(10) | 卷积神经网络解读(吴恩达·完整版)
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/35 本文地址:http://www.showmeai.tech/article-det ...
- 2.19 总结-深度学习-Stanford吴恩达教授
←上一篇 ↓↑ 下一篇→ 2.18 Logistic 损失函数的解释 回到目录 3.1 神经网络概览 文章目录 总结 习题 第 11 题 第 12 题 第 13 题 第 14 题 第 15 题 第 1 ...
- 1.1 欢迎-深度学习第一课《神经网络与深度学习》-Stanford吴恩达教授
←上一篇 ↓↑ 下一篇→ 无 回到目录 1.2 什么是神经网络 欢迎 第一个视频主要讲了什么是深度学习,深度学习能做些什么事情.以下是吴恩达老师的原话: 深度学习改变了传统互联网业务,例如如网络搜索和 ...
- 机器学习和深度学习到底怎么学?顶尖专家吴恩达告诉你
机器学习和深度学习到底怎么学? 在外国版知乎上,有位网友问:新手如何学习机器学习?学习完MOOC的课程后有没有能力阅读研究论文或者真正的做出一点研究成果? 这个困惑很多人的问题吴恩达给出了详细的回答, ...
- 3.12 总结-深度学习-Stanford吴恩达教授
←上一篇 ↓↑ 下一篇→ 3.11 随机初始化 回到目录 4.1 深层神经网络 文章目录 总结 习题 第 21 题 第 22 题 第 23 题 第 24 题 第 25 题 第 26 题 第 27 题 ...
- 3.5 向量化实现的解释-深度学习-Stanford吴恩达教授
←上一篇 ↓↑ 下一篇→ 3.4 多个例子中的向量化 回到目录 3.6 激活函数 向量化实现的解释 (Explanation for Vectorized Implementation) 在上一个视频 ...
- 0.0 目录-深度学习第五课《序列模型》-Stanford吴恩达教授
文章目录 目录 第五课 第四课 第三课 第二课 第一课 目录 第五课 <序列模型> 笔记列表 Week 1 循环序列模型 Week 1 传送门 -> 1.1 为什么选择序列模型 1. ...
- 3.10 触发字检测-深度学习第五课《序列模型》-Stanford吴恩达教授
触发字检测 (Trigger Word Detection) 现在你已经学习了很多关于深度学习和序列模型的内容,于是我们可以真正去简便地描绘出一个触发字系统(a trigger word system ...
最新文章
- Java的类装载器(Class Loader)和命名空间(NameSpace)
- linux下安装监控网络流量工具Iptraf
- JavaScript——易班优课YOOC课群在线测试自动答题解决方案(二十)整理维护
- Fluid 0.5 版本:开启数据集缓存在线弹性扩缩容之路
- windows 通过批处理 修改环境变量
- PyTorch深度学习:60分钟入门(Translation)
- linux系统查看分区文件系统
- uniapp h5 微信分享
- 范德波振子的李雅普诺夫指数
- tiff与GDAL笔记
- Collections中Counter函数,namedtuple函数,defaultdict函数的使用
- 暑假教师计算机培训总结,关于暑期教师信息技术培训总结范文
- 图形的一点透视和平移
- ps4变更账号服务器,ps4怎么变更账户邮箱-ps4更改账户邮箱的方法
- NAACL 2022 | 具有元重加权的鲁棒自增强命名实体识别技术
- 【时间复杂度】你还在担心时间复杂度太高吗?
- Python校内实训--第二天星座查询进阶版
- 在web 开发中input file 中调用摄像头
- 示例:在H5中使用video结合canvas来录制视频和上传
- PB powerbuilder timing类
热门文章
- 【学习总结】数学-欧拉函数
- 从MVC到前后端分离
- 【Python之路】第五篇--Python基础之杂货铺
- 《学习opencv》笔记——矩阵和图像处理——cvGEMM,cvGetCol,cvGetCols and cvGetDiag
- android画一个圆形图片组件
- TreeView控件节点重命名后没有进入beginEdit的解决方案
- Win32 像素格式描述符学习
- TSQL编写存储过程计算1!+2!+3!+…+N!
- C++ 变量的定义位置
- Understand分析Kinect SDK 1.7自带例子(C++)图集一