机器学习总结(一)
快找工作了,之前學的知識感覺太零碎,自問面試的時候能不能對答如流,覺得沒什么底氣。所以準備將之前所學做一個系統的總結,既是對所學知識的升華,也可以幫助初學者理清一個思路。那就從最簡單的線性模型開始吧。
線性模型
線性回歸
首先解釋一下什么叫回歸,給定一個點集,能夠用一條曲線,平面,或者超平面去擬合。這個過程就叫回歸,如果是用來擬合的是直線,就叫線性回歸,如果是一條二次曲線就叫二次回歸。機器學習可以通過這些點,學習出一條曲線或平面,超平面,來預測未知數。而直線又可以用方程表示,所以這個過程就變為了求參數的過程。我們就需要一個函數來評估預測結果的好壞,從而學習參數,這個函數就是損失函數。在線性回歸里,我們采用歐氏距離作為損失函數。公式如下:
?
下面我們來解釋下這兩個公式其中公式(2)表示的是一個線性函數模型,它輸入是n個特征,從而預測出一個值。y是這些特征x對應的真實輸出。然后公式(1)里面的是一個包含了公式(1)里面所有x的一個向量。i是第i個樣本的意思,總共有m個樣本,一個樣本它包括了n個特征。為了讓預測值盡可能的接近實際值。所有我們要做的就是最小化公式(1)。有兩種方法:
1.最小二乘法。
2.梯度下降法。
這一理解的集幾何解釋,如圖,圖中輸入是一個特征即房子的尺寸。直線就是要擬合出來的直線。
下面我們來求解,先用最小二乘法的方法:
我們知道求一個凸函數的極值的方法是,對x求導另其等于0。我們這里是要求θ的值,所以就對θ求偏導數。我們首先從簡單的例子入手,假設只有一個特征,總共有m個樣本。
但是一般情況下都不止一個特征x,有多個特征,這稱為多元線性回歸。所以我們也要知道向量表示時的推導公式,如下:
上面的推導用到了一些矩陣論里的公式,這里列出來:
這樣我們的最小二乘法完成了。我們觀察上面的結果,就會發現這個算法的兩個缺點:
首先它要求的逆矩陣,要求逆,矩陣必須滿秩,因為求逆矩陣就要求行列式,不滿秩的矩陣行列式為零,沒辦法做分母。而顯然不一定滿秩,為了解決這個問題,統計學家引入里嶺回歸的概念。即在上加一個I從而使得矩陣非奇異,其中矩陣I是一個n*n的單位矩陣,對角線上全為1,其他元素為0. 而是用戶自己定義的。公式就變為:
嶺回歸最先用來處理特征數多于樣本數的情況,現在用于在估計中加入偏差,從而得到更好的估計。這里通過引入來限制所有θ的和,通過引入該懲罰,能夠減少不重要的參數,相當于引入正則化項。在統計學里這個技術叫縮減(shrinkage)。
縮減可以去掉不重要的參數。
第二個缺點就是計算量太大,求逆本來就是一個計算量特別大的事情,如果數據集X很大,那么計算量就會很大很大。
參考
https://blog.csdn.net/xierhacker/article/details/53257748
既然最小二乘法存在這些缺點,我們在適當的時候就可以用梯度下降法代替。梯度下降法,是用一種迭代的方法來不斷趨近最優解,為了高效,所以我們就選擇函數值變化最快的方向,那就是梯度方向。α為步長,就決定了朝著這個方向每次邁的步子有多大。怎么求梯度呢,我們就要對θ向量里面的每個分量求偏導,然后更新對應的θ值。那么梯度下降法呢通常會有兩種方法。一種是批量梯度下降法,這個方法計算量比較大,因為它每次都遍歷了所有的數據集。比較適合較小的數據集。還有一種是隨機梯度下降法。它每次只用一個樣本的梯度來更新參數,計算速度快,在深度學習里面隨機梯度下降法用的較多。
總結
- 上一篇: 陶哲轩实分析 4.4 节习题试解
- 下一篇: 计算机辅助工程试卷,《计算机辅助工程软件