cod*_*her 4 machine-learning linear-regression stochastic gradient-descent
我的数据集具有m
要素和n
数据点。设w
一个向量(待估计)。我正在尝试使用随机更新方法来实现梯度下降。我的最小化功能是least mean square
。
更新算法如下所示:
for i = 1 ... n data:
for t = 1 ... m features:
w_t = w_t - alpha * (<w>.<x_i> - <y_i>) * x_t
Run Code Online (Sandbox Code Playgroud)
其中<x>
是要素的原始向量m
,<y>
是真实标签的列向量,并且alpha
是一个常数。
我的问题:
现在根据Wiki,我不需要遍历所有数据点,并且当错误足够小时我可以停止。是真的吗
我不明白这里应该是什么停止标准。如果有人可以帮助您,那就太好了。
使用此公式-我使用的公式for loop
正确吗?我相信(<w>.<x_i> - <y_i>) * x_t
是我的?Q(w)
。
现在根据Wiki,我不需要遍历所有数据点,并且当错误足够小时我可以停止。是真的吗
当您拥有非常庞大的训练集并且遍历所有数据点非常昂贵时,尤其如此。然后,您将在K个随机更新之后(即在处理了K个训练示例之后)检查收敛准则。尽管有可能,但通过少量培训就可以做到这一点。人们要做的另一件事是使训练示例的处理顺序随机化,以避免原始文档中包含过多的相关示例,而这可能导致“伪”收敛。
我不明白这里应该是什么停止标准。如果有人可以帮助您,那就太好了。
有一些选择。我建议尝试尽可能多的方法,并根据经验结果做出决定。
有了这个公式-我在for循环中使用过-是否正确?我相信(w.x_i-y_i)* x_t是我的?Q(w)。
它应该是2 *(w.x_i-y_i)* x_t,但这并不是什么大问题,因为无论如何您都要乘以学习率alpha。
归档时间: |
|
查看次数: |
5952 次 |
最近记录: |