为什么我们需要一个比反向传播更好的学习算法?

【导读】如今,反向传播算法(Backpropagation)可以说是神经网络模型的标配学习方法,可以在网络的学习过程中计算损失函数的偏导数,从而进一步用随机梯度下降等算法来求解参数。但是,本文作者Kailash Ahirwar表示,我们在深度学习过程中需要一个比反向传播更好的学习算法。为什么呢?因为反向传播有种种缺陷:速度慢、存在梯度消失和爆炸问题,容易出现过拟合和欠拟合现象。本文并未提出一个新的替代方法,旨在揭露反向传播的不足,希望能有助于读者的理解。

Why we need a better learning algorithm than Backpropagation in Deep Learning

我们都知道,反向传播是一个革命性的学习算法。它能帮助我们训练几乎所有的神经网络架构。 在GPU的帮助下,反向传播将训练时间从几个月缩短到了几个小时/几天。 它允许对神经网络进行有效的训练。

它之所以被广泛使用我认为有两个主要原因:(1)我们没有比反向传播更好的方法,(2)它能起作用。 反向传播是基于微分的链式规则(chain rule ofdifferentiation)。

问题在于反向传播算法本身的实现。要计算当前层的梯度,我们需要知道下一层的梯度,所以当前层就被锁定了,因为我们无法计算当前层的梯度,除非我们有下一层的梯度。如果我们的网络中有1000个层,第一层必须等到最后一层梯度计算完之后才能更新权重。 因此,神经网络中最初的几层不能正确更新。有时候,在Sigmoid激活函数的情况下,当梯度传播回来时,梯度将会消失或爆炸。

当我们做决定的时候,我们根据当前的观察和以前的学习来做出决定。 目前的神经网络或深度学习算法与我们做决定的方式并不一样。我们是根据经验来做决定的,例如,当我们走路时,我们使用视觉,音频等感官输入来做出决定。我们也从一个任务学习其他任务。

反馈算法有以下限制:

它很慢,所有先前的层都会被锁定,直到计算出当前层的梯度;

存在梯度消失和梯度爆炸问题;

存在过拟合和欠拟合问题;

它仅考虑预测值和实际值来计算误差并计算与目标函数相关的梯度,部分梯度与反向传播算法有关;

它没有考虑类间的空间相关性和空间不相关性,而只是计算与目标函数有关的错误(部分与Backpropagation算法有关);

DeepMind的合成梯度(syntheticgradients)是一个变通方法,但它称不上一个解决方案。 在我看来,我们必须从头开始思考,设计一个新的学习算法,可以有效地学习,并可以帮助我们的网络实时学习。

关于作者(Kailash Ahirwar):

https://towardsdatascience.com/@kailashahirwar

我是MateLabs的联合创始人,在那里我们建立了Mateverse,一个ML平台,它使每个人都可以轻松地构建和训练机器学习模型,而无需编写一行代码。

参考链接:

https://towardsdatascience.com/why-we-need-a-better-learning-algorithm-than-backpropagation-in-deep-learning-2faa0e81f6b

-END-

专 · 知

人工智能领域主题知识资料查看获取:【专知荟萃】人工智能领域26个主题知识资料全集(入门/进阶/论文/综述/视频/专家等)

同时欢迎各位用户进行专知投稿,详情请点击

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180206G011MH00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励