写在前面:
在前一篇文章中我们介绍了 梯度下降,当时的描述采用的是 代数的形式。但是,很多时候我们会更倾向于用 矩阵 来描述。
主要涉及到一定的矩阵分析的基础知识,尤其是 矩阵求导 方面的知识。
留一个传送门:闲话矩阵求导,介绍了有关矩阵求导的基础知识。
自己也是刚做一些了解,主要是做一下笔记,还望各位前辈海涵,多多指教。
梯度下降的矩阵描述:
首先,对于输入矩阵为
的矩阵:

——图片来源:https://blog.csdn.net/qq_41670466/article/details/89053810
所以预测值为:

——图片来源:https://blog.csdn.net/qq_41670466/article/details/89053810
因此,预测值与真实值
之间的均方误差为:
注:乘上是为了后面求导的方便
接着,对这个式子进行化简:
首先,根据,可得:
接着,根据矩阵转置的相关性质:
对式子的括号进行展开,得:
然后,我们对其进行梯度下降处理:
接着,利用 矩阵迹函数的技巧,将上面的等式转换为:
-
对于第四项
,结果为零矩阵。
-
对于第三项
,将其转换为
。
-
对于第二项
,与第三项相等,结果也为
。
-
对于第一项
,利用公式
,将该公式中的
看成单位矩阵,从而可以忽略;将该公式中的
看成
,
看成
。因此,求得第一项最终为:
。
最终,求得原来式子的结果为:
因此,最后参数的更新表达式为:
其中为学习率。
关于迹函数的技巧,可以参考:
写在最后:
参考资料:
学无止境!!!
网友评论