Neural Network

Table of Contents

1 人工神经网络(ANN)简介

人工神经网络(Artificial Neural Network, ANN),简称神经网络,是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型。

1.1 ANN发展历程

人工神经网络发展历程如图 1 所示。

ANN_history.png

Figure 1: 人工神经网络发展历程(共三次高潮,摘自中科院向世明教授ppt)

1.2 神经网络分类

人工神经网络模型主要考虑网络连接的拓扑结构、神经元的特征、学习规则等。目前,已有近40种神经网络模型,其中有反传网络、感知器、自组织映射、Hopfield网络、玻尔兹曼机等等。

根据网络连接的拓扑结构,神经网络模型可以分为:
(1) 前向神经网络(又称前馈神经网络) 。网络中各个神经元接受前一级的输入,并输出到下一级,网络中没有反馈,可以用一个有向无环路图表示。这种网络实现信号从输入空间到输出空间的变换,它的信息处理能力来自于简单非线性函数的多次复合。网络结构简单,易于实现。反向传播神经网络是一种典型的前向网络。
(2) 反馈神经网络 。网络内神经元间有反馈,可以用一个无向的完备图表示。这种神经网络的信息处理是状态的变换,可以用动力学系统理论处理。系统的稳定性与联想记忆功能有密切关系。Hopfield网络、玻尔兹曼机均属于这种类型。

摘自:计算机科学技术百科全书,第2版,张效祥

1.3 神经元和感知器

神经元(neuron),又称神经细胞,是神经系统的结构与功能单位之一,如图 2 所示。

ANN_neuron.png

Figure 2: 生物神经元(摘自Wikipedia)

神经元有两个状态:兴奋和抑制。神经元的状态取决于从树突和细胞体接受到的信号,当信号量总和超过了某个阈值时,细胞体就会兴奋,产生电脉冲。电脉冲沿着“轴突”并通过“突触”传递到其它神经元。

感知器(Perceptron)是由美国科学家Frank Rosenblatt于1957年提出的, 感知器模拟了生物神经元的行为。 如图 3 所示。
感知器可用下面式子表示:
\[f(\boldsymbol{x}) = sign(\boldsymbol{w} \cdot \boldsymbol{x} + b) = \begin{cases} +1 & \text{if} \; \boldsymbol{w} \cdot \boldsymbol{x} + b > 0 \\ -1 & \text{otherwise} \end{cases}\]

ANN_neuron_perceptron.jpg

Figure 3: 神经元(生物模型)及其对应的感知器(数学模型)

1.4 激活函数

感知器中使用阶跃函数作为激活函数(Activation Function),但它不是连续的,从而不可导,使用最优化方法时不方便。

神经网络中最常使用的激活函数是连续可导的sigmoid型函数,常用的有logistic函数 \(\sigma(x)\) 和tanh函数,如图 4 所示。
\[\begin{gathered} \sigma(x) = \frac{1}{1 + e^{-x}} \\ \tanh(x) = \frac{\sinh(x)}{\cosh(x)} = \frac{e^x - e^{-x}}{e^x + e^{-x}} \end{gathered}\]

ANN_sigma_tanh.png

Figure 4: logistic函数和tanh函数

说明: \(\tanh(x) = 2 \sigma(2x) - 1\) ,所以 \(\tanh(x)\) 可以看作是 \(\sigma(x)\) “放大和平移”而来。

2 前馈神经网络

把一个神经元的输出作为另一个神经元的输入,这样,用多个神经元为节点可以构建一个网络。前馈神经网络(Feedforward Neural Network)是最早发明的简单人工神经网络。

前馈神经网络基本结构如图 5 所示。

Sorry, your browser does not support SVG.

Figure 5: 前馈神经网络示意图

其特点为:每一层神经元可以接收前一层神经元的信号,并产生信号输出到下一层。第一层称为 输入层 ,最后一层称为 输出层 ,其它中间层都称为 隐藏层 。网络中没有反馈,信号从输入层向输出层单向传播。

2.1 多层感知器

多层感知器(Multilayer Perceptron, MLP)是最简单的前馈神经网络,它往往使用logistic函数作为激活函数。有时,当我们说到前馈神经网络时,指的就是多层感知器。

2.1.1 解决“异或问题”

6 是多层感知器(带有一个隐藏层,隐藏层有两个神经元)解决“异或问题”的实例。

ANN_MLP_XOR.png

Figure 6: 带有一个隐藏层的多层感知器

在上面多层感知器中,如果假设“Neuron 1”的参数为: \(w_{1} = w_{2} = +1, b = - \frac{3}{2}\) ,“Neuron 2”的参数为: \(w_{1} = w_{2} = +1, b = - \frac{1}{2}\) ,“Neuron 3”的参数为: \(w_{1} = -2, w_{2} = +1, b = - \frac{1}{2}\) 。则可知多层感知器的信号流为图 7 所示,可以验证它能解决XOR问题。

ANN_MLP_XOR_signal_flow.png

Figure 7: 解决XOR问题的多层感知器

在这个前馈神经网络中,神经元1,神经元2,以及整个神经网络的决策边界如图 8 所示。

ANN_MLP_decision_boundary.png

Figure 8: (a)“Neuron 1”的决策边界,(b)“Neuron 2”的决策边界,(c)整个神经网络的决策边界

注:这个例子摘自"Neural Networks and Learning Machines, 3rd, 4.5 XOR Problem"

2.1.2 隐层的数量和分类能力

Kolmogorov理论指出:包含两个隐层的MLP可以解决任何复杂的分类问题。

不同隐层数的感知器分类能力如图 9 所示。

ANN_MLP.png

Figure 9: 不同隐层数的感知器分类能力(摘自http://www.intsci.ac.cn/shizz/course/kd08.ppt

参考:
http://neuron.eng.wayne.edu/tarek/MITbook/chap2/2_3.html

2.1.3 反向传播算法和BP神经网络

多层感知器的模型很好,但却没有合适的算法来计算模型中各个神经元的参数,直到“误差反向传播算法(Error Back Propagation)”的提出,使得神经元的参数的计算变得简单可行。误差反向传播算法简称反向传播算法(即BP算法)。反向传播算法于1986年由David E. Rumelhart和James L. McClelland发表于书籍Parallel Distributed Processing中。使用反向传播算法的多层感知器又称为 BP神经网络

参考:Parallel Distributed Processing (1986, by David E. Rumelhart, James L. McClelland), Chapter 8 Learning Internal Representations by Error Propagation: http://psych.stanford.edu/~jlm/papers/PDP/Volume 1/Chap8_PDP86.pdf

3 卷积神经网络(CNN)

卷积神经网络(Convolutional neural network, CNN)是一种前馈神经网络。CNN是受生物学上接受域(Receptive Field)的启发而提出的。在视觉神经系统中,一个神经元的接受域是指视网膜上的特定区域,只有这个区域内的刺激才能够激活该神经元。 CNN在图像处理领域应用广泛。

CNN有三个结构上的特性:(1)局部连接、(2)权重共享、(3)空间或时间上的次采样(又称池化操作)。

局部连接:CNN用卷积来代替“全连接”(普通的前向神经网络是全连接的),这样提高了训练的效率;
权重共享:很多同层神经元的权重是相同的;
池化操作:池化可分为“平均池化”和“最大池化”,利用池化操作可以将数据量减小,同时在一定程度上保留原有的图像特征。

4 循环神经网络(RNN)

循环神经网络(Recurrent Neural Network,RNN),通过使用带自反馈的神经元,能够处理任意长度的序列。循环神经网络比前馈神经网络更加符合生物神经网络的结构。和CNN主要应用在图像处理领域不同, 循环神经网络已经被广泛应用在语音识别、语言模型以及自然语言生成等任务上。

5 源于统计力学神经网络(BM, RBM, DBN)

统计力学主要研究从微观元素(如原子和电子的运动)推导出宏观物体的热力学性质。

玻尔兹曼常数(Boltzmann constant)是统计力学中关于温度及能量的一个重要常数。

玻尔兹曼机(Boltzmann Machine, BM):一部分神经元和外部相连,另一部分不与外部相连。神经元以概率方式取两个可能状态。
受限玻尔兹曼机(Restricted Boltzmann Machine, RBM):和玻尔兹曼机相比,它有个特点: RBM的隐藏神经元之间没有连接。
深度信念网络(Deep Belief Network, DBN):DBN的组成元件是受限玻尔兹曼机。


Author: cig01

Created: <2015-12-12 Sat 00:00>

Last updated: <2017-11-22 Wed 21:55>

Creator: Emacs 25.3.1 (Org mode 9.1.2)