深度学习---(1)神经网络与多层感知机

前言

为本文提供了神经网络的全面介绍,从基础理论到实际应用,再到模型评估和优化

1 感知机的原理

感知机是最早的人工神经网络模型之一,它是一个简单的线性二分类模型。感知机的基本原理如下:

1.1 模型结构

  1. 神经元:神经网络的基本单位,通常由输入、权重、激活函数和输出组成。每个神经元接收输入信号,通过权重加权后,经过激活函数得出输出信号。

  2. :神经元被组织成层,包括输入层、隐藏层和输出层。

  • 输入层:接收原始数据输入。

  • 隐藏层:位于输入和输出之间,处理数据并提取特征。可以有多个隐藏层。

  • 输出层:产生最终的网络输出。

  1. 前向传播:数据通过各层传递,计算输出结果的过程。

  2. 反向传播:通过计算输出误差并将其反馈到网络中,调整权重以降低误差的过程。

1.2 权重更新

  • 监督学习:感知机通过监督学习的方式进行训练,即每个训练样本都有一个已知的标签。

  • 梯度下降:感知机利用梯度下降法来更新权重。对于每个训练样本,计算预测输出与真实标签之间的误差,然后根据误差调整权重,使得误差最小化。

1.3 学习规则

感知机学习规则:感知机的学习规则是基于误分类的修正。如果一个样本被错误分类,感知机会根据以下规则更新权重:

其中,η是学习率。如果感知机的预测正确,即η∧=η ,其收到的反馈为 0,参数不更新。如果感知机预测为 0,但样本的真实标签为 1,感知机收到的反馈为-1,说明其预测结果整体偏大,需要将权重和偏置下调;如果感知机预测为 1,真实标签为 0,则需要将权重和偏置上调。

1.4 局限性

  • 线性不可分:感知机只能解决线性可分的问题。对于非线性问题,如异或(XOR)问题,感知机无法找到一组权重来正确分类所有样本。

2 隐含层与多层感知机

多层感知机(MLP)是神经网络的一种,它通过堆叠多个层来增强模型的学习能力。MLP的核心在于引入隐含层,这些隐含层可以学习输入数据的更复杂和抽象的表示。

2.1 隐含层

隐含层是指位于输入层与输出层之间的层。在多层神经网络中,输入层接收原始数据,经过一个或多个隐含层的处理后,最终产生输出层的结果。隐含层通过这些层的权值和激活函数把输入转化为输出。

隐含层的功能

  • 特征提取:隐含层的主要作用之一是从输入数据中提取特征。每个隐含层通过不同的神经元组合来学习数据中的不同特征。

  • 非线性变换:通过激活函数,隐含层可以引入非线性变换,使得神经网络能够拟合复杂的关系。这一特性使得网络能够解决线性不可分的问题。

  • 多层组合:多个隐含层可以组合成更复杂的特征表示。深度学习中的“深度”概念通常体现在有多个隐含层的网络结构。 注意:激活函数一定得是非线性的,才能使网络模型有更广的拟合能力。

隐含层的结构

  • 层数:隐含层的层数和每层的神经元数量可以根据任务的复杂性进行设计。

  • 神经元数量:通常情况下,隐含层的神经元数量是可调的超参数,需要通过实验进行优化。

  • 连接方式:在多层感知机中,隐含层的每个神经元与前一层和后一层的神经元全连接。

常用的激活函数

  • Sigmoid:

f(x)=\frac{1}{1+e^{-x}}

范围在(0,1),适合二分类任务,但在深层网络中可能导致梯度消失。

  • Tanh(双曲正切函数):

f(x)=tanh(x)=\frac{e^{x}-e^{-x}}{e^{-x}+e^{x}}

范围在(-1,1),比Sigmoid更常用,但依然可能遇到梯度消失问题。

  • ReLU(线性整流单元)

f(x)=max(0,x)

非线性激活函数,计算速度快,不会饱和,广泛用于深度网络。

  • Softmax

在输出层用于多分类问题,将输出转换为概率分布。

f(x_{i})=\frac{e^{x_{i}}}{\sum _{j}e^{x_{j}}}

在实践中,为了考虑隐含层之间的对称性,我们通常使所有隐含层使用相同的激活函数。

ReLU 函数因其计算简单且易于求导,常被用作隐含层激活函数。输出层的激活函数根据任务要求选择,例如,二分类任务可用逻辑斯谛函数可以选用逻辑斯谛函数,多分类问题可以选用softmax 函数,要求输出在(a,b)区间内的问题可以选用\frac{b-a}{2}tanh(x)+\frac{b+a}{2}

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运算过程

三层MLP运算过程

3. 训练过程

  • MLP的训练通常使用反向传播算法,这是一种利用梯度下降来优化网络参数的方法。

  • 在训练过程中,网络首先进行前向传播,计算输出层的预测值。

  • 然后计算损失函数,该函数衡量预测值和真实值之间的差异。

  • 通过反向传播算法,计算损失函数关于每个参数的梯度,并更新参数以减少损失。

4. 优化算法

  • MLP的训练可以使用多种优化算法,如SGD、Adam、RMSprop等。

  • 这些优化算法通过调整学习率和其他超参数来加速训练过程,并帮助网络更好地收敛。

5. 应用

  • MLP可以应用于各种任务,包括分类、回归、模式识别等。

  • 由于其强大的非线性建模能力,MLP在许多领域都有广泛的应用,如金融、医疗、自动驾驶等。

总结

隐含层和多层感知机是神经网络中的关键概念。隐含层通过非线性激活函数提取输入数据的特征,而多层结构则允许网络学习数据的复杂和抽象表示。MLP通过前馈传播和反向传播算法进行训练,优化网络参数以解决各种机器学习任务。这些原理和技术构成了现代深度学习的基础。

3. 反向传播

每一层的梯度由两部分组成。一部分是当前的激活函数计算出的梯度,另一部分是后一层回传的梯度。像这样梯度由后向前传播的算法,就称为反向传播

梯度的反向传播

梯度的反向传播

4. 本章小结

  • 多层感知机:通过增加隐含层,解决非线性问题,是现代神经网络的基础。

  • 反向传播算法:允许多层感知机通过梯度下降法自动学习参数。

  • 激活函数:非线性激活函数是提升网络表达能力的关键。

文章持续跟新,可以微信搜一搜公众号  rain雨雨编程 ],第一时间阅读,涉及爬虫,机器学习,Java编程,实战项目等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值