人工神经网络的结构

有不少专业术语乍一听很唬人,“人工神经网络”就属于这一类,至少我第一次听到这个词就被唬住了。吴军博士——《数学之美》

1

前馈神经网络

最简单的人工神经网络

第一期中提到,所谓神经元的工作方式,就是通过一定范围的输入值,根据自身设定的运算逻辑,最终给出一个输出值。那么人工神经网络的结构,实际上就取决于1)每个神经元的输入值从何获取;2)每个神经元运算后将输出值反馈到哪里。所谓的前馈神经网络(feedforward neural networks),就是指把上一层神经元的输出值作为下层神经元的输入值、各层间没有反馈的人工神经网络。

举个例子

春香、夏香、秋香、东香是华府的四大美人,可是一直没有解决个人问题。华府甘老爷为了替她们找到合适的夫婿,决定通过算法决定明天是不是要举办一次招亲大会。在甘老爷的算法中,需要考虑四个因素:

a. 春香是否同意举办(是=1,否=0);

b. 夏香是否同意举办(是=1,否=0);

c. 秋香是否同意举办(是=1,否=0);

d. 冬香是否同意举办(是=1,否=0);

其中秋香的决定影响比较高,权重为2,其他人的权重均为1,如果最终的得分≥3,则明天举办招亲大会。没想到的是,四大美人也是通过算法决定自己是否同意举办这次招亲大会,在四大美人的算法中,都考虑了三个因素:

a. 是否是个黄道吉日(是=1,否=0);

b. 江南四大才子是否会来(是=1,否=0);

c. 四大美人是否身体抱恙(是=0,否=1)。

只不过,这三个因素对四大美人所产生的决定影响不一样。春香、夏香看天吃饭,秋香钟爱唐伯虎,冬香更希望姐妹们有个好的身体状态去迎接未来的夫婿。因此对她们而言,虽然考虑的因素内容一样,但是每个因素的权重不同,同样的因素输入对她们个人的决策也会产生不同的结果。

那么在这个例子中,就组成了一个非常简单的甘老爷决策款前馈神经网络:

上图甘老爷的决策网络中:

最左边的一层(一列)被称作输入层,其中的神经元被称为输入神经元(input neurons)。

最右边的一层是输出层(output layer),包含的神经元被称为输出神经元(output neurons)。在这个例子中,输出层只有一个神经元。

中间的一层(春夏秋冬四大美人)被称作隐藏层(hidden layer),因为它既不是输入层,也不是输出层,有时候也被称为中间层。

上面的网络只有一个隐藏层,然而在大多数人工神经网络中往往有多个隐藏层,比如下面图示的有两个隐藏层的人工神经网络示意图:

顺便提一嘴,上面举例的这些前馈神经网络中,每一层神经元的每一个输入值,都是前一层的输出值,换言之每个中间层的神经元,既与其前一层的每个神经元相连,也与其后一层的每个神经元相连,因此也别称为全连接神经网络(fully-connected neural network)。

2

递归神经网络

最像人脑的人工神经网络

上述前馈神经网络有一个很大的局限,就是无法对时间序列上的变化进行建模。然而,样本出现的时间顺序对于自然语言处理、语音识别、手写体识别等应用非常重要。对了适应这种需求,就出现了另一种人工神经网络结构——递归神经网络(也被称为循环神经网络)。根据维基百科的定义,递归神经网络(简称RNN)是两种人工神经网络的总称,一种是时间递归神经网络(recurrent neural network),另一种是结构递归神经网络(recursive neural network),一般我们所称的RNN,就是指时间递归神经网络。在时间递归神经网络中,特定神经元的输出可以在下一个时间戳直接作用到自身作为自身的输入值,即该某神经元在t时刻的输入,除了前一层神经元在该t时刻对该神经元的输出外,还包括其自身在(t-1)时刻的输出。

为了理解方便,如果将时间递归神经网络在时间上进行展开,得到一个更为清晰的局部示意图:

可以看到,时间递归神经网络与前馈神经网络区别的关键在于,神经元会在一段有限时间内,始终保持激活状态进行运算。这种激活状态可以激励其他的神经元,被激励的神经元在随后一段有限时间内也会保持激活状态。如此就会导致更多的神经元被激活,一段时间后我们将得到一个级联的神经元激活系统。目前时间递归神经网络的学习算法还在发展阶段,相比于前馈神经网络而言还不是那么成熟,但它的吸引力是前馈神经网络不能比拟的,因为它更像我们大脑的工作方式,似乎能够理解前因后果与上下文,而时间递归神经网络确实也是解决人机对话等特殊场景问题的关键。

结语

在设计人工神经网络的过程中,如何设计隐藏层,实际是非常关键的环节,可以说是一门艺术。在实际的项目中,各类神经网络结构实际上是共同组合使用的,因为人工神经网络需要设计多个隐藏层,每个隐藏层的实际作用并不同,所采用的网络结构也大相径庭。

我们通常会根据某一层所采用的网络结构,来称呼这一层的神经元,比如全连接层、卷积层、RNN层等,而不同名称的隐藏层,实质区别就在于这一层神经元所采用的运算算法不同,对于这些常见的运算算法,在本系列后续文章中也会进行简化解读。

「 本文仅代表作者个人观点 」

- END -

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180521G0805N00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券