前言
为本文提供了神经网络的全面介绍,从基础理论到实际应用,再到模型评估和优化
1 感知机的原理
感知机是最早的人工神经网络模型之一,它是一个简单的线性二分类模型。感知机的基本原理如下:
1.1 模型结构
-
神经元
:神经网络的基本单位,通常由输入、权重、激活函数和输出组成。每个神经元接收输入信号,通过权重加权后,经过激活函数得出输出信号。 -
层
:神经元被组织成层,包括输入层、隐藏层和输出层。
-
输入层:接收原始数据输入。
-
隐藏层:位于输入和输出之间,处理数据并提取特征。可以有多个隐藏层。
-
输出层:产生最终的网络输出。
-
前向传播
:数据通过各层传递,计算输出结果的过程。 -
反向传播
:通过计算输出误差并将其反馈到网络中,调整权重以降低误差的过程。
1.2 权重更新
-
监督学习
:感知机通过监督学习的方式进行训练,即每个训练样本都有一个已知的标签。 -
梯度下降
:感知机利用梯度下降法来更新权重。对于每个训练样本,计算预测输出与真实标签之间的误差,然后根据误差调整权重,使得误差最小化。
1.3 学习规则
感知机学习规则
:感知机的学习规则是基于误分类的修正。如果一个样本被错误分类,感知机会根据以下规则更新权重:
其中,η是学习率。如果感知机的预测正确,即η∧=η ,其收到的反馈为 0,参数不更新。如果感知机预测为 0,但样本的真实标签为 1,感知机收到的反馈为-1,说明其预测结果整体偏大,需要将权重和偏置下调;如果感知机预测为 1,真实标签为 0,则需要将权重和偏置上调。
1.4 局限性
-
线性不可分:感知机只能解决线性可分的问题。对于非线性问题,如异或(XOR)问题,感知机无法找到一组权重来正确分类所有样本。
2 隐含层与多层感知机
多层感知机(MLP)是神经网络的一种,它通过堆叠多个层来增强模型的学习能力。MLP的核心在于引入隐含层,这些隐含层可以学习输入数据的更复杂和抽象的表示。
2.1 隐含层
隐含层是指位于输入层与输出层之间的层。在多层神经网络中,输入层接收原始数据,经过一个或多个隐含层的处理后,最终产生输出层的结果。隐含层通过这些层的权值和激活函数把输入转化为输出。
隐含层的功能
-
特征提取
:隐含层的主要作用之一是从输入数据中提取特征。每个隐含层通过不同的神经元组合来学习数据中的不同特征。 -
非线性变换
:通过激活函数,隐含层可以引入非线性变换,使得神经网络能够拟合复杂的关系。这一特性使得网络能够解决线性不可分的问题。 -
多层组合
:多个隐含层可以组合成更复杂的特征表示。深度学习中的“深度”概念通常体现在有多个隐含层的网络结构。 注意:激活函数一定得是非线性的,才能使网络模型有更广的拟合能力。
隐含层的结构
-
层数
:隐含层的层数和每层的神经元数量可以根据任务的复杂性进行设计。 -
神经元数量
:通常情况下,隐含层的神经元数量是可调的超参数,需要通过实验进行优化。 -
连接方式
:在多层感知机中,隐含层的每个神经元与前一层和后一层的神经元全连接。
常用的激活函数
-
Sigmoid:
范围在(0,1),适合二分类任务,但在深层网络中可能导致梯度消失。
Tanh(双曲正切函数):
范围在(-1,1),比Sigmoid更常用,但依然可能遇到梯度消失问题。
ReLU(线性整流单元):
非线性激活函数,计算速度快,不会饱和,广泛用于深度网络。
-
Softmax
:
在输出层用于多分类问题,将输出转换为概率分布。
在实践中,为了考虑隐含层之间的对称性,我们通常使所有隐含层使用相同的激活函数。
ReLU 函数因其计算简单且易于求导,常被用作隐含层激活函数。输出层的激活函数根据任务要求选择,例如,二分类任务可用逻辑斯谛函数可以选用逻辑斯谛函数,多分类问题可以选用softmax 函数,要求输出在(a,b)区间内的问题可以选用。
MLP
相比于单层感知机的表达能力提升,关键就在于非线性激活函数的复合
。
理论上可以证明,任意一个上的连续函数,都可以由大小合适的 MLP 来拟合,而对其非线性激活函数的形式要求很少。该定理称为普适逼近定理
,为神经网络的有效性给出了最基础的理论保证。
2.2 多层感知机(MLP)
多层感知机
是一种前馈神经网络,它由多个层组成,包括输入层、一个或多个隐含层以及输出层。
将多个单层感知机按前馈结构组合起来,就形成了多层感知机(multi-layer perceptron,MLP)。事实上,图 8-6 已经是一个两层的多层感知机,隐含层神经元内部的ϕ和输出层神经元内部的ϕout分别代表隐含层和输出层的激活函数。偏置项可以与权重合并,因此图中将其略去。
1. 前馈结构
-
前馈指的是信息在网络中只向一个方向流动,从输入层到隐含层,再到输出层。需要注意,前馈网络的层数是指权重的层数,即边的层数,而神经元上不携带权重。
-
这种结构简单,易于理解和实现,是大多数神经网络的基础。
2. 权重和偏置
-
MLP中的每个连接都有一个权重,每个神经元都有一个偏置项。
-
权重和偏置是网络的参数,通过训练数据来学习得到
。 举例,MLP 进行的运算依次为:
第一层:L1=ϕ1(W1+b1)。由于下一层的维度是 4,因此W1∈R4×3,b1∈R4,输出L1∈R4
第二层:ϕ2=f2(W2L1+b2)。同理W2∈R2×4,b2∈R2,输出L2∈R2
第三层,即输出层:y=ϕ3(W3L2+b3)。由于输出y是标量,这里W3∈R1×2,b3∈R。
三层MLP运算过程
3. 训练过程
-
MLP的训练通常使用
反向传播算法
,这是一种利用梯度下降
来优化网络参数的方法。 -
在训练过程中,网络首先进行前向传播,计算输出层的预测值。
-
然后计算损失函数,该函数衡量预测值和真实值之间的差异。
-
通过反向传播算法,计算损失函数关于每个参数的梯度,并更新参数以减少损失。
4. 优化算法
-
MLP的训练可以使用多种优化算法,如SGD、Adam、RMSprop等。
-
这些优化算法通过调整学习率和其他超参数来加速训练过程,并帮助网络更好地收敛。
5. 应用
-
MLP可以应用于各种任务,包括分类、回归、模式识别等。
-
由于其强大的非线性建模能力,MLP在许多领域都有广泛的应用,如金融、医疗、自动驾驶等。
总结
隐含层和多层感知机是神经网络中的关键概念。隐含层通过非线性激活函数提取输入数据的特征,而多层结构则允许网络学习数据的复杂和抽象表示
。MLP通过前馈传播和反向传播算法进行训练,优化网络参数以解决各种机器学习任务。这些原理和技术构成了现代深度学习的基础。
3. 反向传播
每一层的梯度由两部分组成。一部分是当前的激活函数计算出的梯度,另一部分是后一层回传的梯度。像这样梯度由后向前传播的算法,就称为反向传播
。
梯度的反向传播
4. 本章小结
-
多层感知机:通过增加隐含层,解决非线性问题,是现代神经网络的基础。
-
反向传播算法:允许多层感知机通过梯度下降法自动学习参数。
-
激活函数:非线性激活函数是提升网络表达能力的关键。
文章持续跟新,可以微信搜一搜公众号 [ rain雨雨编程 ],第一时间阅读,涉及爬虫,机器学习,Java编程,实战项目等。