• 神经网络与深度学习(三):循环神经网络网络


    给神经网络增加记忆能力

    前馈神经网络:

    • 相邻两层之间存在单向连接,层内无连接
    • 有向无环图
    • 输入和输出的维数都是固定的,不能任意改变
    • (全连接前馈网络)无法处理变长的序列数据

    可计算问题:

    image-20221108172055490

    时延神经网络:

    时延神经网络(Time Delay Neural Network,TDNN)

    建立一个额外的延时单元,用来存储网络的历史信息(可以包括输入、输出、隐状态等)

    ht(l)=f(ht(l1),ht1(l1),,htK(l1))

    这样,前馈网络就具有了短期记忆的能力。

    image-20221108173940126

    自回归模型(Autoregressive Model,AR)

    一类时间序列模型,用变量y的历史信息来预测自己

    yt=w0+k=1Kwkytk+ϵt

    ϵtN(0,σ2)为第t个时刻的噪声

    有外部输入的非线性自回归模型(Nonlinear Autoregressive with Exogenous Inputs Model,NARX)

    yt=f(xt,xt1,,xtKx,yt1,yt2,,ytKy)

    其中f(·)表示非线性函数,可以是一个前馈网络.

    KxKy为超参数.

    非线性自回归模型

    image-20221108175122528

    循环神经网络

    循环神经网络通过使用带自反馈的神经元,能够处理任意长度的时序数据。

    循环神经网络比前馈神经网络更加符合生物神经网络的结构。
    循环神经网络已经被广泛应用在语音识别、语言模型以及自然语言生成等任务上。

    image-20221108180010743

    图灵完备(Turing Completeness)是指一种数据操作规则,比如一种计算机编程语言,可以实现图灵机的所有功能,解决所有的可计算问题。

    一个完全连接的循环神经网络可以近似解决所有的可计算问题。

    作用

    • 输入-输出映射
      • 机器学习模型(本节主要关注这种情况)
    • 存储器
      • 联想记忆模型
    • 参考蒲公英书第8.6节

    应用到机器学习

    序列到类别

    image-20221108180959201

    真实情况:b

    e.g.情感分类

    image-20221108181442753

    同步的序列到序列

    image-20221108181946026

    e.g.中文分词

    image-20221108182056380

    e.g.信息抽取

    从无结构的文本中抽取结构化的信息,形成知识

    image-20221108212720499

    e.g.语音识别

    image-20221108213040367

    异步的序列到序列

    image-20221108213254199

    e.g.机器翻译

    image-20221108213454708

    参数学习与长程依赖问题

    参数学习

    机器学习

    给定一个训练样本(x,y),其中
    长度为T的输入序列x=x1,,xT
    长度为T的标签序列y=y1,,yT

    时刻t的瞬时损失函数为

    Lt=L(yt,g(ht))

    总损失函数

    L=t=1TLt

    计算梯度

    zt=Uht1+Wxt+bht=f(zt)

    image-20221108215431549 LU=t=1TLtULtU=k=1tLtzkhk1=k=1tδt,khk1

    δt,k=Ltzk=hkzkzk+1hkLtzk+1=diag(f(zk))Uδt,k+1

    随时间反向传播算法(BackPropagation Through Time,BPTT)

    LtU=k=1tδt,khk1δt,k=diag(f(zk))Uδt,k+1=τ=kt1(diag(f(zτ))U)δt,t

    长程依赖问题(Long-Term Dependencies Problem)

    由于梯度爆炸或消失问题,实际上只能学习到短周期的依赖关系。

    image-20221109091246038

    如何解决长程依赖问题?

    • 循环神经网络在时间维度上非常深!
      • ​ 梯度消失或梯度爆炸
    • 如何改进?
      • ​ 梯度爆炸问题
        • ​ 权重衰减
        • ​ 梯度截断
      • 梯度消失问题
        • 改进模型
    image-20221109100302438

    残差网络?

    门控机制

    控制信息的累积速度,包括有选择地加入新的信息,并有选择地遗忘之前累积的信息。

    基于门控的循环神经网络(Gated RNN)

    • 门控循环单元GRU
    • 长短期记忆网络LSTM

    GRU

    image-20221109101720914

    门控循环单元(Gated Recurrent Unit,GRU)

    image-20221109102251090

    长短期记忆神经网络(Long Short-Term Memory,LSTM)

    image-20221109102559113

    LSTM的各种变体

    image-20221109102738685

    深层循环神经网络

    堆叠循环神经网络(Stacked)

    image-20221109103407969

    双向循环神经网络

    image-20221109103529477

    循环神经网络小结

    • 优点:

      • 引入(短期)记忆

      • 图灵完备

    • 缺点:

      • 长程依赖问题

      • 记忆容量问题

      • 并行能力

    循环网络应用

    语言模型

    自然语言理解:一个句子的可能性/合理性

    image-20221109104353819 image-20221109104556768

    基于序列到序列的机器翻译:一个RNN用来编码,另一个RNN用来解码

    image-20221109105137411

    写字、签名、对话系统...

    扩展到图结构

    image-20221109105507262

    递归神经网络(Recursive Neural Network)

    递归神经网络实在一个有向图无循环图上共享一个组合函数

    image-20221109110030281

    退化为循环神经网络

    image-20221109110322373 image-20221109110403072

    图数据

    image-20221109111345657

    图网络

    image-20221109111452923

    对于一个任意的图结构G(V,E)

    更新函数

    mt(v)=uN(v)f(ht1(v),ht1(u),e(u,v))ht(v)=g(ht1(v),mt(v))

    读出函数

    yt=g({hT(v)vV})

    原创作者:孤飞-博客园
    原文链接:https://www.cnblogs.com/ranxi169/p/16873036.html

  • 相关阅读:
    linux 笔记:远程服务器登录jupyter notebook
    H2N-Val-Pro-Pro-COOH,58872-39-2
    3D Instances as 1D Kernels
    Unity实现设计模式——观察者模式
    Twins: Revisiting the Design of Spatial Attention inVision Transformers
    Java异常编程题(巩固语法)
    Vue 简易版无限加载组件实现原理
    72道Java线程面试题,一题一答案,不搞花里胡哨
    基于遗传算法的神经网络,遗传算法训练神经网络
    Elasticsearch Analyzer 内置分词器
  • 原文地址:https://www.cnblogs.com/ranxi169/p/16873036.html