序列建模:循环和递归网络
1. 循环神经网络概述
循环神经网络(RNN)是用于处理序列数据的神经网络家族。就像卷积网络专门处理图像等网格值数据一样,RNN 专门处理值序列 (x(1), \ldots, x(\tau))。与卷积网络可以轻松扩展到处理大尺寸图像类似,RNN 能处理比非序列专用网络长得多的序列,且大多数 RNN 还能处理可变长度的序列。
从多层网络过渡到 RNN,需要利用机器学习和统计模型中的一个早期思想:在模型的不同部分共享参数。参数共享使模型能够扩展并应用于不同形式(这里指不同长度)的示例,并在它们之间进行泛化。例如,在从句子中提取特定信息时,RNN 可以共享相同的权重,而传统的前馈网络则需要为每个输入特征设置单独的参数,在句子的每个位置分别学习语言规则。
此外,还有一种在一维时间序列上使用卷积的相关思想,这是时延神经网络的基础。卷积操作允许网络在时间上共享参数,但这种共享是浅层的,输出序列的每个成员是输入序列中少数相邻成员的函数。而 RNN 以不同的方式共享参数,其输出的每个成员是前一个输出成员的函数,通过深度计算图实现参数共享。
在实际应用中,RNN 通常处理小批量的序列数据,时间步索引不一定指现实世界中的时间流逝,有时仅指序列中的位置。RNN 还可以应用于二维空间数据,甚至在处理涉及时间的数据时,网络可以有反向时间连接,只要在提供给网络之前观察到整个序列即可。
2. 展开计算图
计算图是一种形式化一组计算结构的方法,将递归或循环计算展开为具有重复结构的计算图,可实现参数在深度网络结构中的共享。
2.1 动态系统示例
考虑一个经典的动态系统形式:
超级会员免费看
订阅专栏 解锁全文
649

被折叠的 条评论
为什么被折叠?



