深入理解深度学习:多层感知机、BP算法与性能优化
一、多层感知机(MLP)
多层感知机(MLP)是一种前馈人工神经网络,它包括一个输入层、一个或多个隐藏层以及一个输出层。每层由多个神经元组成,每个神经元与下一层的所有神经元通过权重连接。MLP 使用非线性激活函数,这使得它能够学习非线性模型。
1.1 结构
多层感知机的基本结构由以下几部分组成:
- 输入层:接收输入数据。
- 隐藏层:一个或多个隐藏层,每层包含若干神经元。隐藏层的主要作用是提取输入数据中的特征。
- 输出层:根据任务需求设计,如分类或回归。
1.2 激活函数
激活函数的作用是引入非线性因素,解决线性模型无法解决的问题。常用的激活函数包括:
- Sigmoid: ( σ ( x ) = 1 1 + e − x ) (\sigma(x) = \frac{1}{1 + e^{-x}}) (σ(x)=1+e−x1),将输入压缩到0和1之间。
- Tanh: ( tanh ( x ) = 2 1 + e − 2 x − 1 (\tanh(x) = \frac{2}{1 + e^{-2x}} - 1 (tanh(x)=1+e−2x2−1),将输入压缩到-1和1之间。
- ReLU: ( R e L U ( x ) = max ( 0 , x ) (ReLU(x) = \max(0, x) (ReLU(x)=max(0,x)),提供了简单的非线性,常用于隐藏层。
1.3 前向传播
前向传播是指从输入层到输出层的过程。对于每一层,输出计算公式为:
[ a [ l + 1 ] = g [ l ] ( W [ l ] a [ l ] + b [ l ] ) ] [ a^{[l+1]} = g^{[l]}(W^{[l]}a^{[l]} + b^{[l]}) ] [a[l+1]=g[l](W[l]a[l]+b[l])]
其中, ( a [ l ] ) (a^{[l]}) (a[l])是第(l)层的激活值, ( W [ l ] ) (W^{[l]}) (W[l])和 ( b [ l ] ) (b^{[l]}) (b[l])分别是第(l)层的权重和偏置, ( g [ l ] ) (g^{[l]}) (g[l])是激活函数。
二、BP算法(误差反向传播)
BP算法是一种用于训练神经网络的常用方法,主要用于优化网络中的权重和偏置,使得网络的预测误差最小化。
2.1 梯度计算
误差反向传播的关键是计算损失函数对每个参数的偏导数。对于输出层,梯度计算公式为:
[ ∂ L ∂ W [ L ] = 1 m δ [ L ] ( a [ L − 1 ] ) T ] [ \frac{\partial \mathcal{L}}{\partial W^{[L]}} = \frac{1}{m} \delta^{[L]} (a^{[L-1]})^T ] [∂W[L]