神经网络入门(二)为什么我的算法跑得这么慢?

传统的神经网络存在问题


         我们都知道在训练神经网络的时候,一旦网络的层数增加,回到石神经网络的运算特别的缓慢。网络运行的缓慢本身的确是因为model过于复杂,但是值得我们思考的是,我们是否有其他的方法加快网络收敛的速度呢?嘻嘻,当然是有的。下面呢我们会分章节去讨论如何加快网络的训练速度。第一,就是改变我们一直用的代价函数,把最小二乘改成交叉信息熵。第二;正则化方法,这样会使得我们的算法在处理数据的时候有更好的泛化能力。第三:改变初始化权重的方式,记得吗?在前面我们谈到如何初始化权重和biase的时候我们是用标准正态分布随机初始化的。并且如何正确的选择超参数等等。这些方法都会对我们前面用的手写数字识别有很大的帮助。
                      

最小二乘的缺点:


                  在前面或者说大部分情况下,我们都一直使用的是最小二乘法作为我们的代价函数的那是因为大部分的数据都是服从高斯分布的。这里。我们来看看改变代价函数对网络会有什么样的帮助。
         我们看一下这幅图片,这是一个非常的简单的神经元是吧,我们假设:让这个神经元输入的数据是1,输出的是0,哈哈,怎样做的呢?wx+b嘛,谁都会做是吧,最简单得情况下,我们只需来一个随机梯度下降就OK啦,就可以选择出来最合适的参数,但是我们想让神经元学习,怎样做呢?我们让神经元的初始化权重是0.6,biase是0.9,最终的输出结果是0.82,这么烂?是的,距离0差的远着呢,这个时候让网络自己去安装误差学习权重,学习率0.15,那么学习过程是如下图所示的。

      

      如上图所示,进过300次之后结果才缓慢的降到了0.09,总之还可以的吧,适当的加大迭代的次数,就会得到比较满意的结果。这个时候小伙伴会吐槽,什么啊,粗腰300次,也太慢了吧。。。是的,的确有点慢。哈哈,还有更不好的呢,你试试把权重和biase都初始化城2.0,结果是0.98.继续训练的结果如图所示,
               
           
              你肯定会吐槽,这更加不好的,刚开始下降的太慢了吧。哈哈,是的,神经网络是对权值的初始化时分成平安的奥。那么我们是否考虑过,为什么就这慢呢?哈哈,当让需要从理论层面的数学推导来看看啦。还记得我们说过的最小二乘吗?,就是这个表达式,a是理论的输出结果,y(x)是实际期待的输出结果。这两个表达式大家一定不会陌生把,分别是误差对权重和偏执的偏导数。这里的a和x都是必须计算的常数,但是那个激活函数的倒数却是我们自己选择的。为什么要有这个激活函数呢?哈哈,就是因为为了模拟非线性函数的作用的嘛。我们来看看这个激活函数的倒数的图像。
       
          如果你仔细的观察一下,就发现红线的那部分变化 的斜率野太缓慢了吧。。。哈哈,这就是导致速度慢的原因所在。那么你就会说了:乱说啊明明讨论的是激活函数,为什么开头却说的是误差函数最小二乘的错呢?哈哈,别着急。其实原因就是因为那个最小二乘使得机激活函数singmod以倒数的形式出现了,那么我们想:怎样设计一个损失函数才可以使得不出现singmoid的倒数形式呢?这个时候就是交叉熵代价函数的用处了,哈哈。
 

交叉熵代价函数

  
        这里,我们依然让a和y表达的含义不变,引入下面的公式。
           
          
    上面列出的,就是交叉熵的具体表达式。来看看求导的结果如何
   
  
   你会认为这种表达式有点啰嗦,那么合并分母我们得到
  
   
    麻蛋,我还是认为麻烦,没有最小二乘的表达式简洁,哈哈,那就把前面的系数去掉。为啥呢,你这么牛逼,自己看看哈,分子分母不就是相同的吗?这就是奇迹发生的地方,直接就干点了我们讨厌的那个倒数项,厉害吧。那么就变成了。不错吧,恩,我们来看看实际的运算


     
                 初始值的权重0.6,偏执0.9



         
                    初始值的权重和偏执都是2.0.看到了吧,比较这几幅图片,相信你会发现什么,我就不多说啦,这就是交叉熵的能力所在,他直接的干点了那个最讨厌的倒数表达式的出现。鉴于篇幅的原因,我们下篇文章再来讨论其他的影响因素。
           
         










    










  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值