第五章 深度学习

一、基本理论

2. 深度神经网络结构

2.1 感知机

2.1.1 生物神经元

感知机(Perceptron),又称人工神经元(Artificial neuron),它是生物神经元在计算机中的模拟。下图是一个生物神经元示意图:

2.1.2 生物神经网络

更多的生物神经元相互连接,形成复杂的神经网络。人类神经元数量在 1011 数量级。

2.1.3 什么是感知机

感知机(Perceptron),又称神经元(Neuron,对生物神经元进行了模仿)是神经网络(深度学习)的起源算法,1958 年由康奈尔大学心理学教授弗兰克·罗森布拉特(Frank Rosenblatt)提出,它可以接收多个输入信号,产生一个输出信号。

2.1.4 感知机的功能

作为分类器/回归器,解决线性分类(逻辑和、逻辑或)、回归问题

神经元作为回归器 / 分类器 逻辑和(线性分类) 逻辑或(线性分类)

组成神经网络

2.1.5 如何实现感知机

实现逻辑和

实现逻辑或

2.1.6 感知机的局限

感知机的局限在于无法处理“异或”问题(非线性问题)

2.1.7 多层感知机

1975 年,感知机的“异或”难题才被理论界彻底解决,即通过多个感知机组合来解决该问题,这种模型也叫多层感知机(Multi-Layer Perceptron,MLP)。如下图所示,神经元节点阈值均设置为 0.5

多层感知机解决异或门实现

2.2 神经网络

2.2.1 什么是神经网络

感知机由于结构简单,完成的功能十分有限。可以将若干个感知机连在一起,形成一个级联网络结构,这个结构称为“多层前馈神经网络”(Multi-layer Feedforward Neural Networks)。所谓“前馈”是指将前一层的输出作为后一层的输入的逻辑结构。每一层神经元仅与下一层的神经元全连接。但在同一层之内,神经元彼此不连接,而且跨层之间的神经元,彼此也不相连。

2.2.2 神经网络的功能

1989 年,奥地利学者库尔特·霍尼克(Kurt Hornik)等人发表论文证明,对于任意复杂度的连续波莱尔可测函数(Borel Measurable Function)f,仅仅需要一个隐含层,只要这个隐含层包括足够多的神经元,前馈神经网络使用挤压函数(Squashing Function)作为激活函数,就可以以任意精度来近似模拟 f。如果想增加 f 的近似精度,单纯依靠增加神经元的数目即可实现。

这个定理也被称为通用近似定理(Universal Approximation Theorem),该定理表明,前馈神经网在理论上可近似解决任何问题。

2.2.3 通用近似定理几何解释

现有目标函数

f

(

x

)

=

x

3

+

x

2

x

1

f(x) = x^3 + x^2 - x - 1

f(x)=x3+x2−x−1,可以使用 6 个神经元进行模拟:

2.2.4 神经网络为什么要足够深

其实,神经网络的结构还有另外一个“进化”方向,那就是朝着“纵深”方向发展,也就是说,减少单层的神经元数量,而增加神经网络的层数,也就是“深”而“瘦”的网络模型。

微软研究院的科研人员就以上两类网络性能展开了实验,实验结果表明:增加网络的层数会显著提升神经网络系统的学习性能。

2.2.5 多层神经网络计算公式

神经网络涉及很多层权重,每一层又由多个权重组成,符号表示规则如下所示: 以下是一个多层神经网络及其计算公式:

2.3 激活函数

2.3.1 什么是激活函数

在神经网络中,将输入信号的总和转换为输出信号的函数被称为激活函数(activation function)。

2.3.2 为什么使用激活函数

激活函数将多层感知机输出转换为非线性,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。

如果一个多层网络,使用连续函数作为激活函数的多层网络,称之为“神经网络”,否则称为“多层感知机”。所以,激活函数是区别多层感知机和神经网络的依据。

2.3.3 常见激活函数

阶跃函数

阶跃函数(Step Function)是一种特殊的连续时间函数,是一个从 0 跳变到 1 的过程,函数形式与图像:

sigmoid 函数

sigmoid 函数也叫 Logistic 函数,用于隐层神经元输出,取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可以用来做二分类,表达式:

σ

(

x

)

=

1

/

(

1

+

e

x

)

σ(x) = 1 / (1 + e^{-x})

σ(x)=1/(1+e−x) 优点:平滑、易于求导 缺点:激活函数计算量大,反向传播求误差梯度时,求导涉及除法;反向传播时,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练

tanh 双曲正切函数

优点:平滑、易于求导;输出均值为 0,收敛速度要比 sigmoid 快,从而可以减少迭代次数缺点:梯度消失用途:常用于 NLP 中

ReLU(Rectified Linear Units,修正线性单元)

优点:

更加有效率的梯度下降以及反向传播,避免了梯度爆炸和梯度消失问题计算过程简单 缺点:小于等于 0 的部分梯度为 0 用途:常用于图像

Softmax

Softmax 函数定义如下,其中

V

i

V_i

Vi​ 是分类器前级输出单元的输出。i 表示类别索引,总的类别个数为 C。

S

i

S_i

Si​ 表示的是当前元素的指数与所有元素指数和的比值。通过Softmax 函数就可以将多分类的输出数值转化为相对概率,而这些值的累和为 1,常用于神经网络输出层。表达式:

2.3.4 案例:实现常见激活函数

2.4 小结

感知机

接收多个输入信号,产生一个输出信号,无法解决异或问题

多层感知机

将多个感知机组合

多层前馈网络

若干个感知机组合成若干层的网络,上一层输出作为下一层输入

激活函数

将计算结果转换为输出的值,包括阶跃函数、sigmoid、tanh、ReLU

参考阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。