西瓜书第5章神经网络
神经网络知识点总结
1. 神经元模型
神经网络的基本单位是神经元(Neuron),神经元模型借鉴了生物神经元的构造。一个典型的人工神经元可以表示为:
- 输入信号:$ x_1, x_2, \dots, x_n $
- 权重:$ w_1, w_2, \dots, w_n $
- 偏置:$ b $
- 输出:$ y $
神经元的计算
神经元计算一个加权和并通过激活函数生成输出:
激活函数(常用的有 Sigmoid、ReLU、Tanh 等)用于引入非线性:
其中,常见的激活函数有:
- Sigmoid:$ f(z) = \frac{1}{1 + e^{-z}} $
- ReLU:$ f(z) = \max(0, z) $
- Tanh:\(f(z) = \frac{e^z - e^{-z}}{e^z + e^{-z}}\)
2. 感知机与多层网络
单层感知机
单层感知机(Perceptron)是最简单的神经网络模型,由一层神经元组成。其输出为二元分类(0或1)。在训练过程中,通过调整权重使得预测尽可能接近目标。
多层感知机(MLP)
多层感知机(Multilayer Perceptron)是由多个神经元层(包括输入层、隐藏层和输出层)组成的网络。多层感知机通过增加隐藏层来学习更加复杂的特征。多层网络使用非线性激活函数,使得模型具备更强的拟合能力。
假设有一输入层 $ x $,两层隐藏层(第1层输出为 $ h^{(1)} $,第2层输出为 $ h^{(2)} $,最终输出为 $ y $,则网络的计算过程为:
3. 误差逆传播算法(Backpropagation)
误差逆传播是训练多层神经网络的关键算法,用于计算和调整网络的参数(权重和偏置)。目标是最小化损失函数 $ L(y, \hat{y}) $,如均方误差(MSE)或交叉熵损失(Cross-Entropy)。
损失函数
假设真实值为 $ y $,预测值为 $\hat{y} $,损失函数定义为:
参数更新
通过反向传播算法,利用链式法则从输出层到输入层逐层计算梯度,并根据梯度下降法(如 SGD)调整参数。对于权重 $ w_{ij} $,梯度更新公式为:
其中,学习率 $ \alpha $ 控制步长大小。
4. 全局最小与局部最小
在神经网络的训练过程中,损失函数$ L $ 通常是非凸的。优化过程可能会陷入局部最小值,即找到的最优解不是全局最优。
在实际应用中,优化算法(如 Adam、RMSProp)和初始化方法可以帮助网络跳出局部最小值,逼近全局最小值。
5. 深度学习(Deep Learning)
深度学习是指拥有多层结构的神经网络模型。由于层数的增加,网络能够学习到更高级的特征表示。
深层神经网络(DNN)的结构
深层神经网络由多层隐藏层组成,结构如下:
- 输入层:接受原始输入特征。
- 隐藏层:层数越多,网络越深,抽象能力越强。
- 输出层:最终输出预测结果。
深度学习中的挑战
- 过拟合:深层网络更易过拟合,需通过正则化、Dropout 等技术进行防止。
- 梯度消失与梯度爆炸:特别是在使用 Sigmoid 和 Tanh 激活函数时,反向传播中梯度容易衰减或爆炸。
- 计算复杂度:深层神经网络对计算资源要求较高,通常需要 GPU 加速。