误差反向传播
误差反向传播是通过计算损失函数对网络中每个权重的梯度,并利用梯度下降法更新权重,以最小化预测误差的过程。它结合了链式法则(微积分中的求导规则)和梯度下降法,实现对多层神经网络的高效训练。
如果不能理解,可以去看看深度学习入门,这本书中作者使用了简单的例子,利用计算图的方式说明了误差反向传播。当理解了误差反向传播后,需要通过代码加深理解,可以参考深度学习入门2:自制框架以及Andrej Karpathy大神的视频The spelled-out intro to neural networks and backpropagation: building micrograd。
神经网络
初始损失值问题
通常在进行神经网络训练的时候,对于权重和bias初始化都是随机初始化的,这可能会导致初始损失值会非常大。比如基于character进行预测的时候,初始情况我们是希望所以character出现的概率是一样的,即损失值是一个比较小的值,但是如果是权重和bias初始化都是随机初始化即可能会导致初始损失值非常大的情况。
解决思路:对于影响初始损失值的bias,我们可以使用0进行初始化。对于权重我们可以乘一个系数比如0.01。这样可以在一定程度上减小初始损失值过大的问题。这样神经网络前面的训练就不是在压缩权重,将更多的计算资源用在真正需要调整的计算上,进而提高神经网络的训练效率。
可以参考Andrej Karpathy大神的视频的Building makemore Part 3: Activations & Gradients, BatchNorm的fixing the initial loss部分
Transformer
机器学习的经典论文Attention Is All You Need提到的Transformer架构,可以参考学习李沐大神的视频Transformer论文逐段精读