用Excel体验梯度下降法

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

 作者:气象学渣

 来源:气象学渣

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

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

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

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

那么该怎么猜,随机瞎猜肯定不是这么回事儿,神经网络动辄千百万参数,不现实。那是否可以以什么方向猜呢,答案就是梯度!

梯度是一种特别的导数,其为函数空间中某一位置上最大的方向导数,意味着沿着梯度方向移动单位距离函数值增加最大。在三维直角坐标系中,其向量可由各方向上的偏导数表示:

由于在前向计算过程中训练样本可视为不发生变化,那么模型的损失仅与模型参数有关,可以认为损失是参数的函数L,让损失最小化的问题亦转变为求函数L极小值的问题。

而极小值点本身二阶导数为零,大于极小值点时,导数为正,函数单调递增;小于极小值点时,导数为负,函数单调递减,因此不管当前是否在极小值点的左侧或右侧,我们只需沿着梯度的相反方向挪动一小步就能更靠近极小值一点(步伐通过学习率设定)。

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

---— 2.Excel实例 —---

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

输入完毕后使用Excel填充功能,批量生成2000个样本并训练优化,如图:

最后使用Excel绘制参数和损失训练过程中的演变曲线。可以看出参数收敛于事先设定的系数,而损失收敛于零。有兴趣的童鞋可以试试修改学习率和初始参数值,看看对结果有什么影响,或者加上链式求导构造一个简单的神经网络(MLP)。


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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值