感知机(神经网络和支持向量机的理论基础)
概念:简单来说,感知机就是一个旨在建立一个线性超平面对线性可分的数据集进行分类的线性模型
分类:
- 单层感知机
- 多层感知机( Multi-Layer Perceptron,MLP)/神经网络模型
1.单层感知机
单层感知机包含两层神经元:输入神经元和输出神经元,可以非常容易地实现逻辑与、逻辑或、逻辑非等线性可分情形。
基本结构:如图1.4
所示:一个n维输入的单层感知机模型。
图1.4 感知机模型
-
x1~xn:n维输入向量的各个分量
-
w1~wn:各个输入分量连接到感知机的权重(权值)
权重W初始值一般是随机设置,往往达不到较好的拟合结果,那么如何更改权重数值使标量输出y更逼近实际值呢?使用梯度下降法(最速下降法)进行学习
-
Θ \Theta Θ:阈值(偏置)
-
f:激活函数(激励函数/传递函数)(通常是越阶函数或Sigmoid函数)
-
y:标量输出
完整的单层感知机训练的过程:
-
前向计算:图1.1从左到右为感知机模型的计算执行方向,模型接受了x1,x2,x3三个输入,将输入与权值参数w进行加权求和并经过sigmoid函数进行激活,将激活结果y作为输出。
-
执行完前向计算得到基本输出之后,模型需要根据当前的输出和实际的输出按照损失函数计算当前损失,计算损失函数关于权值和偏置的梯度,然后根据梯度下降法更新权值和偏置,经过不断地迭代调整权值和偏置使损失最小,这就是完整的单层感知机训练的过程。
注:单层感知机没有反向转播这个概念,而是直接建立损失函数和偏置参数进行梯度优化。
图1.2
所示是输入为图像的感知机计算过程
2.多层感知机
单层感知机问题
单层感知机不能处理稍微复杂的异或问题,即本质缺陷是不能处理线性不可分问题。如图1.7所示。
解释:单层感知机的学习能力非常有限,对与像异或问题这样的线性不可分情形,单层感知机就搞不定(线性不可分即输入训练数据,不存在一个线性超平面能够将其进行线性分类)。其学习过程会出现一定程度的震荡,权值参数w难以稳定下来,最终不能求得合适的解。
图1.7:其中,(1,1)和(-1,-1)是一类,(1,-1)和(-1,1)是一类。
由于单层感知机本质上就是该平面的一条直线,因此不可能解决这个分类问题。
所以需要多层感知机。
解决:两种方法
- 支持向量机(旨在通过核函数映射来处理非线性的情况)
- 神经网络模型(多层感知机 Multi-Layer Perceptron,MLP)
多层感知机
- 多层感知机(Multi-Layer Perceptron,MLP)是由单层感知机推广而来的。
- 多层感知机与单层感知机的主要区别:MLP多了若干隐藏层,这使得神经网络能够处理非线性问题。
- 多层感知机最主要特点:有多个神经元层,可以实现复杂的非线性变换(可以解决异或问题)。
- 一般将MLP的第一层称为输入层,中间层成为隐藏层,最后一层成为输出层。
一个单隐藏层的神经网络的结构如图1.8
所示。
图1.8
图1.9
可以看出,图1.8相较于两层神经元的单层感知机,该多层感知机中间多了一个隐藏层。
输入层的神经元:仅接收外界信息并将其传递给隐藏层
隐藏层与输出层的神经元:对信号进行加工
MLP并没有规定隐藏层的数量,可以根据实际处理需求选择合适的隐藏层数目,对于隐藏层和输出层中每层神经元的个数,MLP也没有限制。
多层感知机可以解决如图1.10所示的异或问题,因为MLP模型不再是一个平面中的直线。
图1.10
何为隐藏层?
在神经网络的训练过程中只观察到输入层和输出层的数据,对于中间隐藏层的数据变化是看不见的。
因而在深度神经网络(Deep NeuralNetworks,DNN)中,将中间看不见又难以对其效果进行合理解释的隐藏层称为“黑箱子”
含隐藏层的神经网络如何训练?
多层感知机关键问题:如何训练各层之间的连接权值。
训练方式大致分为两类:
一类是将其他连接权值进行固定,只训练某两层之间的连接权值
另一类即反向传播(Back Propagation,BP)算法。
BP算法通常使用Sigmoid和Tanh等连续函数模拟神经元对激励的相应,使用反向传播对神经网络的连接权值进行训练
反向传播的过程就是更新神经元的误差值,然后再根据所求出的误差值正向更新权值和偏置。
与感知机一样,神经网络的训练包含前向计算和反向传播(Back Propagation,BP)两个主要过程。
前向计算:权值偏置与输入的线性加权和激活操作,在隐藏层上有个嵌套的过程。
反向转播算法:(也称为误差逆传播算法),作为神经网络的训练算法,反向传播算法可谓是目前最成功的神经网络学习算法。
-
通常所说的BP神经网络是指应用反向传播算法进行训练的神经网络模型。
-
反向传播是基于梯度下降策略的,主要是以目标参数的负梯度方向对参数进行更新,所以基于损失函数对前向传播过程中各个变量进行梯度计算就非常必要。
-
总结起来就是前向计算得到输出,反向传播调整参数,最后以得到损失最小时的参数为最优学习参数。
-
反向传播的基本过程?
以一个两层(单隐藏层)网络为例,即
图1.4
中的网络结构。
图过程
以上就是BP神经网络模型和算法的基本工作流程,如图过程
所示。
总结起来就是前向计算得到输出,反向传播调整参数,最后以得到损失最小时的参数为最优学习参数。
经过近十几年的发展,神经网络的结构已经从普通的全连接网络发展到卷积神经网络、循环神经网络、自编码器、生成对抗网络和图神经网络等各种各样的结构,但BP算法一直都是神经网络的一个经典和高效的寻优工具。
参考文献:
1.《深度学习笔记》 鲁伟 编著
出版社:北京大学出版社,出版时间:2020年7月1日
ISBN:978-7-301-16122-7
2.《深度学习之图像识别 核心算法与实战案例 (全彩版)》言有三 著出版社:清华大学出版社 ,出版时间:2023年7月第一版(第一次印刷)
ISBN:978-7-302-63527-7