1. 程式人生 > >Machine Learning week 4 總結

Machine Learning week 4 總結

Multivariate Linear Regression

問題可以由函式表示

函式,本質上就是兩集合的一種對映關係,從輸入值,得到輸出值。同時函式,也是現實世界的一種抽象表示,就如原因對應結果,事件A對應事件B。通常我們只要給一個問題建立起比較好的數學模型,就能很方便的通過計算機來解決這個問題,比如通過一個某地房屋面積與房價關係的數學模型,計算出該地某一房屋的價格。又或者通過模型,根據某一就診者體內腫瘤的大小,判斷其是良性還是惡性。

今天先來看看回歸,就像線性迴歸,其實就是通過樣本去擬合出一個最符合樣本分佈的函式,藉此來泛化的根據新的輸入值去預測輸出值。

根據泰勒公式可知,在一定條件下,各種函式,可以泰勒展開為多項式表示,因此這也代表了我們可以直接用多項式去作為假設函式。

Gradient Descent for Multiple Variables

計算出假設函式這個多項式的引數,得出假設函式

擬合最符合樣本分佈的多項式函式,其實就是函式最優化的一個過程,比如通過最小二乘法(根據樣本計算的函式值於真實值之差的平方和最小),使得costFunction(損失函式)最小即可。說到最優化,也就是求極致,首先損失函式需要有最小值,這就得保證函式是凸函式(什麼是凸函式還不完全清楚),在此基礎上,根據高等數學,我們知道可以通過導數為零來求得區域性和全域性最優解。不過對有些非常複雜的函式,導數為零的解可能會十分難求,因此在機器學習中,我們使用梯度下降演算法,來求損失函式的區域性或全域性最優解。

梯度下降演算法求引數θ,原理部分

其實在引數估計過程中,因為樣本的輸入值X和實際值Y是已知的,而我們要求的是X的引數θ的最優解,因此這個函式其實相當於是一個損失函式costFunction以引數θ為變數的函式,然後求解使得costFunction最小的θ值。

損失函式的最小值通過數學的方法可能不太好直接通過一個表示式計算出來,想當然的,我們可以利用計算機的優勢,計算出所有點的損失函式,然後找出最小值及其對應的θ就可以了。但是,全部計算肯定計算量不會小,因此就有了更好的方法。這裡引入梯度的概念。梯度按照我的理解,基本上就是函式在該點上升/下降最快的方向,就像是一個山坡上最陡峭的方向一樣。

因為函式在梯度方向上下降速度最快,因此關於θ的costFunction,我們只要不斷沿著梯度下降的方向改變θ,就可以一條線的以最快的方法找出最小的costFunction及其對應的θ值了,只要costFunction是平滑的,我們不斷沿著梯度下降的方向減小θ的值,直到梯度趨於0,就得到了區域性最優解。(對於多元損失函式,我們只要給其關於每一個分量求偏導,就是在那個分量方向上的梯度了,我是這麼理解的?)

梯度下降演算法實現,公式部分

損失函式:

因為對LaTeX語法不熟,就先不寫損失函數了,1/m之後的部分為損失函式關於θj的偏導數。因為當損失函式接近最小值時,其各個分量的偏導都趨於0,因此此時θj也會收斂,此時的θ就是損失函式最小時的θ。

梯度下降演算法