線性回歸(linear regression)
先看個例子,比如,想用面積和卧室個數來預測房屋的價格
訓練集如下
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yN4YTM2kzN1AzNzcTM2IzLcNDM0EDMy8CXzUzNyEzMvw1ZvxmYvwVbvNmLn9GbiRXauNmLzV2Zh1Wavw1LcpDc0RHaiojIsJye.png)
首先,我們假設為線性模型,那麼hypotheses定義為
其中x1,x2表示面積和#bedrooms兩個feature
那麼對于線性模型,更為通用的寫法為
其中把θ和x看成向量,并且x0=1,就可以表示成最後那種,兩個向量相乘的形式
那麼線性回歸的目的,就是通過訓練集找出使得誤差最小的一組參數θ(稱為學習)
為了可以量化誤差,定義損失函數(cost function)
比較好了解,就是訓練集中所有樣本點,真實值和預測值之間的誤差的平方和
其中1/2是為了後面計算友善,求導時會消掉
是以我們目的就是找到θ使得j(θ)最小,這就是最小二乘法(最小平方)
看似很容易了解,可是為什麼要使用最小二乘來作為損失函數,為何不是內插補點的絕對值,或4次方?
後面會給出基于機率最大似然的解釋
梯度下降(gradient descent)
為了求解這個最優化問題,即找到θ使得j(θ)最小,可以有很多方法
先介紹梯度下降法
這是一種疊代方法,先随意選取初始θ,比如θ=0,然後不斷的以梯度的方向修正θ,最終使j(θ)收斂到最小
當然梯度下降找到的最優是局部最優,也就是說選取不同的初值,可能會找到不同的局部最優點
但是對于最小二乘的損失函數模型,比較簡單隻有一個最優點,是以局部最優即全局最優
對于某個參數的梯度,其實就是j(θ)對該參數求導的結果
是以對于某個參數每次調整的公式如下,
α is called the learning rate,代表下降幅度,步長,小會導緻收斂慢,大會導緻錯過最優點
是以公式含義就是,每次在梯度方向下降一步
下面繼續推導,假設訓練集裡面隻有一個樣本點,那麼梯度推導為,
就是求導過程,但是實際訓練集中會有m個樣本點,是以最終公式為,
因為θ中有多個參數,是以每次疊代對于每個參數都需要進行梯度下降,直到j(θ)收斂到最小值
這個方法稱為batch gradient descent,因為每次計算梯度都需要周遊所有的樣本點
這是因為梯度是j(θ)的導數,而j(θ)是需要考慮所有樣本的誤差和
這個方法問題就是,擴充性問題,當樣本點很大的時候,基本就沒法算了
是以提出一種stochastic gradient descent(随機梯度下降)
想法很簡單,即每次隻考慮一個樣本點,而不是所有樣本點
那麼公式就變為,
其實意思就是,每次疊代隻是考慮讓該樣本點的j(θ)趨向最小,而不管其他的樣本點
這樣算法會很快,但是收斂的過程會比較曲折
整體效果,還是可以will be reasonably good approximations to the true minimum
是以适合用于較大訓練集的case
normal equations
前面說了如何用梯度下降來解線性回歸問題
其實對于線性回歸,也可以不用這種疊代最優的方式來求解
因為其實可以通過normal equations直接算出θ,即具有解析解
首先對于訓練集,可以寫成下面的向量形式
可以看到經過一系列的推導,j(θ)有了新的表達形式
那麼j(θ)的梯度,即求導,可以得到
而j(θ)最小時,一定是梯度為0時,即可以推出normal equations
是以使j(θ)最小的θ的值可以直接求出,
probabilistic interpretation,機率解釋
解釋為何線性回歸的損失函數會選擇最小二乘
真實的y和預測出來的值之間是會有誤差的,因為我們不可能考慮到所有的影響結果的因素
比如前面的例子,我們根據面積和卧室的個數來預測房屋的價格
但是影響房屋價格的因素其實很多,而且有很多随機因素,比如買賣雙方的心情
而根據中心極限定理,大量獨立的随機變量的平均值是符合正态分布或高斯分布的
是以這裡對于由大量unmodeled因素導緻的誤差的分布,我們假設也符合高斯分布
因為你想想,大量獨立随機變量大部分誤差會互相抵消掉,而出現大量變量行為相似造成較大誤差的機率是很小的
可以寫成,因為誤差的機率和預測出是真實值的機率是一樣的
注意,這裡
不同于
因為對于訓練集,θ是客觀存在的,隻是目前還不确定
是以有,
這個很容易了解,真實值應該是以預測值為中心的一個正态分布
給出θ似然性的定義
給定訓練集x和參數θ,預測結果等于真正結果的機率,等同于該θ為真實θ的可能性(似然性)
這裡probability和likelihood有什麼不同,答案沒有什麼不同
但是對于資料使用probability,但對于參數使用likelihood
故最大似然法(maximum likelihood),就是找出l(θ)最大的那個θ,即機率分布最fit訓練集的那個θ
繼續推導,把上面的式子帶入,得到
實際為了數學計算友善,引入log likelihood,
可以看到,最終我們從l(θ)的最大似然估計,推導出損失函數j(θ),最小二乘
是以結論為,最小二乘回歸被認為是進行最大似然估計的一個很自然的方法
to summarize: under the previous probabilistic assumptions on the data, least-squares regression corresponds to finding the maximum likelihood estimate of θ. this is thus one set of assumptions under which least-squares regression can be justified as a very natural method that’s just doing maximum likelihood estimation.
locally weighted linear regression,局部權重線性回歸
對于線性回歸,問題是選取的特征的個數和什麼特征會極大影響fit的效果
比如下圖,是分布使用下面幾個模型進行拟合的
通常會認為第一個模型underfitting,而第三個模型overfitting,第二個模型相對比較好的fit到訓練集
是以可以看出,找出一個全局的線性模型去fit整個訓練集,是個比較困難的工作,因為選擇特征成為一個關鍵的因素
局部權重線性回歸的思路,就是我不需要去fit整個訓練集而産生全局的模型
而是在每次predict x的時候,隻去拟合x附近的一小段訓練集
無論全局訓練集是多麼複雜的一個分布曲線,但在局部小段資料上,都可以用線性去逼近
是以算法如下,
可以看到我們通過weight來選取局部樣本點
這裡weight定義有點類似高斯分布,雖然這裡和高斯分布沒有關系,隻是恰好相似
但是他的分布曲線确實和高斯分布一樣,鐘型,是以通過weight,隻有距離x很近的樣本點才會對于損失函數有作用
局部權重線性回歸算法是一種non-parametric algorithm
而普通的線性回歸是parametric learning algorithm
parametric learning algorithm有一組有限的,固定的參數,一旦完成fit,隻需要儲存下參數值來做預測,而不需要儲存完整的訓練集
non-parametric algorithm,相反,我們需要儲存完整的訓練集來進行預測,而不是僅僅儲存參數
正式定義為,the amount of stuff we need to keep in order to represent the hypothesis h grows linearly with the size of the training set.
為了表達假設h而儲存的資料随着訓練集的size而線性增長
本文章摘自部落格園,原文釋出日期:2014-03-26