Coursera 深度学习 吴恩达 deep learning.ai 笔记整理(5-1)—— 序列模型之循环序列模型

1.1 为何选择序列模型

序列模型的输入可以为空集,当然也可以是一个向量,输出序列y一般来说是序列;输入序列和输出序列有时并不一定一样长

应用的例子有:

  • 语音识别
  • 生成音乐(输入可以是整数,或者一个整数用来指代音乐风格)
  • 情感分类
  • DNA序列分析
  • 机器翻译
  • 视频行为识别
  • 人名是被

1.2 数学符号

一般可以用如下方式表示一句话中的单词,输出用来判断该位置是否为人名,输出长度为一个等长的向量,至于如何表示一个单词,我们可以考虑做一个词表,一般来说词表长度为3W-5W。一个词于是可以用one-hot向量来表示每个单词,也就是说只有词对应的位置的元素为1,其余都是0。如果遇见一个单词不在词表之中,那么我们考虑使用一个特殊符号UK来进行标记。

1.3 循环神经网络模型

如果用普通的神经网络来处理时间序列问题,比如之前提到的“判断某个位置的单词是否为人名”,就可能存在以下两个问题:

  • 输入输出长度不一致
  • 无法共享不同位置上文本学到的特征(这个问题最严重)

如果使用循环神经网络(RNN),那就不存在这个问题,训练方法仍然是“前向传播”,至于激活函数的选择,如果是二分类问题,可以选择Sigmoid;如果是多分类问题,可以选用Softmax。激活函数也就是图中的g,当前时刻的输出取决于两部分内容——一部分是当前时刻的输入;另一部分是上一时刻训练出的权重输出。补充一下,吴恩达老师的课件中,下标如果有两个字母,那么第一个字母表示要计算的向量,第二个字母表示要乘的向量。例如

这里参数w下标y表示要计算y向量,a表示参数w将要与a相乘,另外一些简化技巧也值得学习,主要涉及到的部分是矩阵的合并与拆分,可以使得计算结果得到简化

 

原文地址:https://www.cnblogs.com/dapeng-bupt/p/9198165.html