最近一直接触随机梯度下降算法,有了一点了解,本博客只为自己能够更好的理解SGD,如有雷同请原谅。
梯度下降的出现只为了评估所建模型的好与坏,为了更好地向最佳的模型前进,需要不断修改模型中的参数,而此时就出来了SGD,它指导我们寻求更好的参数。
给定样本(X,Y),如X=(X1,X2,X3),X1=(x11,x12), X2=(x21,x22),X3=(x31,x32);Y=(Y1,Y2,Y3) Y1=(y11),Y2=(y21),Y3=(y31). 我们需要拟合出X,Y之间的函数关系,此时,我们建立方程如下:
H(xi,xj;a,b)=a*xi+b*xj;
我们的目的是对于每一对(xi,xj),H(xi,xj)尽可能地接近对应的y。
建立损失函数:
分别对a,b 求偏导数,可以得到:
流程如下:
1给定样本(如上),a,b的初始值,
2更新a,b 如下:
3,直到a,b不在变化。