[DeeplearningAI笔记]序列模型1.1-1.2序列模型及其数学符号定义
5.1循环序列模型
觉得有用的话,欢迎一起讨论相互学习~
1.1什么是序列模型
- 在进行语音识别时,给定了一个输入音频片段X,并要求输出片段对应的文字记录Y,这个例子中的输入和输出都输序列数据。因为X是一个按时序播放的序列音频而输出Y是一系列单词。
- 音乐生成使用的也是序列数据,在这个例子中只有输出数据Y是序列,而输入数据可以是空集也可以是个单一的整数,这个数可能指代想要生成的音乐风格也可能是你想要生成的那首曲子的前几个输入。
- 情感分类问题中,输入是一串文字,输出是情感的评价
- DNA序列分析问题中,输入是一段DNA序列,用来标记出DNA序列的那些片段是用于匹配蛋白质的。
- 在机器翻译中,输入是一段文字,要求你输出另一种语言的翻译结果。
- 在视频行为识别中,获得一段视频帧,然后要求你识别其中的行为。
- 在命名实体识别问题中,会给定一个句子,要求识别出句子中的人名
- 虽然都是序列模型,但是序列问题存在着差异,例如:有的是输入数据是一个序列,而输出不是序列。有的是输出数据是一个序列,而输入不是一个序列。或者输入和输出的序列长度存在差异等。
1.2序列模型数学符号定义
示例:命名实体识别 Name entity recognition system
- 输入: Harry Potter and Hermione Granger invented a new spell
- 能够自动识别句中的人名和地名,这常用于搜索引擎,来索引过去24小时内所有新闻报道提及的人名,用这种方法就能来恰当的进行索引。
- 命名实体识别系统可以用来查找不同类型文本中的人名,公司名,时间,地点,国家名,货币名等等。
- 假设设定模型的输出是一个与输入句式对应的序列,即通过0或1来表示输入的句式中的单词是否是人名或地名的一部分。例如Y: 1 1 0 1 1 0 0 0 0 。PS:这只是个简单的示例,更复杂的示例不仅能够表示输入的句式是不是一个命名实体还能表示命名实体的起始点和长度。
- 形式化表示方法:
- 使用\(X^{1},X^{2},X^{3}...X^{T}...X^{9}\)来表示输入数据
- 使用\(Y^{1},Y^{2},Y^{3}...Y^{T}...Y^{9}\)来表示输出数据
- 使用\(T_{x}\)来表示输入序列的长度,\(T_{x}=9\).
- 使用\(T_{y}\)来表示输出序列的长度,\(T_{y}=9\).
- 训练数据集中第i个样本的第t个输入序列使用\(X^{(I)<t>}表示\)
- 训练数据集中第i个样本的第t个输出序列使用\(y^{(I)<t>}表示\)
- 使用\(T_{x}^{(i)}\)来表示训练数据集中第i个样本输入序列的长度
- 使用\(T_{y}^{(i)}\)来表示训练数据集中第i个样本输出序列的长度
NLP(Nature Language Processing)自然语言处理数据表示方法
- 需要将解决的是如何处理一个序列里单独的词,如何单独的表示Harry这个词。
- 做词典,列一列你的表示方法中要用到的单词,对于一般的商用自然语言处理的应用来说,词典的大小一般在30000到50000之间,也有百万级甚至是更大的词典
- 构建字典后,将数据集中的单词使用one-hot向量表示法表示:
- 即数据中在字典中的位置表示为1,而其余位置标为0.
- 即数据中在字典中的位置表示为1,而其余位置标为0.