关于用gradient descent 解决graphical model (这里指matrix factorization)的问题

1,根据graphical model,写出distribution之间的关系,找出要minimizeobjective function,假设functionf, 对应的要解决的matrixUV

2,f 分别对 UV求解偏导数,得到 pian_f/pian_U, pian_f/pian_V 则根据求解出来的公式更新 pian_Upian_V

3,pian_U pian_V一起进行normalize, 方法是假设 uu_ij,和vv_ijpian_Upian_V的项,则 pian_norm = sqrt(uu_ij^{2} + vv_ij^{2})对于所有的项,然后根据pian_normuu_ijvv_ij normalize uu_ij = uu_ij/pian_norm

4,然后用normalize过的pian_Upian_V来更新U, V, uij = uij – alpha * pian_uij

5,然后迭代这个过程来更新UV

 

 

关于alpha (step size)

alpha可以动态变,当往对的方向走可以*1.1,当往错的方向走可以*0.8,当然数字可以取其他的,最好不对称,并且要给alpha设个upper boundlower bound

 

停止条件,列举两种

1,   根据objective function前后变化的绝对值,比如abs(diff) < 10的次数出现10次,程序停止

2,   根据testing datamaermse的值进行变化

你可能感兴趣的:(function,Matrix,testing)