7、神经网络是如何进行学习的?

本文属于学习笔记,依据(微信公众号:jack床长)的文章整理,在jack床长文章的启发下,里面也加入了自己的一些思考,非常感谢jack床长的无私分享。越分享才会越快乐、越无私才会越快乐,我也希望我的博客能够启发帮助到更多的人。

jack床长博客链接:http://blog.csdn.net/jiangjunshow



我先把前面的总结一下,总结才能进步得意


神经网络进行预测的步骤:
(1) 将图片以特征向量的形式输入到神经网络中;

(2) 神经网络通过一种算法(预测算法)来对输入的数据进行处理,给出预测结果。

(3) 把预测结果跟事先给出的答案进行对照,判断预测的是否准确。(通过损失函数来评判)
 

如果预测的不准确,就要进行修正,修正的过程就是改进学习的过程,改进主要是改进预测结果算法中的参数。

前面已经给出了预测结果的公式,即逻辑回归算法。


预测是否准确主要是由预测公式中的w和b决定的,所以改进主要是改进w和b的值。那么如何找到一个最合适的w和b,可以通过一个梯度下降(gradient descent)的算法(反向传播算法)来得出。梯度下降算法每次都会判断预测结果与已给出答案之间的偏差、来逐步调整w和b的值,使w和b的值能够使预测结果和已给出答案之间的偏差越来越小,越来越接近已给出的答案。下面发挥一下我本科自动化的专长,用一张图来更明白的解释一下逻辑回归算法、损失函数、梯度下降算法之间的关系。





由上面的公式可以看到,损失函数是一个关于w和b的函数。所谓“学习”或“训练神经网络”,就是找到一组最合适的w和b的值,使这个损失函数的值最小,同样也是使逻辑回归算法中w和b的值最合适,进而使预测结果更准确。损失函数的图形如下图所示。


由上图可知,损失函数的形状是一个漏斗形,我们训练神经网络的目的就是为了找到这个漏斗最底端的一组w和b的值,使J即损失函数的值最小。

这种漏斗形状的函数称为凸函数,正是因为J函数是凸函数,所以我们很容易能够找到其最低点,进而找到w和b位于最低点的值。而之前的平方差函数不是一个凸函数,所以很难找到其最低点,这就是为什么不选择平方差函数作为损失函数的原因。如下图所示,梯度下降算法会逐步更新w和b的值,使损失函数J一步一步地变得更小,最终找到最小值或接近最小值的地方。


那么这个梯度下降算法更新w和b的具体过程是什么样的呢?为了简化问题,我们做出两点假设,1、假设损失函数J只有一个参数w(实际上J是一个关于w和b的函数);2、假设w只是一个实数(实际上w是一个向量/一组实数)。如下图所示,梯度下降算法一步一步地在改变着w的值,使损失函数的结果越来越小(将w的值一步一步的移到红点处)。


具体实现过程如下面的公式,通过公式的递归来逐步改变w的值

w'=w-r*dw

梯度下降算法就是重复咨询过上面的公式来不断更新w的值
注:w'是新的w的值;
       w是旧的w;
       r是步进/学习率;
       dw是损失函数J关于参数w的偏导数。


1、解释r
假设w=10,dw=1,r=4,第一次梯度下降后,w'=10-4*1=6
                r=2,第一次梯度下降后,w'=10-2*1=8
10变到8没有10变到6,变化的快。是因为变化率r比较小,r是用来控制w变化快慢的参数。

2、解释dw
dw就是J的变化与w的变化的比例,我们按照这个比例去使w越来越小那么它相应的J也会越来越小,最终达到我们的目的,找到J最小值时w的值是多少。损失函数J的值越小,表示预测越精准。

神经网络就是通过这种方法来进行学习的,通过梯度下降算法来一步一步改变w和b的值,使损失函数越来越小,使预测越来越精准。




一个容易犯的误区。

有人会说,那我每次都使w改变很多,那么就会更快的到达J的最小值处,是可以。但是,欲速则不达,关键是要控制好“度”,因为如果你每次让w改变太多,那么可能会错过了J的最小值处,例如上图中你可能会从w的初始位置直接到了绿色小三角的位置(跳过了J的最小值处),之后你会左右来回跳,永远到不了J的最小值处。这就是r的用武之地,用它来控制w改变的步进,所以选择一个正确的学习率很重要。选错了,那么你的神经网络可能会永远找不到损失函数的最小值处,即你的神经网络预测得永远不会很准。


本节的内容到这里就要结束了。
神经网络究竟是怎样学习的,它是通过反馈来不断学习的。在这里用笛卡尔的一句话来结束这篇博客,“我思故我在”大笑


  • 15
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值