30_深度学习框架下的神经网络__昨日重现:循环神经网络
文章目录
今天是除夕,明天就是春节啦,在这里,给你拜个早年,祝你狗年大吉,新春快乐,在新的一年里,福旺运旺!
今天我们继续讨论深度学习框架下的神经网络,聊一聊循环神经网络。
2017 年,一本名叫《阳光失了玻璃窗》的诗集出版了。这本来是再普通不过的事情,可诗集的作者是赫赫有名的网红机器人微软小冰,或者更确切地说,小冰背后的算法,就让事情变得没那么简单了。
我在网上拜读了一些小冰的诗,实话实说,它们让我想起了几年前那些将简单的旋律和节奏随机排列组合而批量生产出来,至今仍在广场舞音乐中大行其道的网络歌曲。但小冰的诗显然技高一筹,循环神经网络和递归神经网络这些高大上的技术让它的排列组合更加难以捉摸。
在深度学习中,RNN这个缩写有两层含义,它既可以表示循环神经网络(Recurrent Neural Network),也可以表示递归神经网络(Recursive Neural Network)。巧的是,这两个 RNN 之间的关系还很密切:循环神经网络可以看成是递归神经网络的特例,递归神经网络则可以视为循环神经网络的推广。
循环神经网络和我们前面介绍的所有神经网络都不一样,它的独特之处在于引入了“时间”的维度,因而适用于处理时间序列类型的数据。回忆一下上次分享的卷积神经网络,它具有空间上的参数共享的特性,也就是同样的核函数可以应用在图像的不同区域之上。如果把参数共享调整到时间的维度上,让神经网络使用相同的权重系数来处理具有先后顺序的数据,得到的就是循环神经网络。
从结构上看,使用神经网络处理可变长度的输入时,在时间上共享参数是非常有必要的。定义在空间上的数据不会无穷无尽地延伸,即使大如《清明上河图》也有确定的边界存在。在很多图像识别的任务中,输入图像的像素数目甚至是有特定要求的。但对于一个以时间为自变量的变长数据来说,很难说清楚数据的终点在哪里,抑或这个终点根本就不存在。
这种情况之下,如果对每一个时间点上的数据都计算一次神经网络的权重系数,无疑会带来极大的计算负荷。循环神经网络就是将长度不定的输入分割为等长度的小块,再使用相同的权重系数进行处理,从而实现对变长输入的计算与处理。
从功能上看,时间维度上的参数共享可以充分利用数据之间的时域关联性。在生活中你一定有这样的经验:前后文的语境能够对信息进行有效的补充。在大大小小的英语考试中都少不了一类叫做“完形填空”的题目,这类题目的要求就是根据上下文的语义选择用于填空的合适的词语。比方说妈妈在厨房里突然喊我:“菜炒好了,赶紧来……”,即使后面的话没有听清楚,也能猜到十有八九是让我赶紧吃饭,而不是洗衣服或者其他什么事情。这利用的就是数据的时域关联。
循环神经网络对时域的关联性的利用体现在时刻 tt
文章作者
上次更新 10100-01-10