关于-η▽J在批量梯度下降法和在随机梯度下降法的理解

来源:6-6 随机梯度下降法

weixin_慕勒6286300

2022-03-09

这些理解在批量梯度下降法和随机梯度下降法应该是一样的:η是步长,▽J是梯度(也就是dJ_sgd、dJ求出来的导数),-η▽J加了负号是因为▽J的本身方向为损失函数J增大而不是减小最快的方向

在批量梯度下降法中,▽J的分子aJ分别是θ0独自变化而θ1-θn不变时相应的损失函数J的变化值、θ1独自变化而θ0以及θ2-θn不变时相应的损失函数J变化值,以此类推

在随机梯度下降法中,▽J的分子aJ分别是θ0独自变化而θ1-θn不变时相应的损失函数J的变化值,但这个损失函数只是随机一个样本的预测值与真值之间的差距(在这有个问题,如果是基于一个样本的差距,那么这个差距是乘以m才等于一个aJ?

辛苦老师看看以上我的理解有没有问题,以及看看我提出的疑问

图片描述

写回答

1回答

liuyubobobo

2022-03-09

前两段话理解正确。


==========


在这有个问题,如果是基于一个样本的差距,那么这个差距是乘以m才等于一个aJ?


这里显示你对梯度的理解有一定的问题。梯度是一个方向,没有“量”的概念。量的大小不影响梯度方向。随机梯度下降法靠一个样本计算出方向;批量梯度下降法靠所有的样本找方向;这一章最后我也会提及小批量梯度下降法,你可以根据任意 k 个样本找方向。


他们的区别是找到的方向是否“准确”。用所有的样本找到的方向,一定是梯度下降最快的那个方向;用一个样本找到的方向,甚至可能是梯度上升的方向(只不过多次以后,也会像梯度下降的方向收敛而已);相应的用 k 个样本找到的方向,就会比只用一个样本找到的方向更准确。但与准确率相对应的“代价”,就是性能。用所有的样本计算梯度会比较慢;用一个样本计算梯度会很快。


计算加油!:)


0
0

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5911 学习 · 2455 问题

查看课程