神经网络是深度学习中非常流行的前沿技术;
深度学习是机器学习的分支;
机器学习是人工智能的分支。
前馈
梯度下降
全局最小值
反向传播
您有猫吗?
您喝进口啤酒吗?
过去一个月,您是否访问过我们的网站 LitterRip.com?
过去一个月,您是否购买过 Litter Rip! 猫砂?
前馈:想象一下 1960 年的 IBM 计算机,大到填满整个房间,穿孔卡片从一端输入,答案从另一端输出。上文提到的神经网络以前三个调查问题的数据作为输入,得出预测结果;
全局最小值:想象一下桌子上有一个黄色的碗(如上图所示)。桌子表面表示几乎零误差的完美预测结果,那么很显然碗底是最接近完美预测结果的位置,具备最小的误差。与碗整个表面(即「全局表面」(global surface))相比,碗底最接近完美,它具备全局最小误差值。
反向传播:想象一位杂技表演者,他能向空中抛接 16 个不同大小和重量的保龄球瓶,并使它们同时悬在空中,甚至可以神奇地调整保龄球瓶的大小和重量。网络在执行预测后,会返回到上一次预测的过程中,查看是否可以做一些调整,以便在下一次预测中缩小误差,推动小球向碗底前进。
梯度下降:想象粉色乒乓球沿着碗侧向碗底滚落,碗底即全局最小值(见上图)。网络就像那个球,碗的表面由网络的每一次预测构成。梯度下降就是球沿着碗侧滚落向碗底(即具备全局最小误差的预测)的过程。
梯度下降是网络在达到准确预测(即全局最小误差)前的试错过程,就像乒乓球滚落碗底的过程;
前馈即执行预测。预测就像给定时刻球停留在碗表面某个位置的定格图像;
全局最小值即预测几乎没有误差的完美位置(碗底)。我们的目标是到达碗底。网络将预测结果与真值进行对比,来衡量球目前位置与碗底的距离(误差);
反向传播即返回到上一次预测,找出错误并修正。反向传播衡量球现在位置到其下桌面的距离(即误差),并找出推动球向碗底前进的方法。
图源:https://www.youtube.com/watch?v=IHZwWFHWa-w&t=2s&index=3&list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi
关于前馈的迷人童话
关于前馈的美丽画作
为什么矩阵乘法是前馈的引擎
你到达的地方,即当前位置(l2);
你距离城堡的距离 (l2_error);
要想提高对明天旅程更接近城堡的信心,你需要做出的方向改变 (l2_delta)。
将它转换为统计概率;
将概率转换为置信度;
对突触进行或大或小的调整;
该调整(几乎)总是朝着提升置信度和准确率的方向,从而降低 l2_error。
尝试:网络执行 6 万次前馈,即尝试 6 万次不同的特征问题组合,只为输出最佳的预测结果;
错误:网络将目前的预测与真值进行对比,找出误差;
学习:网络使用置信度(梯度下降)找出下一次迭代需要在正确的方向上做出多少改变,即 delta。然后网络使用新的 delta,并将它乘以旧的 l1 或 l2,然后将乘积加在旧的 syn0 或 syn1 上。你明白为什么说突触是神经网络的大脑了吗?它们在试错中学习,和人类一样。
和前文图一样的白色圆圈,从左至右表示蝴蝶效应;
图下方方框中是反向传播链式法则中的变化率。这些方框从右至左反向移动,即最右方的变化率改变会通过其他变化率最终影响到最左侧的变化率。
彩色箭头起连接作用。
x_current 是前馈计算出的 l2——0.5;
y_current 是 y-l2 = 1-0.5 = 0.5,即 l2_error;
x_nearby 是我们举的一个简单例子。如果 l2 为 0.6,距离 x_current(0.5)较近,则 y-0.6 = 0.4;
也就是 x_nearby = 0.6,y_nearby = 0.4;
知道这四个变量后,计算就很简单了,坡度即敏感度= -1;
这意味着 l2 每增加 0.1,l2_error 就减 0.1。
当你试着根据记忆写出代码时,你发现你忘记的地方恰好是不理解的地方。全部理解后,所有代码会永远存在你的大脑中;
这些代码是构建所有深度学习网络的基础。掌握了这些代码,你以后学习每一个网络、每一篇论文都会更加清晰和简单。
领取专属 10元无门槛券
私享最新 技术干货