其中x1,x2,x3是每一个样本数据的三个特征值,Y是样本的真实结果值。我们随机初始化权重矩阵,拿其中一个数据作为输入,带入权重矩阵中计算,在通过激活函数传入下一层,最后得到预测值,假设为Z。计算损失,假设使用均方差函数,则Loss=(Z-Y)2。而反向传播的意义就是将这个Loss损失值利用数学公式“传”(此处传播的是梯度值而非误差本身)到前面的计算过程,以便计算机对权重矩阵对一些微小的改变。然后如下图所示,不断重复——带入权重矩阵计算、得到损失值、反向传播修改权重矩阵、输入下一个样本这个过程,直到损失函数非常小,准确度满足要求。
线性反向传播
看了这些概念和流程,是不是有点眼花。让我们举一个简单的例子,现有一个函数:
z=x⋅y
其中:
x=2w+3b
y=2b+1
单变量反向传播
求b的偏导
同样的,该公式的含义是当b变化时,z的变化量是b的63倍,为了使得消除Δz=12的误差, ,带回函数,得到z=150.2126和目标相距不远了。剩下的0.2126的误差,我们可以手动尝试继续迭代,看看是否误差在逐渐减少。事实上,计算机最为擅长用迭代计算来不断逼近真实解,这也是机器学习的真谛。
双变量线性反向传播
至此,我们已经学会了单变量线性反向传播的计算方式了,多变量的状况又如何解决呢?我们仍然以这道题为例,学习双变量线性反向传播的计算,同时改变w和b,为了到达最终结果为z=150的目的,不妨把这个误差的一半分给w,一半分给b。
计算得到新的w和b的值为:
带入公式得到输出值z=150.20169,进行手动迭代发现,进行三次反向传播后,误差值就达到了满意值。那么如何用计算机实现这个过程呢?我们下期再详细讲解。
联系客服