【导读】如今,反向传播算法(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个主题知识资料全集(入门/进阶/论文/综述/视频/专家等)
同时欢迎各位用户进行专知投稿,详情请点击:
【诚邀】专知诚挚邀请各位专业者加入AI创作者计划!了解使用专知!
请PC登录www.zhuanzhi.ai或者点击阅读原文,注册登录专知,获取更多AI知识资料!
请扫一扫如下二维码关注我们的公众号,获取人工智能的专业知识!
请加专知小助手微信(Rancho_Fang),加入专知主题人工智能群交流!
点击“阅读原文”,使用专知!