人工神经网络的灵感来源于生物神经系统。生物神经元通过树突接收信号, 在细胞体中整合处理,然后通过轴突传递给其他神经元。
其中 w 是权重向量,x 是输入向量,b 是偏置项,f 是激活函数。
感知机(Perceptron)是最早的神经网络模型之一,由 Frank Rosenblatt 在 1957 年提出。 它使用阶跃函数作为激活函数,可以解决线性可分问题。
局限性: 感知机只能解决线性可分问题, 无法解决异或(XOR)等非线性问题。这一局限性直到多层神经网络和反向传播算法的出现才得以解决。
激活函数是神经网络中的关键组件,它引入非线性变换,使得神经网络能够学习复杂的非线性关系。
如果没有激活函数(或使用线性激活函数),无论网络有多少层, 整个网络仍然等价于一个单层线性模型,无法学习复杂模式。
比较常见激活函数的特性、优缺点和适用场景。拖动鼠标选择不同的激活函数,观察它们的图像和导数。
将输入压缩到 (0, 1) 区间,常用于二分类输出层
| 函数 | 值域 | 零中心 | 梯度消失 | 计算速度 |
|---|---|---|---|---|
| Sigmoid | (0, 1) | ✗ | 严重 | 较慢 |
| ReLU | [0, +∞) | ✗ | 较轻 | 快 |
| Tanh | (-1, 1) | ✓ | 严重 | 较慢 |
| Leaky ReLU | (-∞, +∞) | ✗ | 很轻 | 快 |
多层前馈神经网络(Multilayer Feedforward Neural Network)也称为多层感知机(MLP), 是最基础的深度学习模型。信息从输入层经过一层或多层隐藏层,最终到达输出层。
接收原始特征数据。节点数等于特征维度。例如,28×28 的图像展平后有 784 个输入节点。
提取和转换特征表示。每层通过非线性变换学习更抽象的特征。 层数越多(越"深"),理论上能学习的特征越复杂。
产生最终预测。分类任务通常使用 Softmax 激活,回归任务使用线性激活。 节点数等于类别数(分类)或输出维度(回归)。
前向传播(Forward Propagation)是神经网络计算输出的过程。 给定输入 x,逐层计算激活值,最终得到预测结果 ŷ。
Universal Approximation Theorem:一个包含至少一个隐藏层的前馈神经网络,在激活函数满足一定条件下(如 Sigmoid), 可以以任意精度逼近任何连续函数。
理论保证
实践挑战
调整网络的层数和每层的节点数,观察网络结构的变化。查看总参数数量和连接数,理解网络复杂度。
反向传播算法(Backpropagation, BP)是训练神经网络的标准方法, 由 Rumelhart、Hinton 和 Williams 在 1986 年推广。 它基于链式法则高效计算损失函数对所有参数的梯度。
链式法则是微积分中的基本定理,它是反向传播算法的数学基础。
⊙ 表示逐元素乘法(Hadamard product)
计算出梯度后,使用梯度下降法更新参数:
其中 η 是学习率(learning rate), 控制每次更新的步长大小。
观看完整的前向传播、反向传播和权重更新过程。查看每个连接的权重和梯度变化。
从输入层开始,逐层计算每个神经元的输出值,直到得到最终的预测结果。
z = Σ(wᵢxᵢ) + b, a = σ(z)
计算输出误差,然后利用链式法则反向计算每层的梯度。
δₗ = (∂L/∂aₗ) · σ'(zₗ)
使用梯度下降法更新所有权重和偏置。
w ← w - η · (∂L/∂w)
深度学习(Deep Learning)是机器学习的一个分支,特指使用多层神经网络进行学习的方法。 "深度"指的是网络的层数较多(通常 > 2 层隐藏层)。
在深层网络中,梯度在反向传播过程中可能会变得极小(消失)或极大(爆炸), 导致网络难以训练。
原因:
解决方案:
深度网络参数众多,容易在训练集上过拟合,泛化性能差。
正则化技术:
Dropout
训练时随机丢弃部分神经元
L2 正则化
在损失函数中添加权重惩罚项
数据增强
通过变换扩充训练数据
早停法
监控验证集性能,及时停止训练
深度网络训练需要大量计算资源和时间。
除了基本的梯度下降,现代深度学习使用了许多优化技术来加速训练和提高性能。
现代深度学习框架极大地简化了神经网络的开发和训练过程。
可能原因:
诊断:过拟合
诊断:欠拟合
动手实现神经网络中最基础的激活函数,理解其数学原理。
完成 sigmoid 函数和 sigmoid_derivative 函数的实现
x σ(x) σ'(x) ---------------------------------------- -2.0 0.1192 0.1050 -1.0 0.2689 0.1966 0.0 0.5000 0.2500 1.0 0.7311 0.1966 2.0 0.8808 0.1050 特性观察: - σ(0) = 0.5 (中心点) - σ(-x) = 1 - σ(x) (对称性) - σ'(x) 在 x=0 处最大 (0.25)
✓ 人工神经元模拟生物神经元,通过加权求和和激活函数产生输出
✓ 激活函数引入非线性,使神经网络能够学习复杂函数(Sigmoid、ReLU、Tanh 等)
✓ 多层前馈神经网络由输入层、隐藏层和输出层组成,具有万能逼近能力
✓ 反向传播算法基于链式法则,高效计算所有参数的梯度
✓ 深度学习通过多层网络实现层次化特征学习,在许多任务上表现优异
✓ 训练深度网络面临梯度消失/爆炸、过拟合等挑战,需要使用正则化和优化技术
✓ 现代深度学习框架(PyTorch、TensorFlow 等)极大简化了神经网络的开发