吴恩达course5-序列模型学习笔记-很棒

https://www.jianshu.com/p/d67e01618dde

 

  • RNN结构
    对于第一个单词的预测就是将x<1>送进网络,然后输出预测值ŷ<1>;对于第二个单词的预测,不仅接收x<2>,还接收来自第一个时间步长(time step,前面提到语言都是逐个生成的,包含时间的概念,所以会引入time step这个概念,也可以理解成:为逐个生成的单词都盖上专属的时间戳)的激活函数值a<1>或者称为隐藏信息,后面以此类推。这样做能够避免SNN中参数不能共享的缺点,从而对于处理一整句话这种前后关联性很强的数据样本有很强的优势。


    整个模型的结构如下图左边所示,通常会在结构的最前面加上第0个时间步长的激活函数值a<0>,作为一个假数据,初始化为全0的向量。在其他一些论文或课程中也有出现右边所示的单个时间步长的结构,这样的结构称为“折叠模型”(Folded model)。所以左边的模型称为“展开模型”(unfolded model)


    网络中的一些参数:

     

    • Wax:表示在每个时间步长中从输入层到隐藏层之间的权重参数
    • Waa:表示在每个时间步长中从前往后共享信息之间的权重参数
    • Wya:表示在每个时间步长中从隐藏层到输出层之间的权重参数

    对于这个结构的缺点就是:
    共享的参数是单向传递的(图中所示是从左往右),这样就只能利用句子中前面的信息往后来进行预测而不能利用后面的信息往前作出预测。例如,Teddy不仅可以作为人名,还有泰迪熊的意思,如果不利用后面的信息往前进行预测(获取该序列完整的信息),就无法判断Teddy是人还是玩具。对于这个缺点,提出了双向RNN(BRNN)的结构,在后面的课程中会讲解。

  • RNN中的前向传播


    在前面提到过a<0>是个假参数,表示第0个时间步长的激活值,初始化为全0的向量。
    对于第一个元素的预测有:
    a<1> = g1(waaa<0> + waxx<1> + ba)
    ŷ<1> = g2(wyaa<1> + by)
    推广至t个元素:
    a<t> = g(waaa<t -1> + waxx<t> + ba)
    ŷ<t> = g(wyaa<t> + by)
    再简化一点可以表示为:
    a<t> = g(wa [a<t -1> ,x<t> ] + ba),wa为:[waa | wax]
    ŷ<t> = g(wy a<t > + ba)

     

  • RNN中的反向传播
    虽然现在的框架提供了很多方便,能够自动计算反向传播,但了解背后的实现原理还是很有必要的。
    在计算反向传播之前需要定义损失函数:

    • 单样本上的损失函数:
      L<t>(ŷ<t> , y<t>) = -y<t>log(ŷ<t>) - (1-y<t>)log(1-ŷ<t>)
      运用这个公式,就可以在每个时间步长上计算单个样本上的损失。
    • 全样本上的成本函数:
      L(ŷ,y) = ∑(L<t>(ŷ<t> , y<t>))
      计算完单个样本上的损失,再相加得到全样本上的损失总和。

     

     

    计算完前向传播和代价函数(如下图蓝线所示),按照原路返回,计算反向传播(如下图红线所示),求解梯度更新参数来最小化成本函数。这里的反向传播与之前有点不一样,因为序列数据包含时间的概念,前向传播随时间正向计算,反向传播的计算就相当于是时间倒退,逐个更新之前的时间点的参数。所以赋予这里的反向传播一个帅气的名字--back propagation through time(看了下网易和Amazon课程中的翻译都是“通过时间反向传播”,有些地方也翻译成“时间反向传播”,我觉得后者更为合适)

 

 

下面是反向传播时权重梯度求解的细节,其中损失函数采用的是均方差MSE:

1.4 不同类型的RNN

  • many-to-many 模型
    之前提到的名字主体识别的应用就是 many-to-many 模型的一个例子,它的输入输出长度是一样的。


    但还有输入和输出长度不一致的情况,比如在机器翻译领域中,将中文翻译成英文,这时候因为语言的差异,输入输出的序列长度就会不一致。

  • many-to-one 模型
    情感分类系统就是many-to-one模型,在网上完成一句或者一段话的评论,该系统就会根据输入的内容进行分类,输出一个0-5之间的整数评分。

     

  • one-to-many 模型
    音乐生成采用的就是one-to-many模型,比如输入一个整数,模型会根据这个整数输出一段音乐,但前一个输出的预测值也会被用于下一个预测中。

     

  • 汇总

     

 



作者:caoqi95
链接:https://www.jianshu.com/p/d67e01618dde
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值