假如你想要建立一个序列模型,它的输入语句是这样的,x:Harry Potter and Hermione Granger invented a new spell.

假如你想要建立一个能够自动识别句中人名位置的序列模型,那么这就是一个命名实体识别问题,这常用于搜索引擎。比如说,索引过去24小时内所有新闻报道提及的人名,用这种方式就能够恰当地进行索引。

命名实体识别系统可以用来查找不同类型的文本中人名、公司名、时间、地点、国家名、货币名等等。

现在给定这样的输入数据x,假设你想要一个序列模型输出y,使得输入的每个单词都对应一个输出值,同时这个y能够表明输入的单词是否是人名的一部分。

技术上说这也许不是最好的输出形式,还有更加复杂的输出形式,它不仅能够表明输入词是否是人名的一部分,它还能告诉你这个人名在这个句子里从哪里开始到哪里结束。

对于这个例子,吴恩达先生会讲解更简单的输出形式(如11011…000)。这个输入数据是9个单词组成的序列,所以最终我们会有9个特征集合来表示这9个单词,并按序列中的位置进行索引。这里用X<1>X^{<1>}X<1>,X<2>X^{<2>}X<2>,X<3>X^{<3>}X<3>一直到X<9>X^{<9>}X<9>来索引不同的位置,我们将用X<t>X^{<t>}X<t>来索引这个序列的中间位置,t意味着他们是时序序列。但不论是否是时序序列,都将用t来索引序列中的位置。输出数据也是一样,用用Y<1>Y^{<1>}Y<1>,Y<2>Y^{<2>}Y<2>,Y<3>Y^{<3>}Y<3>一直到Y<9>Y^{<9>}Y<9>来表示输出数据,同时我们用TxT_xTx​来表示输入序列的长度,这个句子中输入是9个单词,所以TxT_xTx​就等于9,我们用TyT_yTy​来表示输出序列的长度,在这个例子中TxT_xTx​等于TyT_yTy​。

之前我们用X(i)X^{(i)}X(i)来表示第i个训练样本,所以为了指代第t个元素,或者说是训练样本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>代表第i个训练样本中第t个元素,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这样的单词,X1X_1X1​实际应该是什么?

接下来我们讨论一下怎么表示一个句子里单个的词。要想表示一个句子里的单词第一件事是做一张词表,有时也称为词典。意思是列一列你的表示方法中要用到的单词。这个词表中的第一个词是aaa,也就是说词典中的第一个单词时aaa,第二个单词时aaronaaronaaron,然后更下面一些是单词andandand,再后面你会找到harryharryharry,然后找到PotterPotterPotter,这样一直到最后,词典里最后一个单词可能是zuluzuluzulu。

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

如果你选定了10000词的词典,构建这个词典的一个方法是遍历你的训练集,并且找到前10000个常用词。你也可以浏览一些网络词典,它能告诉你英语里最常用的10000个单词。

接下来你可以用one-hot表示法来表示词典里的每个单词,举个例子,x<1>x^{<1>}x<1>表示Harry这个单词,它是一个第4075行是1,其余值都是0的向量,因为4075是Harry在这个词典里的位置。如果你的词典大小是10000的话,那么每个向量都是10000维的。

所以这种表示方法中,x<t>x^{<t>}x<t>指代句子里的任意词,它就是一个one-hot变量,说它是one-hot是因为这个向量中只有一个值是1,其余值都是0。所以我们会有9个one-hot向量来表示这个句子中的9个单词,目的是用这样的表示方法表示X,用序列模型在X和目标输出Y之间学习建立一个映射,这里会把它当做监督学习的问题。

还剩最后一件事,如果你遇到了一个不在你词表中的词,那么创建一个新的标记,也就是一个叫做unknown word的伪造单词,用这个单词作为标记来表示不在词表中的单词。

循环序列模型 —— 1.2 数学符号相关推荐

  1. 05.序列模型 W1.循环序列模型

    文章目录 1. 为什么选择序列模型 2. 数学符号 3. 循环Recurrent 神经网络模型 4. 通过时间的反向传播 5. 不同类型的循环神经网络 6. 语言模型和序列生成 7. 对新序列采样 8 ...

  2. 第五门课 序列模型(Sequence Models) 第一周 循环序列模型(Recurrent Neural Networks)

    第五门课 序列模型(Sequence Models) 第一周 循环序列模型(Recurrent Neural Networks) 文章目录 第五门课 序列模型(Sequence Models) 第一周 ...

  3. 吴恩达deeplearning.ai系列课程笔记+编程作业(13)序列模型(Sequence Models)-第一周 循环序列模型(Recurrent Neural Networks)

    第五门课 序列模型(Sequence Models) 第一周 循环序列模型(Recurrent Neural Networks) 文章目录 第五门课 序列模型(Sequence Models) 第一周 ...

  4. 深度学习笔记 第五门课 序列模型 第一周 循环序列模型

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

  5. 05.序列模型 W1.循环序列模型(作业:手写RNN+恐龙名字生成)

    文章目录 作业1:建立你的循环神经网络 1. RNN 前向传播 1.1 RNN 单元 1.2 RNN 前向传播 2. LSTM 网络 2.1 LSTM 单元 2.2 LSTM 前向传播 3. RNN ...

  6. 深度学习系列 -- 序列模型之循环序列模型(Recurrent Neural Networks)

    目录 1 为什么选择序列模型?(Why Sequence Models?) 2 数学符号(Notation) 3 循环神经网络(Recurrent Neural Network Model) 4 语言 ...

  7. 循环序列模型 —— 1.1 为什么选择序列模型

    在进行语音识别时,给定了一个输入音频片段X,并要求输出片段对应的文字记录Y,这个例子里的输入和输出数据,都是序列数据,因为X是一个按时序播放的音频片段,输出Y是一系列单词,所以之后要学习的是一些序列模 ...

  8. 循环序列模型 —— 1.7 对新序列采样

    在你训练一个序列模型之后,要想了解这个模型学到了什么,一种非正式的方法就是进行一次新序列采样,来看看到底应该怎么做. 记住,一个序列模型模拟了任意特定单词序列的概率,我们要做的就是对这个概率分布进行采 ...

  9. 循环序列模型 —— 1.3循环神经网络

    现在讨论一下怎么才能建立一个神经网络模型来学习X到Y的映射.可以尝试的方法之一是使用标准的神经网络,在之前的例子中,我们有九个输入单词,想象一下,把这9个输入单词,可能是9个one-hot向量,然后把 ...

最新文章

  1. java session验证码_利用session实现一次性验证码
  2. 卷积神经网络(CNN)前向传播算法
  3. mysql十分钟分组_MYSQL每隔10分钟进行分组统计的实现方法
  4. HTML+CSS+JS实现 ❤️3D建筑结构旋转特效❤️
  5. getClass().getProtectionDomain().getCodeSource().getLocation().toURI().getSchemeSpecificPart()返回内容解析
  6. 报告解读下载 | 数据库的未来和“十四五”数据库发展趋势与挑战
  7. node下使用jquery
  8. c++和opencv小知识:openCV中convertTo的用法
  9. suse linux 11 sp3 的安装
  10. Coablt strike官方教程中文译版本
  11. 牛客网优惠码-直通BAT面试算法精品课购买
  12. python基础之排列组合以及正则表达式
  13. 网络工程师考试资料汇总
  14. 在线免费一键将头像转换卡通形象
  15. CCF关于举办CSP-J1 CSP-S1 初赛的报名通知
  16. 计算机中丢失storm.d,win10 64位电脑缺少storm.dll怎么办_win10玩暗黑破坏神2缺少storm.dll文件修复方法...
  17. 过压电路保护元器件详解,一文就看明白了
  18. TIA博途中触摸屏仿真时画面字体变大,超出范围的处理方法
  19. tekton入门 - tasks
  20. 你还在迷茫?设计师前3年的瓶颈期要这样突破

热门文章

  1. 当页面上的某个控件回发时,保持滚动条位置的。
  2. Docker启动一个Centos镜像
  3. docker 守护进程
  4. Android Picasso最详细的使用指南
  5. Spring框架声明式事务管理
  6. webpack4 filemanager-webpack-plugin 打zip包失败问题
  7. C#LeetCode刷题之#532-数组中的K-diff数对(K-diff Pairs in an Array)
  8. 交叉验证选择最佳参数_如何为您的公司选择最佳的身份验证即服务提供商
  9. 关于《应用STATA做统计分析(原书第8版)》一书中`chart()‘语句问题
  10. 刷题笔记2020-06-26