打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
用Excel体验梯度下降法

公众号后台回复“图书“,了解更多号主新书内容

 作者:气象学渣

 来源:气象学渣


梯度下降法是目前神经网络训练过程中最为核心的算法之一,配合链式求导可实现误差在神经网络中的反向传播,更新参数,优化模型。由于大部分深度学习框架事先将其进行了封装,使其使用起来变得相方便。

但这也直接导致了我们对其原理与实现过程缺乏直观的感受,本篇借助Excel实现梯度下降法求解二元线性方程,并绘图呈现优化过程,以进一步加深理解。

---— 1.基础知识 —---

整个求解过程与神经网络相似:选择一个合适的损失函数,通过学习大量样本,不断优化模型参数,逐渐'猜测'出样本特征与样本标签之间的关系与规律,使得模型输出与标签之间的损失最小。

那么该怎么猜,随机瞎猜肯定不是这么回事儿,神经网络动辄千百万参数,不现实。那是否可以以什么方向猜呢,答案就是梯度!
梯度是一种特别的导数,其为函数空间中某一位置上最大的方向导数,意味着沿着梯度方向移动单位距离函数值增加最大。在三维直角坐标系中,其向量可由各方向上的偏导数表示:
由于在前向计算过程中训练样本可视为不发生变化,那么模型的损失仅与模型参数有关,可以认为损失是参数的函数L,让损失最小化的问题亦转变为求函数L极小值的问题。
小值点本身二阶导数为,大于极小值点时,导数为正,函数单调递增;小于极小值点时,导数为负,函数单调递减,因此不管当前是否在极小值点的左侧或右侧,我们只需沿着梯度的相反方向挪动一小步就能更靠近极小值一点(步伐通过学习率设定)。

当函数维度增加,则目标变成寻找更高维空间的极小值点。以三维空间为例,该过程就好比从山上下山一样,总是寻找当前脚下四周最陡峭的地方落脚,这样下山当然最快了。

---— 2.Excel实例 —---
假定所求二元线性方程为:Y=2X1+3X2+3,新建一个excel工作表,并按下列两表格中单元格位置输入对应内容。为方便求导,损失取均方误差的1/2。

输入完毕后使用Excel填充功能,批量生成2000个样本并训练优化,如图:
最后使用Excel绘制参数和损失训练过程中的演变曲线。可以看出参数收敛于事先设定的系数,而损失收敛于零。有兴趣的童鞋可以试试修改学习率和初始参数值,看看对结果有什么影响,或者加上链式求导构造一个简单的神经网络(MLP)。


您的关注是对小渣莫大的鼓舞

点击下方二维码添加订阅,下期再会咯!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
深度学习三十问!一位算法工程师经历30+场CV面试后总结的常见问题合集(含答案)
神经网络你了解多少?今天我们来深度了解一下.....
03_反向传播算法(BP算法)· 原理+演算
统计学学习方法二
XGBoost详解
人工智能神经网络中的基础概念有哪些?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服