实用机器学习笔记十三:随机梯度下降
前言:
本文是个人在 B 站自学李沐老师的实用机器学习课程【斯坦福 2021 秋季中文同步】的学习笔记,感觉沐神讲解的非常棒 yyds。
小批量随机梯度下降(mini-batch stochastic gradient descent(SGD)):
前面介绍了线性模型的两个实例和优化目标,本小节介绍如何求解线性模型,线性模型求解的方法有很多,甚至可以直接写出显式解。但是本文要介绍的是随机梯度下降。为什么介绍小批量随机梯度下降呢?这是因为在深度学习领域,这个方法可能是目前唯一可以求解的方法了。
通过 mini-batch 的 SGD 方法训练
表示模型参数(包含权重参数和偏置项),代表 batch size(也就是 mini-batch 的大小),表示在时刻的学习率。
随机初始化权重
Repeat 直到收敛
随机从训练集中(训练集的大小为 n 个样本)抽样训练数据,且样本数量为 b
梯度下降并更新权重,梯度下降就是朝着使函数值最大的方向更新,因为我们是要最小化损失,因此前面加上负号。
优点:除了决策树可以解决几乎所有的目标函数
缺点:对超参数的大小非常敏感,比较玄学。这里的都是超参数。
总结:
线性模型就是把输入进行线性加权求和去预测输出
在线性回归中用均方误差(MSE)作为损失函数
在 softmax 回归中,把 cross-entrapy 作为损失函数
mini-batch SGD 可以解决以上两个模型,在深度学习中几乎都用此方法解决
代码示例:
代码是李沐老师动手学深度学习的配套代码。地址:http://d2l.ai/chapter_linear-networks/linear-regression-scratch.html
主要代码如下:
版权声明: 本文为 InfoQ 作者【打工人!】的原创文章。
原文链接:【http://xie.infoq.cn/article/aa9b4e0293b203634b6827c4f】。文章转载请联系作者。
评论