博客初衷

现在我们常用递归神经网络如普通RNN,LSTM和GRU来处理时序的数据,所以本人以前一直将递归神经网络理解成诞生伊始就是用来处理时序数据的,然而一翻开wikipedia上RNN的介绍,发现自己的理解还是过于简单了。维基百科对于RNN的定义如下:

A recurrent neural network (RNN) is a class of artificial neural network where connections between units form a directed cycle.

对应的中文定义如下

递归神经网络(RNN)是两种人工神经网络的总称。一种是时间递归神经网络,另一种是结构递归神经网络。时间递归神经网络的神经元间连接构成有向图,而结构递归神经网络利用相似的神经网络结构递归构造更为复杂的深度网络。

看来只要隐层神经元连接构成有向图,就可被称为递归神经网络,而自己一直理解的RNN只是时间递归网络而已,对这一概念的理解是有偏差的。由于本人对历史也比较感兴趣,这激发我去查阅从八九十年代开始RNN发展的历史,看看这一概念在历史上是怎么演变的,惊讶的发现,我们今天理所当然理解的处理时间序列数据的RNN结构(图1),似乎在1995年到2000年间才出现,而早期的递归神经网络于今天火热的RNN似乎并不完全相同。

图1 2000年RNN结构

这使得我对于早期研究者们对RNN的研究以及他们提出递归神经网络的初衷产生了兴趣。

Hopfield network

Hopfield网络是 John Hopfield于1982年提出的一种递归神经网络 link,这篇文章已经被引用了16596次,可见当年有多少火热,这篇文章对我来说比较有意思的一点是Hopfield教授对记忆和物理系统不停变化中的稳定部分之间的联系的描述:

There are classes of physical systems whose spontaneous behavior can be used as a form of general (and error-correcting) content-addressable memory. ……but the systems of use for memory particularly include those that flow toward locally stable points from anywhere within regions around those points.

简单的来说就是一个动态系统虽然不断地变化,但是其变化还是有一定的稳定性,这可以看出系统的一种联想记忆。(简单看一下Hopfield教授的简历,可以发现其是物理的学士和博士,而教授生涯却一直在生物学领域,大概是学科交叉下产生了这样的思想吧),进而其由这种insight提出了一种神经网络结构(图2)。

图2 4神经元Hopfield网络

Hopfield网络的结构和之前的感知器最大的不同在于,其

Perceptrons were modeled chiefly with neural connections in a “forward” direction. The analysis of networks with strong backward coupling.

当然在那样一个年代(三十余年前),网络结构还是比较简单,神经元的状态V也只有0,1两种选择。

Vi=0Vi=1if∑j≠iTijVj<Ui>Ui

\begin{matrix} V_i = 0 \\ V_i = 1 \end{matrix} \quad if \sum_{j \neq i} T_{ij}V_j \begin{matrix} U_i \end{matrix}
其中,V是神经元的状态,T为神经元之间的连接强度,U是神经元的阈值属性。Hopfield进而提出了Hopfield神经网络的能量函数:

E=−12∑∑i≠jTijViVj

E = -\frac{1}{2}\sum\sum_{i \neq j}T_{ij}V_iV_j
虽然提出了网络结构的能量函数,但与今天的RBM作为深度神经网络预训练不同,当时似乎对“训练”神经网络不感兴趣,他的兴趣在于随着最小化能量函数网络状态V的变化,而Hopfield网络的“训练过程”实际就是在能量地形上寻找能量最小值的过程(图3),而对能量赋的初值可被看做提供记忆的线索,能量最小值时的状态则是需要回忆的主题。有意思的是,最小化能量过程状态的变化确实是和人根据线索进行记忆具有很多相似情况,比如如果初值较好(线索很好),网络会快速的掉入能量最小值(局部)(记起了事情);有些线索会造成记忆状态在几个状态之间震荡(我们经常会有的记忆现象);混沌现象,记忆掉入到一个区域之中。

图3 能量地形上的记忆 link

总结,虽然Hopfield网络和三十年后在各处大放异彩的深度学习网络结构相比显得很简单,但是其提出了神经网络和记忆之间的联系,相信对今天效果最好的LSTM(长短时记忆)递归神经网络这样类型的方法有巨大的影响。
能量函数的方法对RBM等方法有巨大的影响,而利用RBM对深度神经网络预训练的方法首次成功训练了具有深层结构的全连接神经网络。
Hopfield教授本是物理专业出身,又作为分子生物学教授,学科的交叉对于研究非常重要,而神经网络本身亦是对人类对神经结构这一动态系统的模仿而产生的计算方法,对于物理生物等基础学科的知识对做其它领域的研究是非常重要的(看来自己也需要多对基础学科领域的研究和发展加深了解)。
附加,对于什么是学习的理解,苏格拉底有一个思想,学习的本质是认识自己,也可以说实现自己的潜能,而人类的大脑拥有101410^{14}的神经突触,我们的生命只有10910^9秒,就人类大脑而言参数远远多于我们可感受的实存,而人生的学习也可看做在有限实存的线索引导下,实现我们自有参数巨大潜能的一个过程。

JORDAN和ELMAN的工作

如前所述,递归神经网络诞生伊始,并非理所当然的被运用于时序数据,而递归神经网络在什么时候才开始如今日般用于建模时序数据呢?这一想法的动机是什么呢?根据本人之考证,这始于MICHAEL I. JORDAN于1986年对于有序行为“Serial Order”的研究link。
人类即使最为粗略的计划也都是由一系列时间上缜密有序的行为所组成的,而且这些行为比如语言,很多都是从经验中学习所得的。正是观察到人类智能行为的这些基本点(特定的计划对应有序的动作,可从大量经验中学习),JORDAN提出了使用递归神经网络建模顺序动作。
假设xnx_n为nn时间的行为,sns_n为nn时间的状态,pp为计划向量,则根据自动机理论,则有序行为可用输出函数ff和状态函数gg建模,xn=f(sn,p)x_n = f(s_n, p),sn+1=g(sn,p)s_{n+1} = g(s_n, p)(与现在的普通递归神经网络已经非常相似)。JORDAN采用这一建模方式避免了计划和行为直接接触,两者是通过暂态状态ss互相影响,这样计划pp可作为神经网络的输入来进行学习,而非一组必须严格遵行的僵硬动作。

图4:JORDAN NETWORK

基于自动机的有序行为模型,JORDAN提出了如图4所示的递归神经网络模型,而学习过程则采用了当时还叫做“error correction”(即BP反向传播)的方法来进行学习。可见今日流行的递归神经网络在1986年终见雏形。

受到JORDAN工作的启发,ELMAN于1990年提出了一种更加简单的递归神经网络,并将其用于自然语言处理之中,其文章有一个霸气的名字“Finding Structure in Time”link,这篇文章据说在认知学和语言学领域是一件开天辟地的大事,因为其将语言的产生完全看做一种从词句序列中学习的过程,而完全不考虑语言中有所谓的先验知识(音素),其神经网络如下图所示:

图5 ELMAN NET

与Jordan的工作不同,Elman简化了神经网络的结构,Jordan神经网络的中状态部分被看做了记忆单元,且不与输出相连接,ELMAN用这样一种网络结构发现了一些有意思的语言想象。

其中很有意思的一点是ELMAN用神经网络的输出误差来分析何为词,人是怎么区分词这一单元的,就比如didn’t,这里面有两个词,人类是怎么知道did和not之间的边间是在什么位置的,Elman将5000个词作为序列输入,并在分析这一神经网络的误差时发现神经网络倾向于在预测每个词的第一个单词时有较高误差,之后预测误差越来越低,直到预测一个新词首个单词的误差时突然升高(如图6所示)。此外Elman还用这一神经网络得到了词语的分类结果,到今天为止,递归神经网络仍然在自然语言处理领域取得的成果最为丰硕,可以说这一切很多都是Elman的工作为基础的。

图6:词语预测的误差分布

一些总结,今天流行的递归神经网络的雏形产生于Jordan和Elman等研究者对人类行为,尤其是语言这一时间上有序的行为的洞察,其的提出本就是对有序行为的模仿。
现在某一些领域流行的观点普遍将神经网络看做一种黑箱计算模型,把其看做是一种对真实输入输出关系的拟合,而非一种体现事物本真的模型。而早年Elman和Jordan等研究者似乎并没有这种意识,他们似乎认为神经网络这一模型本身就能很好建模语言等有序行为,且很能体现行为中学习这一重要要素。
现在对神经网络的批判集中在其难以提供知识,然而早年的研究本身就是用神经网络来发现像语言这样复杂的系统中人类难以通过传统手段发现的知识的,而如Elman所言,从神经网络中发现知识与传统方法可能不尽相同,仍需探索。

One would like to know …….? It is a problem, of course, that the networks studied here are high-dimensional systems, and consequently difficult to study using traditional techniques.

关于早期的递归神经网络,暂时写到这里,之后在陆续写其它相关RNN的工作。

早期递归神经网络初探相关推荐

  1. 循环神经网络 递归神经网络_如何用递归神经网络预测空气污染

    循环神经网络 递归神经网络 After the citizen science project of Curieuze Neuzen, I wanted to learn more about air ...

  2. 具有缺失值的多元时间序列的递归神经网络

    https://www.toutiao.com/a6673418191592489479/ 具有缺失值的多元时间序列的递归神经网络 题目: 具有缺失值的多元时间序列的递归神经网络 作者: Ben D. ...

  3. 循环神经网络 递归神经网络_了解递归神经网络中的注意力

    循环神经网络 递归神经网络 I recently started a new newsletter focus on AI education. TheSequence is a no-BS( mea ...

  4. 递归神经网络之父讲述现代人工智能简史

    现代人工智能的历史,主要由人工神经网络(NN)和深度学习主导.本文来自递归神经网络之父Jürgen Schmidhuber的AI播客.文章从2022年的视角出发,提供了一个重要的时间线,将人工神经网络 ...

  5. 想了解递归神经网络?这里有一份入门教程

    导语:递归网络是一类人工神经网络,用于识别诸如文本.基因组.手写字迹.语音等序列数据的模式,或用于识别传感器.股票市场.政府机构产生的数值型时间序列数据. 递归神经网络入门教程 引言 递归神经网络是一 ...

  6. 卷积神经网络基础:(8)递归神经网络RNN

    1.RNN网络由来 RNN:Recurrent Neural Network.递归神经网络只是在传统神经网络上进行一个改进而已. 正常流程是:输入---->隐层---->输出 (数据来了经 ...

  7. 快排递归非递归python_Python递归神经网络终极指南

    快排递归非递归python Recurrent neural networks are deep learning models that are typically used to solve ti ...

  8. DeepMind提图像生成的递归神经网络DRAW,158行Python代码复现

    作者 | Samuel Noriega 译者 | Freesia 编辑 | 夕颜 出品 | AI科技大本营(ID: rgznai100) [导读]最近,谷歌 DeepMInd 发表论文( DRAW: ...

  9. 158行Python代码复现:DeepMind提图像生成的递归神经网络DRAW

    授权自AI科技大本营(ID:rgznai100) 本文约5200字,建议阅读10+分钟. 本文作者基于代码实现系统的思路,详细阐述了 DRAW 的概念.架构和优势等. [ 导读 ]最近,谷歌 Deep ...

最新文章

  1. 一文读懂深度学习框架下的目标检测(附数据集)
  2. 『原创』+『参考』基于PPC的图像对比程序——使用直方图度量
  3. 采购的业务处理流程之 现购
  4. html td显示隐藏,显示/隐藏Html TR/TD
  5. 使用mysql制作学生成绩单_【实例讲解】快速制作学生成绩单
  6. 一文详解计算机视觉五大技术:图像分类、对象检测、目标跟踪、语义分割和实例分割
  7. 推荐几个好用的pdf翻译工具
  8. 飞饭网面试题 2014/9/2
  9. 夏天来了,来吃鹅厂新瓜,小马哥已吃
  10. 互联网电影院新战略5G+民族电影
  11. html里如何将数字转换为条形码,excel中如何把数字变成条形码?
  12. Packet Data Convergence Protocol (PDCP)阅读笔记
  13. u盘启动 联想一体机_联想一体机如何进入bios设置u盘启动_联想一体机设置U盘启动步骤...
  14. 零伽壹链改案例:区块链赋能供应链应用 新电商逆袭成长
  15. wps怎么重命名文件_wps为什么现在不能把文件重命名,这是为什 – 手机爱问
  16. 泰克sigmastek蓄电池放电技术
  17. 度量衡计算工具_中国古代度量衡领先世界的计量工具
  18. 汽车转向角度和转向半径的关系
  19. 最近工作生活总结——环环相扣
  20. Python 换行符转换

热门文章

  1. Commercial terms
  2. Android之PMS流程分析
  3. Android Studio插件市场无法加载出来
  4. oracle对服务器性能要求,oracle服务器配置要求
  5. ​LeetCode解法汇总2611. 老鼠和奶酪
  6. 苹果电脑自动更新怎么关闭 苹果系统关闭自动更新
  7. 《专业英语》期末复习资料整理 - 4.30号更新
  8. hp台式计算机机箱是多少升,HP Pavilion台式电脑添加内存的操作步骤
  9. ​什么是50ETF期权?
  10. 阿甘正传中的经典配乐