首页 > 其他分享 >序列建模之循环和递归网络 - 双向RNN篇

序列建模之循环和递归网络 - 双向RNN篇

时间:2024-08-15 12:54:38浏览次数:13  
标签:Graves RNN 递归 text boldsymbol 建模 al et

序言

在序列建模的广阔领域中,循环神经网络( RNN \text{RNN} RNN)以其独特的循环结构,在处理序列数据方面展现出了强大的能力。然而,传统的单向 RNN \text{RNN} RNN在处理某些复杂任务时,如自然语言处理中的文本理解,往往受限于其仅能利用过去信息的局限性。为了克服这一挑战,双向 RNN \text{RNN} RNN应运而生。双向 RNN \text{RNN} RNN通过结合两个独立且方向相反的 RNN \text{RNN} RNN,能够同时捕获输入序列中的前向和后向信息,从而在预测或分类时能够利用更全面的上下文信息。

双向 RNN \text{RNN} RNN

  • 目前为止我们考虑的所有循环神经网络有一个 ‘‘因果’’ 结构,意味着在时刻 t t t 的状态只能从过去的序列 x ( 1 ) , … , x ( t − 1 ) \boldsymbol{x}^{(1)},\dots,\boldsymbol{x}^{(t-1)} x(1),…,x(t−1) 以及当前的输入 x ( t ) \boldsymbol{x}^{(t)} x(t) 捕获信息。我们还讨论了某些在 y \boldsymbol{y} y 可用时,允许过去的 y \boldsymbol{y} y 值信息影响当前状态的模型。
  • 然而,在许多应用中,我们要输出的 y ( t ) \boldsymbol{y}^{(t)} y(t) 的预测可能依赖于整个输入序列。
    • 例如,在语音识别中,由于协同发音,当前声音作为音素的正确解释可能取决于未来几个音素,甚至潜在的可能取决于未来的几个词,因为词与附近的词之间的存在语义依赖:如果当前的词有两种声学上合理的解释,我们可能要在更远的未来(和过去)寻找信息区分它们。
    • 这在手写识别和许多其他序列到序列学习的任务中也是如此,将会在后续篇章:基于编码/解码的序列到序列架构中描述。
  • 双向循环神经网络(或双向 RNN \text{RNN} RNN)为满足这种需要而被发明( Schuster and Paliwal, 1997 \text{Schuster and Paliwal, 1997} Schuster and Paliwal, 1997)。他们在需要双向信息的应用中非常成功 ( Graves, 2012 \text{Graves, 2012} Graves, 2012),如:
    • 手写识别( Graves et al., 2008; Graves and Schmidhuber, 2009 \text{Graves et al., 2008; Graves and Schmidhuber, 2009} Graves et al., 2008; Graves and Schmidhuber, 2009),
    • 语音识别 ( Graves and Schmidhuber, 2005; Graves et al., 2013 \text{Graves and Schmidhuber, 2005; Graves et al., 2013} Graves and Schmidhuber, 2005; Graves et al., 2013),
    • 以及生物信息学 ( Baldi et al., 1999 \text{Baldi et al., 1999} Baldi et al., 1999)。
  • 顾名思义,双向 RNN \text{RNN} RNN结合时间上从序列起点开始移动的 RNN \text{RNN} RNN和另一个时间上从序列末尾开始移动的 RNN \text{RNN} RNN。
    • 图例1展示了典型的双向 RNN \text{RNN} RNN,其中 h ( t ) \boldsymbol{h}^{(t)} h(t) 代表通过时间向前移动的子 RNN \text{RNN} RNN的状态, g ( t ) \boldsymbol{g}^{(t)} g(t) 代表通过时间向后移动的子 RNN \text{RNN} RNN的状态。
    • 这允许输出单元 ο ( t ) \boldsymbol{\omicron}^{(t)} ο(t) 能够计算同时依赖于过去和未来且对时刻 t t t 的输入值最敏感的表示,而不必指定 t t t 周围固定大小的窗口(这是前馈网络、 卷积网络或具有固定大小的先行缓存器的 RNN \text{RNN} RNN必须要做的)。
    • 这个想法可以自然扩展到 2 2 2 维输入,如图像,由四个 RNN \text{RNN} RNN组成,每一个沿着四个方向中的一个计算:上、下、左、右。
    • 如果 RNN \text{RNN} RNN能够学习到承载长期信息,那在 2 2 2维网格每个点 ( i , j ) (i,j) (i,j) 的输出 O i , j \Omicron_{i,j} Oi,j​ 就能计算一个能捕捉到大多局部信息并且依赖于长期输入的表示。
    • 相比卷积网络,应用于图像的 RNN \text{RNN} RNN通常更昂贵,但允许同一特征图的特征之间存在长期横向的相互作用 ( Visin et al., 2015; Kalchbrenner et al., 2015 \text{Visin et al., 2015; Kalchbrenner et al., 2015} Visin et al., 2015; Kalchbrenner et al., 2015)。
    • 实际上,对于这样的 RNN \text{RNN} RNN, 前向传播公式可以写成表示使用卷积的形式,计算自底向上到每一层的输入(在整合横向相互作用的特征图的循环传播之前)。

总结

双向 RNN \text{RNN} RNN作为一种创新的序列建模方法,显著提升了模型在处理复杂序列数据时的性能。通过前向 RNN \text{RNN} RNN捕捉过去的信息,后向 RNN \text{RNN} RNN捕捉未来的信息,并将两者的输出进行融合,双向 RNN \text{RNN} RNN能够生成更为丰富和准确的特征表示。这种特性使得双向 RNN \text{RNN} RNN在诸多领域,如机器翻译、语音识别、情感分析等,都取得了显著的应用效果。同时,双向 RNN \text{RNN} RNN也为后续的序列建模研究提供了新的思路和方法,推动了该领域的持续进步和发展。

标签:Graves,RNN,递归,text,boldsymbol,建模,al,et
From: https://blog.csdn.net/benny_zhou2004/article/details/141143788

相关文章

  • 递归与回溯
    递归1.含义递归:函数(方法)直接或间接调用自身2.调用过程如果递归调用没有终止,将会一直消耗栈空间最终导致栈内存溢出(StackOverflow)所以必需要有一个明确的结束递归的条件也叫作边界条件、递归基 3.基本思想1.拆解把规模大的问题变成规模较小的......
  • vue 组件调用组件自身,递归调用组件自身
    父组件<template><divclass="page-box"><!--<child><templatev-slot:default="scope"><div>slot</div><div>{{scope.data1}}</div>......
  • 进阶 Java冒泡排序递归法 有点难度哦
    简介这里有用到递归的冒泡排序思路,难度对新手很大,不明白递归和冒泡排序的小伙子可以先看看我的其他两个文章。连接在这里:Java冒泡排序https://blog.csdn.net/ouhexie/article/details/140985984?spm=1001.2014.3001.5501Java递归算法https://blog.csdn.net/ouhexie/articl......
  • 【数学建模】介绍论文书写格式
    ......
  • 2024亚太杯数学建模b题基于机器学习回归的洪水预测模型研究
    本届亚太杯中文赛项已经结束,本文分享我的解决思路。摘 要洪水的频率和严重程度与人口增长趋势相近。迅猛的人口增长,扩大耕地,围湖造田,乱砍滥伐等人为破坏不断地改变着地表状态,改变了汇流条件,加剧了洪灾程度。2023年,全球洪水造成了数十亿美元的经济损失。因此构建与研究洪水......
  • Java解决递归造成的堆栈溢出问题
    在Java中,递归造成的堆栈溢出问题通常是因为递归调用的深度过大,导致调用栈空间不足。解决这类问题的一种常见方法是使用非递归的方式重写算法,即使用迭代替代递归。1.方法一:非递归的方式重写算法(迭代替代递归)下面通过一个典型的递归例子——计算斐波那契数列的第n项,来演示如何用迭......
  • 神经网络(RNN)预测走地角球数以及角球玩法计算公式
    文章目录前言一、角球的基本玩法与规则?1.1角球的判罚1.1.1角球的判罚球的整体越过球门线1.1.2最后触球者为守方队员1.2角球执行流程1.2.1犯规行为1.2.2角球执行方式:1.2.3直接得分:1.3角球玩法二、角球计算公式1.示例一【全赢】2.示例二【走水】3.示例三【全输......
  • 最佳阵容问题(数学建模校赛题目)(附带word文档)
    最佳阵容问题(数学建模校赛题目)(附带word文档)......
  • 三维建模神器:Revit2021怎么下载安装?Revit2021版图文安装教程
    Revit是一款专门为建筑信息模型(BIM)构建的,可以帮助建筑设计师设计、建造和维护质量更好、更高效的建筑,也是现在建筑行业必备的软件之一,现在已经更新了2021的版本,我拿到之后进行了测试,发现还不错,今天我们就来看看Revit2021版本的下载安装方法,详细请看下文图文介绍。软件安装包......
  • 数学建模优化算法——遗传算法
    遗传算法原理具体的原理网上还是比较多,我就不赘述了。这篇文章的主要目的是为了讲述一下自己从B站UP主连大数模上面获得一个遗传算法细致思路。主要会分享给大家这个matlab代码以及每个代码的含义。不过为了便于大家理解我的思路,大致补充一些东西:首先遗传算法是以种群进......