机器学习矩阵求导
矩陣求導好像讀書的時候都沒學過,因為講矩陣的課程上不講求導,講求導的課又不提矩陣。如果從事機器學習方面的工作,那就一定會遇到矩陣求導的東西。維基百科上:http://en.wikipedia.org/wiki/Matrix_calculus?, 根據Y與X的不同類型(實值,向量,矩陣),給出了具體的求導公式,以及一堆相關的公式,查起來都費勁。
其實在實際的機器學習工作中,最常用到的就是實值函數y對向量X的求導,定義如下(其實就是y對向量X的每一個元素求導):
實值函數對矩陣X求導也類似:
因為機器學習(這里指的是有監督的機器學習)的一般套路是給定輸入X,選擇一個模型f作為決策函數,由f(X)預測出Y'。而得到f的參數θ(往往是向量),需要定義一個loss函數(一般都是實值函數),描述當前f預測值Y'與實際的Y值的接近程度。模型學習的過程就是求使得 loss函數 L(f(X),Y)最小的參數θ。這是一個最優化問題,實際應用中都是用和梯度相關的最優化方法,如梯度下降,共軛梯度,擬牛頓法等等。
其實只要掌握上面這個公式,就能搞定很多問題了。
為了方便推導,下面列出一些機器學習中常用的求導公式,其中andrew ng那一套用矩陣跡的方法還是挺不錯的,矩陣的跡也是實值的,而一個實數的跡等于其本身,實際工作中可以將loss函數轉化成跡,然后在求導,可能會簡化推導的步驟。
以上只是一些最基本的公式,能夠解決一些問題,主要是減少大家對矩陣求導的恐懼感。關于矩陣方面的更多信息可以參考上面的wiki鏈接以及《Matrix cookbook》(感謝?@王樹森 CS?推薦)。
分享:
其實在實際的機器學習工作中,最常用到的就是實值函數y對向量X的求導,定義如下(其實就是y對向量X的每一個元素求導):
實值函數對矩陣X求導也類似:
因為機器學習(這里指的是有監督的機器學習)的一般套路是給定輸入X,選擇一個模型f作為決策函數,由f(X)預測出Y'。而得到f的參數θ(往往是向量),需要定義一個loss函數(一般都是實值函數),描述當前f預測值Y'與實際的Y值的接近程度。模型學習的過程就是求使得 loss函數 L(f(X),Y)最小的參數θ。這是一個最優化問題,實際應用中都是用和梯度相關的最優化方法,如梯度下降,共軛梯度,擬牛頓法等等。
其實只要掌握上面這個公式,就能搞定很多問題了。
為了方便推導,下面列出一些機器學習中常用的求導公式,其中andrew ng那一套用矩陣跡的方法還是挺不錯的,矩陣的跡也是實值的,而一個實數的跡等于其本身,實際工作中可以將loss函數轉化成跡,然后在求導,可能會簡化推導的步驟。
以上只是一些最基本的公式,能夠解決一些問題,主要是減少大家對矩陣求導的恐懼感。關于矩陣方面的更多信息可以參考上面的wiki鏈接以及《Matrix cookbook》(感謝?@王樹森 CS?推薦)。
分享:
總結
- 上一篇: mysql初级数据库_MYSQL初级数据
- 下一篇: 【OpenCV 例程200篇】52. 图