打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
日常修炼 | 神经网络三大概念之——反向传播(上)


在之前的日常修练中,我们成功申请了微软Azure云的DSVM,并配置好了使用环境,终于可以开始迈入人工智能的大门了。

机器学习领域有各种模型,适用于不同的实际场景,神经网络是机器学习领域十分重要的一个分支,尤其伴随着近年深度学习技术的发展,更是成为现今人工智能的主流算法。而要学习神经网络的基本训练和工作原理,需要了解三大基本概念——反向传播、梯度下降和损失函数。我们今天就来讲讲反向传播。

假设现在我们有一批训练数据样本:

其中x1,x2,x3是每一个样本数据的三个特征值,Y是样本的真实结果值。我们随机初始化权重矩阵,拿其中一个数据作为输入,带入权重矩阵中计算,在通过激活函数传入下一层,最后得到预测值,假设为Z。计算损失,假设使用均方差函数,则Loss=(Z-Y)2。而反向传播的意义就是将这个Loss损失值利用数学公式“传”(此处传播的是梯度值而非误差本身)到前面的计算过程,以便计算机对权重矩阵对一些微小的改变。然后如下图所示,不断重复——带入权重矩阵计算、得到损失值、反向传播修改权重矩阵、输入下一个样本这个过程,直到损失函数非常小,准确度满足要求。


线性反向传播



看了这些概念和流程,是不是有点眼花。让我们举一个简单的例子,现有一个函数:

z=x⋅y

其中:

x=2w+3b

y=2b+1

注意变量并不是这里的x和y,我们可以将其理解为输入的样本值,真正要求解的变量是神经元模型中的权重w(weights)和偏移b(bias)。首先我们初始化权重矩阵,令w=3,b=4,得到的预测值z=162。但如果样本的真实值是150,我们如何使得预测值变小一些呢?数学家告诉我们,可以通过求w和b的偏导数,然后反向传播,使得输入端w和b的值一点一点地改变,直到产生的预测结果和真实值相差无几。

单变量反向传播


1
求w的偏导

也就是说当w变化一个微小量的时候,z的变化量是微小量的18倍,即
Δz=18⋅Δw
我们试图让z从预测值162减少到150,Δz=12,那么

所以更新权重w=w-Δw=2.3333
重新带回函数,z=150.0003就和目标非常接近了。如果固定w的值,将修改误差的“任务”交给变量b,则改为求b的偏导。

2

求b的偏导

根据链式法则,b的偏导数计算过程如下:

同样的,该公式的含义是当b变化时,z的变化量是b的63倍,为了使得消除Δz=12的误差, ,带回函数,得到z=150.2126和目标相距不远了。剩下的0.2126的误差,我们可以手动尝试继续迭代,看看是否误差在逐渐减少。事实上,计算机最为擅长用迭代计算来不断逼近真实解,这也是机器学习的真谛。

双变量线性反向传播



至此,我们已经学会了单变量线性反向传播的计算方式了,多变量的状况又如何解决呢?我们仍然以这道题为例,学习双变量线性反向传播的计算,同时改变w和b,为了到达最终结果为z=150的目的,不妨把这个误差的一半分给w,一半分给b。

计算得到新的w和b的值为:


带入公式得到输出值z=150.20169,进行手动迭代发现,进行三次反向传播后,误差值就达到了满意值。那么如何用计算机实现这个过程呢?我们下期再详细讲解。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
ML,DL核心数学及算法知识点总结
深度学习入门
R语言多元时间序列滚动预测:ARIMA、回归、ARIMAX模型分析
主成分分析、线性回归-简要说明
深入理解图优化与g2o:图优化篇
卷积神经网络(CNN)反向传播算法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服