李沐深度学习笔记D3-基础的优化方法
计算梯度(梯度下降)
上章讲了除了线性模型有最优解外,大部分复杂的模型都不能得出最优解,我们可以用最前面的一个知识来寻找更优解,这个知识就是梯度下降,具体可以回看我之前的文档,一个曲线的梯度向量,代表偏离当前曲线发展趋势最大的方向,那么想要最优解,就要使梯度下降。
这里引入一个名词参数:学习率 = 学习的步长
每走一步,执行一次梯度计算,再调整参数看如何能使梯度下降。
所以学习率不能太小,因为太小就代表需要计算梯度的次数变多,会消耗更多性能;但也不能太大,太大可能导致数据失真;
最常用梯度下降版本:小批量梯度下降
为什么不直接计算梯度,原因是每次计算梯度都要求全部数据的训练损失率,成本很高。
我们可以使用随机小批量的样本数据,求平均值,这样来降低计算成本,这就是小批量梯度下降
批量不应太小,太小可能会使模型训练使用的gpu性能浪费,也不应太大,太大内存消耗太大
总结

- 求梯度的过程其实就是求导的过程,而我们的深度学习框架中集成了帮我们自动求导的函数,所以我们经常不需要关心具体的求导逻辑,只需要使用就可以了。
- 为了控制成本,我们会进行小批量随机计算梯度,并用梯度下降的方向进行模型的优化
- 批量的大小和学习率的设置要适度,后续会具体学习如何设置合适的批量大小和学习率
