反向传播中的数学
有没有想过,在学习神经网络时,所有这些数学方程式都来自哪里?
我们如何使用NN设计和线性代数来得到这些结果?
什么是神经网络(NN)?
神经网络是一个信息处理系统,受到人类神经系统处理信息的启发。
它由许多相互关联的处理单元组成,我们称之为神经元,它们一起工作以解决特定的问题。
NN Elements&Architecture
正如我们所说的,神经网络是由连接在一起的神经元组成的:一个输入层,许多隐藏层和一个输出层,如下图所示:
特定层中的每个神经元通过加权连接和bias或offset连接到下一层中的所有神经元,意味着每个神经元输入(z)是前一层输出(a)乘以连接的权重加上bias的总和。
我们如何使用这些NN?
与人类相似,NN通过示例学习。
我们要做的是从训练集中抽取样本,将输入的数据输入网络以及预期输出。基于此,我们计算特定样本的神经网络输出,然后计算该样本的误差或损失函数,即我们的训练集中实际输出的计算输出有多大不同。
目标是使所有训练样本的损失函数最小化,并随后准确预测不属于训练集的测试样本的输出。例如:我们可以构建一个NN来检测图像是否包含狗。为此,我们设计一个网络并使用图像样本进行训练。然后我们使用一个我们没有训练的图像来测试它。
现在,主要问题是:
我们如何调整和更新我们的网络以实现损失函数的全局最小值?
我们可以通过更新连接神经元的权重和偏差来做到这一点,因此我们必须检查权重和偏差的变化如何影响整体损失函数,也就是说我们需要得到相对于这些权重和偏差的损失的导数并减去那些Δw和Δb直到我们达到最小值。
Notation
在这篇文章中,我们将开始计算每个神经元,然后将其推广到使用矩阵计算整个图层。
标量符号
我们来定义以下内容:
矩阵符号
最后一层错误信号
Scalar Calculus
第一个推导取决于损失函数的选择。让我们保持一般。至于第二项:
Matrix Format
任何层错误信号
Scalar Calculus
下面的层l和l + 1的表示表明,损失函数相对于层1中的神经元j的变化等于损失相对于层1 + 1中的所有神经元的损失的总和,某一层的神经元会影响后续层中的所有神经元。
因此:
然而:
因此:
Matrix Format
这表明,某一层的误差信号可以计算为权重的矩阵和点积,激活函数的推导以及下一层的误差信号矩阵。
因此,从最后一层开始,我们可以后退并计算所有误差信号矩阵,从而反向传播。
作为权重函数的损失变化
正如以上所示,分别针对层l-1和l中的两个神经元i和j之间的任何权重值的损失函数的推导或变化如下:
然而:
除了当k = i时,它等于零。因此:
Matrix Format
作为偏差函数的损失变化
Scalar Calculus
损失函数相对于任何神经元的偏差的推导或变化是:
Matrix Format
总结
为了总结什么是重要的等式,让我们记住我们的目标是改变W和B,以便有最小损失L.
为了做到这一点,我们需要通过正向传播来计算输出,然后计算速率通过反向传播的权重和偏差改变损失。
因此,重要的功能是: