【ML】深度学习演进与神经网络反向传播推导 2
本次学习主要是神经网络的反向传播(Backpropagation)算法是一种用于训练人工神经网络的监督学习算法。它通过计算网络输出与实际目标值之间的误差来调整网络中的权重,目的是最小化这个误差。反向传播算法的核心是梯度下降法,它利用了微积分中的链式法则来计算梯度。
0. 反向传播的基本步骤:
-
前向传播(Forward Propagation):
- 输入样本在神经网络中从输入层经过隐藏层,最终到达输出层。
- 每一层的输出都是下一层的输入,同时应用激活函数(如ReLU、Sigmoid或Tanh)。
-
计算损失(Compute Loss):
- 使用损失函数(如均方误差MSE、交叉熵损失等)来计算网络输出与实际目标值之间的差异。
-
反向传播误差(Backward Propagation):
- 从输出层开始,计算损失函数关于网络权重的梯度。
- 应用链式法则递归地计算每一层的权重梯度。
- 对于每一层,梯度是损失函数对下一层输入的导数乘以下一层输出对当前层激活的导数。
-
更新权重(Update Weights):
- 使用计算出的梯度和学习率来更新网络中的权重和偏置。
- 权重更新公式通常是:
W_new = W_old - learning_rate * gradient。
-
迭代过程(Iteration):
- 重复上述步骤,对多个训练样本或整个数据集进行多次迭代,直到网络性能达到满意的程度。
反向传播的关键点:
- 激活函数:选择适当的激活函数对网络性能至关重要,因为它决定了神经元的非线性特性。
- 损失函数:损失函数的选择取决于具体的任务(回归或分类)和目标。
- 梯度消失/爆炸:在深层网络中,梯度可能随着层数的增加而变得非常小(消失)或非常大(爆炸),这会影响学习过程。使用ReLU激活函数和批量归一化(Batch Normalization)等技术可以帮助缓解这些问题。
- 学习率:学习率的选择对训练速度和收敛性有显著影响。过高的学习率可能导致训练不稳定,而过低的学习率则会导致训练速度缓慢。

这篇博客深入探讨了深度学习中的反向传播算法,包括基本步骤、关键点和历史发展。从反向传播的前向传播、损失计算到权重更新,详细解释了每个环节,并提及了激活函数、损失函数、梯度消失/爆炸问题和学习率的选择。此外,还回顾了深度学习的发展历程,如多层感知机、反向传播算法的引入以及GPU在深度学习中的作用。最后,讨论了网络结构的选择和深度网络的优劣。
最低0.47元/天 解锁文章
1119

被折叠的 条评论
为什么被折叠?



