zoukankan      html  css  js  c++  java
  • 循环神经网络模型

    整理并翻译自吴恩达深度学习系列视频:序列模型第一周,有所详略。

    Recurrent Neural Network

    在这里插入图片描述一个标准的循环神经网络如图所示,在网络的每一个时间步 t t t,它接受前一层的激活函数值 a &lt; t − 1 &gt; a^{&lt;t-1&gt;} a<t1>和输入 x &lt; t &gt; x^{&lt;t&gt;} x<t>, 使用权值矩阵使用 W a a W_{aa} Waa W a x W_{ax} Wax计算 a &lt; t &gt; a^{&lt;t&gt;} a<t>,使用结果 a &lt; t &gt; a^{&lt;t&gt;} a<t>和权值矩阵 W y a W_{ya} Wya计算 y ^ &lt; t &gt; hat{y}^{&lt;t&gt;} y^<t>,计算方法如第二小节。

    Forward Propagation

    在这里插入图片描述
    可总结为以下:
    a &lt; t &gt; = g 1 ( W a a a &lt; t − 1 &gt; + W a x x &lt; t &gt; + b a ) a^{&lt;t&gt;}=g_1(W_{aa}a^{&lt;t-1&gt;}+W_{ax}x^{&lt;t&gt;}+b_a) a<t>=g1(Waaa<t1>+Waxx<t>+ba)
    y ^ &lt; t &gt; = g 2 ( W y a a &lt; t &gt; + b y ) hat{y}^{&lt;t&gt;}=g_2(W_{ya}a^{&lt;t&gt;}+b_y) y^<t>=g2(Wyaa<t>+by)
    g 1 g_1 g1可以使用 t a n h tanh tanh R e L u ReLu ReLu g 2 g_2 g2可以使用 s i g m o i d sigmoid sigmoid
    在这里插入图片描述
    上图右边是向量化版本的实现,它将两个参数矩阵横向堆砌成 [ W a a ∣ W a x ] [W_{aa}|W_{ax}] [WaaWax]构成 W a W_a Wa,将两个输入纵向堆砌成 [ a &lt; t − 1 &gt; x &lt; t &gt; ] [frac{a^{&lt;t-1&gt;}}{x^{&lt;t&gt;}}] [x<t>a<t1>](横线表示分隔符不是除法)。

    Backward Propagation

    在这里插入图片描述
    循环神经网络的反向传播同其他网络一致,按反方向计算导数,编程时框架会自动帮我们处理反向传播,但了解其基本原理也是有助益的。
    在这里插入图片描述
    如上图所示,需注意,每一个横向上的参数矩阵是共享的, W y 、 b y W_y、b_y Wyby用于每次计算 y &lt; t &gt; ^ hat{y^{&lt;t&gt;}} y<t>^ W a 、 b a W_a、b_a Waba也用于每次计算 x &lt; t &gt; x^{&lt;t&gt;} x<t>

    其损失函数使用的是交叉熵(cross entropy loss)。
    L &lt; t &gt; ( y ^ &lt; t &gt; , y &lt; t &gt; ) = − y &lt; t &gt; l o g y ^ &lt; t &gt; − ( 1 − y &lt; t &gt; ) l o g ( 1 − y ^ &lt; t &gt; ) ) mathcal{L}^{&lt;t&gt;}(hat{y}^{&lt;t&gt;},y^{&lt;t&gt;})=-y^{&lt;t&gt;}loghat{y}^{&lt;t&gt;}-(1-y^{&lt;t&gt;})log(1-hat{y}^{&lt;t&gt;})) L<t>(y^<t>,y<t>)=y<t>logy^<t>(1y<t>)log(1y^<t>))
    L ( y ^ &lt; t &gt; , y ) = ∑ t = 1 T L &lt; t &gt; ( y ^ &lt; t &gt; , y &lt; t &gt; ) mathcal{L}(hat{y}^{&lt;t&gt;},y)=sum_{t=1}^{T}mathcal{L}^{&lt;t&gt;}(hat{y}^{&lt;t&gt;},y^{&lt;t&gt;}) L(y^<t>,y)=t=1TL<t>(y^<t>,y<t>)

    其他种类的RNN

    在这里插入图片描述
    根据输入和输出的对应关系,RNN有图示几种结构,即一对一、一对多、多对一、多堆多。

  • 相关阅读:
    第二十六篇 -- wifi学习
    第三篇 -- HTML基础
    第二十九篇 -- 学习第五十六天打卡20190826
    第二篇 -- 软件测试基础
    第一篇 -- 计算机基础
    第二十五篇 -- C++宝典中的图书管理系统
    第五篇 -- 记下曾经的好词好句
    linux平台下Tomcat的安装与优化、windows安装tomcat8.5
    转载:让Windows Server 2012r2 IIS8 ASP.NET 支持10万并发请求
    转载:IIS 之 连接数、并发连接数、最大并发工作线程数、队列长度、最大工作进程数
  • 原文地址:https://www.cnblogs.com/wanghongze95/p/13842499.html
Copyright © 2011-2022 走看看