機器學習回顧篇(2):最小二乘法

1 引言

在機器學習經常使用的優化算法中,梯度降低法和最小二乘法佔盡了風騷。梯度降低法上一篇中已經詳細介紹過了,那麼這一篇,咱們繼續說一說最小二乘法。html

2 什麼是最小二乘法

描述預測模型準確程度有多重不一樣的方法:算法

(1)偏差和最小化。這種方法存在的問題是正負偏差會相互抵消,致使描述不許確。機器學習

(2)偏差絕對值最小化。這個方法在描述上面有問題,可是計算機上運算很複雜。函數

(3)偏差平方和最小化。這也是最小二乘法根本思想所在,不只有效避免正負偏差抵消,並且運算上也簡單。學習

在字面上,咱們將「最小二乘」拆分紅兩個詞語,就是「最小」和「二乘」。其中,「二乘」指的就是以平方的方式來衡量預測值與實際值之間的差別,也就是偏差平方。「最小」就好理解了,就是說預測模型中各參數要使得預測值與實際值之間的偏差平方和最小。優化

要說最小二乘法的定義,總結多方面資料,我認爲分爲兩派:spa

一類是廣義上的最小二乘法。這一類的最小二乘法泛指全部使用均方偏差和方法來衡量差別程度進而求最優值得方法,這一類方法並不關注如何求最優解,只要使用了均方偏差和做爲目標函數,就算法最小二乘法,從這種角度來講,最小二乘法是一種優化思想,而梯度降低法只是最小二乘法的一個分支,一種具體實現。htm

另外一派是狹義上的最小二乘法:這一類的最小二乘法不但使用均方偏差和最爲目標函數,且在求最優解時使用的是對應推導出的矩陣運算解法。blog

本文中,指的是狹義上的最小二乘法。get

3 求解過程

最小二乘法具體怎麼求解呢?咱們先以一元線性模型爲例來講明。

假設有一組數據$X=\{({{x}_{1}},{{y}_{1}},\cdots ,({{x}_{m}},{{y}_{m}})\}$,咱們但願求出對應的一元線性模型來擬合這一組數據:

\[y={{\beta }_{0}}+{{\beta }_{1}}x\]

既然要擬合,總要有一個擬合程度高低的判斷標準,上文說到,最小二乘法中使用的就是偏差平方和方法,因此,這時候損失函數,或者說咱們的目標函數就是:

\[J(\beta )=\sum\limits_{i=0}^{m}{{{({{y}_{i}}-{{\beta }_{1}}{{x}_{i}}-{{\beta }_{0}})}^{2}}}=\sum\limits_{i=0}^{m}{{{(f({{x}_{i}})-{{\beta }_{1}}{{x}_{i}}-{{\beta }_{0}})}^{2}}}\]

有了這個目標函數,咱們要作的就是求出${{\beta }_{0}}$${{\beta }_{1}}$使得$J(\beta )$最小,在這裏就是極小值。

上一篇中咱們說到,求極值的一個很好的方法就是求導,在這裏由於有多個參數,因此,咱們要分別對${{\beta }_{0}}$${{\beta }_{1}}$求偏導:

\[\frac{\partial J(\beta )}{\partial {{\beta }_{1}}}=\sum\limits_{i=0}^{m}{2({{y}_{i}}-{{\beta }_{1}}{{x}_{i}}-{{\beta }_{0}})(-{{x}_{i}})}=2\sum\limits_{i=0}^{m}{({{\beta }_{1}}x_{i}^{2}-{{\beta }_{0}}{{x}_{i}}-{{x}_{i}}{{y}_{i}})}\]

\[\frac{\partial J(\beta )}{\partial {{\beta }_{0}}}=\sum\limits_{i=0}^{m}{2({{y}_{i}}-{{\beta }_{1}}{{x}_{i}}-{{\beta }_{0}})(-1)}=2\sum\limits_{i=0}^{m}{({{\beta }_{1}}{{x}_{i}}+{{\beta }_{0}}-{{y}_{i}})(-1)}=2(m{{\beta }_{1}}\frac{\sum\limits_{1}^{m}{{{x}_{i}}}}{m}+m{{\beta }_{0}}-m\frac{\sum\limits_{1}^{m}{{{y}_{i}}}}{m})\]

由於$\bar{x}=\frac{\sum\limits_{1}^{m}{{{x}_{i}}}}{m}$,$\bar{y}=\frac{\sum\limits_{1}^{m}{{{y}_{i}}}}{m}$, 因此,上面第二個,也就是對${{\beta }_{0}}$的偏導能夠轉化爲:

\[\frac{\partial J(\beta )}{\partial {{\beta }_{0}}}=2(m{{\beta }_{1}}\bar{x}+m{{\beta }_{0}}-m\bar{y})\]

咱們知道,目標函數取得極值時,偏導必定是等於0的,因此,咱們令$\frac{\partial J(\beta )}{\partial {{\beta }_{0}}}$等於0,因而有:

\[2(m{{\beta }_{1}}\bar{x}+m{{\beta }_{0}}-m\bar{y})=0\]

\[{{\beta }_{0}}=\bar{y}-{{\beta }_{1}}\bar{x}\]

接着,咱們繼續回到上面第一個偏導,也就是對${{\beta }_{1}}$的偏導$\frac{\partial J(\beta )}{\partial {{\beta }_{1}}}$,令$\frac{\partial J(\beta )}{\partial {{\beta }_{1}}}=0$,並將${{\beta }_{0}}=\bar{y}-{{\beta }_{1}}\bar{x}$代入,得:

\[2\sum\limits_{i=0}^{m}{({{\beta }_{1}}x_{i}^{2}-(\bar{y}-{{\beta }_{1}}\bar{x}){{x}_{i}}-{{x}_{i}}{{y}_{i}})}=0\]

在這一等式中,只有${{\beta }_{1}}$是位置數,因此,咱們能夠很簡單得經過移項求解,最終可得:

\[{{\beta }_{1}}=\frac{\sum\limits_{1}^{m}{({{x}_{i}}-\bar{x})({{y}_{i}}-\bar{y})}}{\sum\limits_{1}^{m}{{{({{x}_{i}}-\bar{x})}^{2}}}}\]

這就是${{\beta }_{1}}$代入${{\beta }_{0}}=\bar{y}-{{\beta }_{1}}\bar{x}$,就能夠求得${{\beta }_{0}}$,這樣,${{\beta }_{0}}$${{\beta }_{1}}$就都求出來了。

繼續,咱們嘗試求解更通常化的多元線性狀況。對於多元的狀況,須要使用矩陣運算來求解,先用矩陣表示:

\[X\beta =y\]

其中,$X=\left[ \begin{matrix}
   1 & {{x}_{12}} & \cdots  & {{x}_{1m}}  \\
   1 & {{x}_{22}} & \cdots  & {{x}_{2m}}  \\
   \cdots  & \cdots  & \cdots  & \cdots   \\
   1 & {{x}_{n2}} & \cdots  & {{x}_{nm}}  \\
\end{matrix} \right],\beta =\left[ \begin{matrix}
   {{\beta }_{0}}  \\
   {{\beta }_{1}}  \\
   \cdots   \\
   {{\beta }_{m}}  \\
\end{matrix} \right],y=\left[ \begin{matrix}
   {{y}_{0}}  \\
   {{y}_{1}}  \\
   \cdots   \\
   {{y}_{n}}  \\
\end{matrix} \right]$

 目標函數:

\[J(\beta )={{\sum\limits_{i=1}^{m}{\left| {{y}_{i}}-\sum\limits_{j=1}^{n}{{{x}_{ij}}{{\beta }_{j}}} \right|}}^{2}}={{\left\| y-X{{\beta }^{T}} \right\|}^{2}}\]

要求最佳擬合模型,也就是令上面目標函數最小,即爲0:

\[y-X{{\beta }^{T}}=0\]

移項得:

\[y=X{{\beta }^{T}}\]

\[{{({{X}^{T}}X)}^{-1}}{{X}^{T}}y={{({{X}^{T}}X)}^{-1}}{{X}^{T}}X{{\beta }^{T}}\]

最終得到解:

\[{{\beta }^{T}}={{({{X}^{T}}X)}^{-1}}{{X}^{T}}y\]

能夠看出,對於通常的最小二乘法多元求解,使用矩陣運算便可,都不須要迭代 。

4 最小二乘法與梯度降低法

經過上面推導可知,最小二乘法能夠矩陣運算求解,這種方法十分方便快捷,但這種方法不是萬能的,由於矩陣運算求解的條件時矩陣$X$能夠,但在不少非線性模型中,就未必可逆了,這時候矩陣運算求解就行不通,這時候就能夠經過梯度降低法求最優解。來具體說說這兩種方法的區別:

5 總結

最小二乘法是機器學習中經常使用的優化算法,解釋性強,求解方便快捷,但對噪聲數據過於敏感,且只適用於線性模型,對於非線性模型,可結合梯度降低法等方式使用。

參考:

https://www.datalearner.com/blog/1051539312290417

http://www.javashuo.com/article/p-ztqmblkh-bu.html

相關文章
相關標籤/搜索