单击上方“图灵人工智能”,选择“星标”公众号
您想知道的人工智能干货,第一时间送达
转自见色非色,仅用于学术分享,如有侵权留言删除报道 反向传播:
深度学习的心脏
为什么它让多层网络在 1986 年后重新成为可能?
多层网络像一张层层传递的网:错误要能回头,才谈得上学习一台机器做错了题,最先知道的是谁?
多半是最后判卷的人。
可如果这台机器不是一个简单计算器,而是一张由许多层神经元组成的网络,事情就麻烦了:答案错了,责任到底在谁?是最后一层判断失误,还是中间某一层提取了错误特征?又或者,祸根早在最初几层就埋下,只是一路被放大,直到最后才暴露出来?
如果只告诉网络“你答错了”,它并不会因此变聪明。它真正需要知道的是:哪一层出了问题,哪一个连接影响最大,每一个参数究竟该往哪个方向调整。
反向传播解决的,正是这件事。
它让错误不再停在输出端,而是沿着网络来时的路,一层一层返回去。网络因此获得了一种近似“追责”的能力:结果错了,就回头查找原因;影响越大,调整越多;影响越小,调整越轻。
深度学习后来能够发展起来,靠的并不只是网络变得更深,也不只是计算机变得更快。更根本的变化是:多层网络终于有办法把最终的错误,分配给内部每一层。
异或(XOR):一条直线无法把两类点分开,单层网络在此止步解决办法是增加一层隐藏层。
隐藏层先把原始输入重新组合,形成几个中间特征;输出层再根据这些特征做出最后判断。就像一个人处理复杂问题时,不会直接从原始材料跳到最终结论,而是先提炼线索、区分情况,再把线索组合起来。
所以,多层网络在理论上早就具备更强的表达能力。
输出层有标准答案可以对照。预测是猫,答案是狗,输出层知道自己错了。可隐藏层没有直接面对答案。它不知道自己刚才提取的特征有没有用,也不知道某个连接究竟是在帮助判断,还是在把结果带偏。
这就是多层网络长期面对的困难:结构可以搭出来,能力也可能存在,但错误无法有效地传回内部。
输入层、隐藏层、输出层:误差诞生在末端,却要交代给每一层先看一条最简单的计算链。
前向算出结果,反向算出责任:两条路径合起来才是训练反向传播的力量,就藏在这条“从结果返回原因”的路径里。
这些中间表示不是研究者一开始手工画好的,也不是网络事先“理解”了什么,而是在任务误差的不断推动下形成的。
越靠近输出,表示越抽象——这条阶梯不是画出来的,是误差“推”出来的这是一种很重要的转变。
过去,人们必须先想清楚“什么特征有用”,再把这些特征交给机器。反向传播则把问题倒了过来:只要最终目标明确,机器能不能从错误中逐层发现哪些内部表示有用?
多层网络真正的价值,也正在这里。它不只是把计算步骤机械地叠加起来,而是在不同层次上逐步重组信息。
因此,反向传播并不是让网络盲目试错,而是让它在错误中获得方向。
它把“重新猜一个答案”变成了“沿着能够减少错误的方向前进”。
w ← w − η · ∂E/∂w梯度下降:每次只挪一小步 η,错了就再算一次这就是梯度下降的基本思想:网络每次不必找到最完美的答案,只要根据当前梯度,朝着错误变小的方向移动一点,再重新计算,再移动一点。
梯度下降:不是一次猜中最优解,而是每步都知道往哪边下坡1986 年的意义:不是发明,而是重新打开一扇门
Rumelhart · Hinton · Williams反向传播,正是把“能够表示”与“能够学会”连接起来的那座桥。
把误差送回隐藏单元——这一步打通之后,深度才有了意义
向前计算,向后归因——两条路都通了,网络才算活着
文章精选:
1.图灵奖得主姚期智最新演讲: AI有边界,恰恰是好事