zoukankan      html  css  js  c++  java
  • 循环神经网络简易理解

    循环神经网络主要运用在序列数据之中,因此下文将以比较典型的文本数据进行分析。

    一、 Vocabulary

    对于神经网络,我们输入的X必须是数字,不然无法参与计算。因此这里就创建一个vocabulary,给每一个词编码。

    比如a可能代表1,b可能代表452等;随后我们使用one_hot来代表这些单词。

    一般来说,词典的大小,将会成为我们输入的X的维度,因此循环神经网络的计算量往往很大。

    二、 模型(正向传播)

    为了充分利用序列化数据的序列特征,循环神经网络将X的每一个单位数据称为一个时间步的数据。这里以《动手学深度学习》一书中的插图进行分析。

    从图中可以看出,时间步,输入,隐藏层,输出,标签等;

    这里的输入就是我们的词向量,通过隐藏层,来预测一个我们想要的结果。图中的预测结果即是下一个时间步的标签,但事实上,输出的结果完全可以由我们自己决定。当然这也取决于模型的使用目的。

    一般来说,循环神经网络中的输入和输出是相同的,就像图中一样。但是也有不少循环神经网络输入输出的数量并不同。常见的如情感分析,只需要在循环神经网络最后一步输出一个结果。

    现在进入数学部分。

    $oldsymbol{H}_{t}=phileft(oldsymbol{X}_{t} oldsymbol{W}_{x h}+oldsymbol{H}_{t-1} oldsymbol{W}_{h h}+oldsymbol{b}_{h} ight)$

    这一步是关于H的计算,H的计算主要考虑前一步的隐藏层输出以及这一步的输入,即Ht-1和Xt。

    在隐藏层中,常用的激活函数是tanh。

    $oldsymbol{O}_{t}=oldsymbol{H}_{t} oldsymbol{W}_{h q}+oldsymbol{b}_{q}$

    这里是每一步的输出层输出的计算,它将隐藏层的输出作为输入进行线性计算。

    三、 反向传播

    反向传播的过程稍微复杂,这主要是由于循环神经网络在计算的过程中,涉及不同箭头的计算。

    $a^{(t)}= anh left(W_{a x} x^{(t)}+W_{a a} a^{(t-1)}+b ight)$
    $frac{partial anh (x)}{partial x}=1- anh (x)^{2}$
    $frac{partial a^{(t)}}{partial W_{a x}}=left(1- anh left(W_{a x} x^{(t)}+W_{a a} a^{(t-1)}+b ight)^{2} ight) x^{(t) T}$
    $frac{partial a^{(t)}}{partial W_{a a}}=left(1- anh left(W_{a x} x^{(t)}+W_{a a} a^{(t-1)}+b ight)^{2} ight) a^{langle t-1 angle T}$
    $frac{partial a^{(t)}}{partial b}=sum_{ ext {buch}}left(1- anh left(W_{a x} x^{langle t angle}+W_{a a} a^{langle t-1 angle}+b ight)^{2} ight)$
    $frac{partial a^{(t)}}{partial x^{(t)}}=W_{a x}^{T} cdotleft(1- anh left(W_{a x} x^{(t)}+W_{a a} a^{(t-1)}+b ight)^{2} ight)$
    $frac{partial a^{(t)}}{partial a^{(t-1)}}=W_{a a}^{T} cdotleft(1- anh left(W_{a x} x^{(t-1)}+W_{a a} a^{(t-1)}+b ight)^{2} ight)$

    反向传播的方向就是把前向传播的箭头全部改变方向,这里不做一一解释。

  • 相关阅读:
    软件架构自学笔记-- 转载“腾讯数据库专家雷海林分享智能运维架构”
    软件架构自学笔记-- 架构设计与安全控制
    软件架构自学笔记——什么样的架构才是好的架构
    软件架构自学笔记----分享“去哪儿 Hadoop 集群 Federation 数据拷贝优化”
    软件架构自学笔记---架构分析
    软件架构自学笔记——非功能特性
    软件架构自学笔记——常见的软件架构(https://jiajunhuang.com/articles/2018_09_16-common_software_archtecture_pattern.md.html)
    微服务化的基石——持续集成
    微软开源大规模数据处理项目 Data Accelerator
    vs2019 cdkey 秘钥
  • 原文地址:https://www.cnblogs.com/siyuan-Jin/p/12427113.html
Copyright © 2011-2022 走看看