←上一篇 ↓↑ 下一篇→
1.1 为什么选择序列模型 回到目录 1.3 循环神经网络

数学符号(Notation)

本节先从定义符号开始一步步构建序列模型。

比如说你想要建立一个序列模型,它的输入语句是这样的:“Harry Potter and Herminoe Granger invented a new spell.”,(这些人名都是出自于J.K.Rowling笔下的系列小说Harry Potter)。假如你想要建立一个能够自动识别句中人名位置的序列模型,那么这就是一个命名实体识别问题,这常用于搜索引擎,比如说索引过去24小时内所有新闻报道提及的人名,用这种方式就能够恰当地进行索引。命名实体识别系统可以用来查找不同类型的文本中的人名、公司名、时间、地点、国家名和货币名等等。

现在给定这样的输入数据 xxx ,假如你想要一个序列模型输出 yyy ,使得输入的每个单词都对应一个输出值,同时这个 yyy 能够表明输入的单词是否是人名的一部分。技术上来说这也许不是最好的输出形式,还有更加复杂的输出形式,它不仅能够表明输入词是否是人名的一部分,它还能够告诉你这个人名在这个句子里从哪里开始到哪里结束。比如Harry Potter(上图编号1所示)、Hermione Granger(上图标号2所示)。

更简单的那种输出形式:

这个输入数据是9个单词组成的序列,所以最终我们会有9个特征集和来表示这9个单词,并按序列中的位置进行索引, x<1>、x<2>、x<3>x^{<1>}、x^{<2>}、x^{<3>}x<1>、x<2>、x<3> 等等一直到 x<9>x^{<9>}x<9> 来索引不同的位置,我将用 x<t>x^{<t>}x<t> 来索引这个序列的中间位置。 ttt 意味着它们是时序序列,但不论是否是时序序列,我们都将用 ttt 来索引序列中的位置。

输出数据也是一样,我们还是用 y<1>、y<2>、y<3>y^{<1>}、y^{<2>}、y^{<3>}y<1>、y<2>、y<3> 等等一直到 y<9>y^{<9>}y<9> 来表示输出数据。同时我们用 TxT_xTx​ 来表示输入序列的长度,这个例子中输入是9个单词,所以 Tx=9T_x=9Tx​=9 。我们用 TyT_yTy​ 来表示输出序列的长度。在这个例子里 Tx=TyT_x=T_yTx​=Ty​ ,上个视频里你知道 TxT_xTx​ 和 TyT_yTy​ 可以有不同的值。

你应该记得我们之前用的符号,我们用 x(i)x^{(i)}x(i) 来表示第 iii 个训练样本,所以为了指代第 ttt 个元素,或者说是训练样本 iii 的序列中第 ttt 个元素用 x(i)<t>x^{(i)<t>}x(i)<t> 这个符号来表示。如果 TxT_xTx​ 是序列长度,那么你的训练集里不同的训练样本就会有不同的长度,所以 Tx(i)T_x^{(i)}Tx(i)​ 就代表第 iii 个训练样本的输入序列长度。同样 y(i)<t>y^{(i)<t>}y(i)<t> 代表第 iii 个训练样本中第 ttt 个元素, Ty(i)T_y^{(i)}Ty(i)​ 就是第 iii 个训练样本的输出序列的长度。

所以在这个例子中, Tx(i)=9T_x^{(i)}=9Tx(i)​=9 ,但如果另一个样本是由15个单词组成的句子,那么对于这个训练样本, Tx(i)=15T_x^{(i)}=15Tx(i)​=15 。

既然我们这个例子是NLP,也就是自然语言处理,这是我们初次涉足自然语言处理,一件我们需要事先决定的事是怎样表示一个序列里单独的单词,你会怎样表示像Harry这样的单词, x<1>x^{<1>}x<1> 实际应该是什么?

接下来我们讨论一下怎样表示一个句子里单个的词。想要表示一个句子里的单词,第一件事是做一张词表,有时也称为词典,意思是列一列你的表示方法中用到的单词。这个词表(下图所示)中的第一个词是a,也就是说词典中的第一个单词是a,第二个单词是Aaron,然后更下面一些是单词and,再后面你会找到Harry,然后找到Potter,这样一直到最后,词典里最后一个单词可能是Zulu

因此a是第一个单词,Aaron是第二个单词,在这个词典里,and出现在367这个位置上,Harry是在4075这个位置,Potter在6830,词典里的最后一个单词Zulu可能是第10,000个单词。所以在这个例子中我用了10,000个单词大小的词典,这对现代自然语言处理应用来说太小了。对于商业应用来说,或者对于一般规模的商业应用来说30,000到50,000词大小的词典比较常见,但是100,000词的也不是没有,而且有些大型互联网公司会用百万词,甚至更大的词典。许多商业应用用的词典可能是30,000词,也可能是50,000词。不过我将用10,000词大小的词典做说明,因为这是一个很好用的整数。

如果你选定了10,000词的词典,构建这个词典的一个方法是遍历你的训练集,并且找到前10,000个常用词,你也可以去浏览一些网络词典,它能告诉你英语里最常用的10,000个单词,接下来你可以用one-hot表示法来表示词典里的每个单词。

举个例子,在这里 x<1>x^{<1>}x<1> 表示Harry这个单词,它就是一个第4075行是1,其余值都是0的向量(上图编号1所示),因为那是Harry在这个词典里的位置。

同样 x<2>x^{<2>}x<2> 是个第6830行是1,其余位置都是0的向量(上图编号2所示)。

and在词典里排第367,所以 x<3>x^{<3>}x<3> 就是第367行是1,其余值都是0的向量(上图编号3所示)。如果你的词典大小是10,000的话,那么这里的每个向量都是10,000维的。

因为a是字典第一个单词, x<7>x^{<7>}x<7> 对应a,那么这个向量的第一个位置为1,其余位置都是0的向量(上图编号4所示)。

所以这种表示方法中, x<t>x^{<t>}x<t> 指代句子里的任意词,它就是个one-hot向量,因为它只有一个值是1,其余值都是0,所以你会有9个one-hot向量来表示这个句中的9个单词,目的是用这样的表示方式表示 XXX ,用序列模型在 XXX 和目标输出 YYY 之间学习建立一个映射。我会把它当作监督学习的问题,我确信会给定带有 (x,y)(x,y)(x,y) 标签的数据。

那么还剩下最后一件事,我们将在之后的视频讨论,如果你遇到了一个不在你词表中的单词,答案就是创建一个新的标记,也就是一个叫做Unknow Word的伪造单词,用<UNK>作为标记,来表示不在词表中的单词,我们之后会讨论更多有关这个的内容。

总结一下本节课的内容,我们描述了一套符号用来表述你的训练集里的序列数据 xxx 和 yyy ,在下节课我们开始讲述循环神经网络中如何构建 XXX 到 YYY 的映射。

课程板书




←上一篇 ↓↑ 下一篇→
1.1 为什么选择序列模型 回到目录 1.3 循环神经网络

1.2 数学符号-深度学习第五课《序列模型》-Stanford吴恩达教授相关推荐

  1. 深度学习教程(6) | 神经网络优化算法(吴恩达·完整版)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/35 本文地址:https://www.showmeai.tech/article-d ...

  2. 深度学习教程(10) | 卷积神经网络解读(吴恩达·完整版)

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/35 本文地址:http://www.showmeai.tech/article-det ...

  3. 2.19 总结-深度学习-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 2.18 Logistic 损失函数的解释 回到目录 3.1 神经网络概览 文章目录 总结 习题 第 11 题 第 12 题 第 13 题 第 14 题 第 15 题 第 1 ...

  4. 机器学习和深度学习到底怎么学?顶尖专家吴恩达告诉你

    机器学习和深度学习到底怎么学? 在外国版知乎上,有位网友问:新手如何学习机器学习?学习完MOOC的课程后有没有能力阅读研究论文或者真正的做出一点研究成果? 这个困惑很多人的问题吴恩达给出了详细的回答, ...

  5. 3.12 总结-深度学习-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 3.11 随机初始化 回到目录 4.1 深层神经网络 文章目录 总结 习题 第 21 题 第 22 题 第 23 题 第 24 题 第 25 题 第 26 题 第 27 题 ...

  6. 1.1 欢迎-深度学习第一课《神经网络与深度学习》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 无 回到目录 1.2 什么是神经网络 欢迎 第一个视频主要讲了什么是深度学习,深度学习能做些什么事情.以下是吴恩达老师的原话: 深度学习改变了传统互联网业务,例如如网络搜索和 ...

  7. 3.5 向量化实现的解释-深度学习-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 3.4 多个例子中的向量化 回到目录 3.6 激活函数 向量化实现的解释 (Explanation for Vectorized Implementation) 在上一个视频 ...

  8. 3.10 直观理解反向传播-深度学习-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 3.9 神经网络的梯度下降法 回到目录 3.11 随机初始化 直观理解反向传播 (Backpropagation Intuition (Optional)) 这个视频主要是推 ...

  9. 0.0 目录-深度学习第五课《序列模型》-Stanford吴恩达教授

    文章目录 目录 第五课 第四课 第三课 第二课 第一课 目录 第五课 <序列模型> 笔记列表 Week 1 循环序列模型 Week 1 传送门 -> 1.1 为什么选择序列模型 1. ...

最新文章

  1. jquery很好的学习网站
  2. 网络推广团队介绍网站页面优化时需要注意什么细节?
  3. 计算机组成要素三:时序逻辑:构建计算机随机存取单元RAM及计数器PC
  4. dex运行linux,随着三星最新的DeX更新,更多的手机可以使用Linux
  5. 一文读懂视频监控系统全过程内容
  6. 最新php常用函数200个,180多个PHP常用函数总结
  7. Sublime Text 2中的正则表达式搜索替换
  8. linux学习作业-第八周
  9. 「leetcode」110.平衡二叉树
  10. 钩子函数atexit
  11. 一个简单的软件工程流程
  12. trim去除空格失败
  13. mysql如何实现透视表功能_SQL 实现数据透视表功能
  14. 【Codeforces 364D】Ghd
  15. 开juǎn有益系列(一)——Binary search(二分查找/折半查找算法)
  16. wlan协议—802.11n—802.11ac 5G和2.4G
  17. android 动态、静态壁纸实现
  18. 【Linux】git提交三把斧
  19. android usb 流程
  20. Maven环境搭建及配置

热门文章

  1. 22-高级特性之内建方法(3)
  2. 结对编程项目作业-结对编项目设计文档
  3. 定制化Azure站点Java运行环境(1)
  4. Hibernate映射配置方法
  5. android AIDL服务
  6. eclipse 导入myeclipse web项目
  7. Hierarchy of Log-Cauchy
  8. UA MATH564 概率分布1 二项分布上
  9. VC++ _T()宏学习
  10. 图解修改Windows启动菜单命令行工具BCDEdit