1. 程式人生 > >深入理解線性迴歸演算法(一)

深入理解線性迴歸演算法(一)

前言

線性迴歸演算法是公眾號介紹的第一個機器學習演算法,原理比較簡單,相信大部分人對線性迴歸演算法的理解多於其他演算法。本文介紹的線性迴歸演算法包括最小二乘法和最大似然法,進而討論這兩種演算法蘊含的一些小知識,然後分析演算法的偏差和方差問題,最後總結全文。

                                                                                           目錄

1、最小二乘法和最大似然法

2、演算法若干細節的分析

3、偏差和方差

4、總結

                                                最小二乘法和最大似然函式

最小二乘法

最大似然函式

假設訓練資料的目標變數t是由確定性方程y(x,w)和高斯噪聲疊加產生的,即:

其中是期望為0,精度為β(方差的倒數)的高斯噪聲的隨機抽樣。

目標變數t的分佈推導如下:

因此,目標變數t的分佈:

即觀測資料集的似然函式:

  

為了書寫方便,求最大似然函式對應的引數

似然函式取對數並不影響結果:

因此,對於輸入變數x,即可求得輸出變數t的期望。

                                                                    

期望值就是模型的預測輸出變數,與最小二乘法的預測結果相同

                                                  演算法若干細節的分析

偏置引數w0

線性迴歸表示式的偏置引數w0有什麼意義,我們最小化來求解w0,根據w0結果來說明其意義。

由w0結果可知,偏置引數w0補償了目標值的平均值(在訓練集)與基函式的值的加權求和之間的差。

圖形表示為:

                                                      

最小二乘法的幾何意義

根據最小二乘法的結果可以作如下推導:

圖形表示如下:

                                                           

黑色線表示噪聲

備註:推導公式是假設是非奇異矩陣(的行列式不等於0),若是奇異矩陣,則需要通過奇異值分解(SVD)成新的基向量,後續文章會講到。

噪聲模型分析

線性迴歸模型疊加的噪聲是假設均值為0方差為的高斯分佈,下面是筆者分析這一假設的原因。

假設噪聲是高斯分佈的原因:高斯分佈是實際生活中最常見的高斯分佈,採用高斯分佈的模型更貼近實際情況。

假設噪聲是均值為0的原因:這個比較好理解,就是為了方便計算,偏置引數w0包含了噪聲均值。

                                                            偏差和方差

最小二乘法和最大似然法構建的模型是一樣的,本文的線性迴歸表示式的複雜度用模型引數的個數來表示,模型引數個數越多,則模型複雜度越大;反之模型複雜度越小(只針對無正則化的線性迴歸方程)。本節討論模型複雜度與偏差和方差的關係。

高偏差

若模型引數個數比較少,即模型複雜度很低,模型處於高偏差狀態。

如下圖用直線去擬合正弦曲線。

                                                       

高方差

若模型引數個數較大,即複雜度較高,則模型處於高方差(過擬合)狀態。

如下圖M=9擬合正弦曲線,模型訓練誤差為0。

                                                   

                                                                    總結

本文介紹了最小二乘法和最大似然法來求線性迴歸的最優引數,分析了演算法中容易忽視的某些細節,由於本文的線性迴歸表示式沒有正則化項,因此模型的複雜度等同於模型引數的個數,引數個數過多模型容易產生高方差(過擬合),引數個數過低模型容易產生高偏差,下節將要介紹貝葉斯線性迴歸演算法,該演算法很好的解決了複雜度的問題。

參考:

Christopher M.Bishop <<Pattern Reconition and Machine Learning>>

                                                                                      推薦閱讀文章