ARCore之路-計算機視覺之機器學習(二)
機器學習遇到的第一個模型便是線性迴歸,而且是一元線性迴歸,但這個最簡單的模型卻包含了很多的知識點,如矩陣計算、最小二乘、梯度下降等等。這是機器學習的入門,理解這些基本概念對後面的學習有極其重要的影響。在這篇文章中,我們主要對迴歸模型進行闡述,然後還會討論梯度下降演算法。我們力求通俗易懂,但數學應有的嚴謹性又不能不有所涉及,重在理解。
一、線性迴歸
在統計學中,線性迴歸(Linear Regression)是利用稱為線性迴歸方程的最小平方函式對一個或多個自變數和因變數之間關係進行建模的一種迴歸分析。通俗的講,線性迴歸就是在給定一定量資料的情況下,通過分析找到一個最佳的線性方程來擬合所有的資料,並以此方程作為模型來預測未知資料。 迴歸屬於有監督學習中的一種方法。該方法的核心思想是從連續型統計資料中得到數學模型,然後將該數學模型用於預測或者分類。在監督學習中,如果預測的變數是離散的,我們稱其為分類(如決策樹,支援向量機等),如果預測的變數是連續的,我們稱其為迴歸。迴歸分析中,如果只包括一個自變數和一個因變數,且二者的關係可用一條直線近似表示,這種迴歸分析稱為一元線性迴歸分析。如果迴歸分析中包括兩個或兩個以上的自變數,且因變數和自變數之間是線性關係,則稱為多元線性迴歸分析。對於二維空間線性是一條直線;對於三維空間線性是一個平面,對於多維空間線性是一個超平面。
線性迴歸原理是根據連續統計資料情況下,選取大量的樣本資料,如上圖所示,根據這些樣本的趨勢,選擇合適的假設函式,此處選擇的是線性迴歸的假設函式。根據樣本,計算代價函式的極小值,此時的θ值就是我們需要得到的數學模型的引數值,同時,這個假設函式即為我們要選取的資料模型。在選擇這個線性模型中,理想情況是能夠儘量符合所有樣本的數學模型。當然,一般情況下很難找到這個全擬合的模型,因此,我們需要找到儘可能符合當前統計資料的數學模型來代替。並使樣本在數學模型中的誤差平方和最小,這也就產生了代價函式。我們只需要找到代價函式的極小值,此時的θ代入到假設函式中,我們就得到了比較符合要求的數學模型。
線性迴歸假設特徵點(樣本值)和結果滿足線性關係。其實線性關係的表達能力非常強大,每個特徵對結果的影響強弱可以由前面的代價函式引數體現,而且每個特徵變數可以首先對映到一個函式,然後再參與線性計算。這樣也可以表達特徵與結果之間的非線性關係。
對上圖,我們用X1,X2…Xn 去描述特徵點(樣本值)裡面的分量,比如x1=售價,x2=重量等等,我們可以做出一個估計函式:
θ在這兒稱為引數,在這的意思是調整特徵點(樣本值)中每個分量的影響力,即哪個分量更重要。如果我們令X0 = 1,就可以用向量的方式來表示了:
二、梯度下降演算法
在選定線性迴歸模型後,只需要確定引數θ,就可以將模型用來預測。然而θ需要在J(θ)最小的情況下才能確定,因此問題歸結為求極小值問題。梯度下降法(Gradient descent)最大的問題是求得的值有可能不是全域性極小值,這與初始點的選取有關。理解梯度下降運作方式的恰當比喻是想象一個丘陵地形,我們立在一個隨機點,並且想抵達整個丘陵的最低點。我們叫它地形最小值。每一步,梯度下降向所在高度的更低位置移動。如果地形的幾何結構相對簡單,這個方法將會向著谷底靠攏。下圖展示一個梯度下降的成功案例。案例中,我們有一個單參(X軸)函式,返回誤差值(Y軸),從X軸隨機點開始(藍和綠點),梯度下降應該迫使我們向最小值方向移動(藍和綠箭頭)。
在上例中,我們移動的方向是顯而易見的。然後,因為梯度下降沒有最小值在哪裡的先驗知識,演算法能做到的最佳猜測就是沿著斜率的方向移動,也稱作函式的斜率。理想情況下,跟著斜率就可以走到山谷。下圖展示了兩個不同點的誤差函式的斜率:
斜率估算
函式的斜率和它的導數密切相關。然而計算導數,要求函式滿足特定的數學屬性,不是所有函式都有導數。此外,導數的分析推導需要有分析的誤差函式。在一些問題中,有時得到函式的導數是不可能的。因此解決方法是得到這個值的匡算(粗略估計)。下圖展示了一維簡單函式中我們通過附近取樣點並計算區域性斜率。如果左邊的誤差函式更小,則向左。如果右邊的誤差函式更小,則向右。
斜率和導數
斜率和導數的概念是有嚴格的相互關聯性的。函式的斜率或者方向導數是指向最陡上升方向的向量。在單維函式中(就像圖中顯示的那樣)隨著函式起伏,斜率要麼是+1 要麼是-1 。函式的導數是一個在它的斜率方向上移動時,表明函式上升的有多快的數值。我們的目的不是計算出函式的真實斜率。相反,我們提供一個預估,預估斜率是一個向量,表示方向或是最陡上升方向。
抽樣
取樣距離對估計會產生很大影響,如下圖所示,取樣距離過大會產生右側的高度比左側高的錯覺,這將會引向了錯誤的方向。減少採樣距離可以弱化這個問題,但是依然沒有辦法完全避免。對於一個解決方案來說,更小的取樣距離導致更慢的收斂速度(當然,這個問題可以通過採取更高階的梯度下降法來解決)。
幾個區域性最小值
梯度下降演算法並不能保證找到極小值,如下圖所示:
數學原理
梯度下降是一種數學運算。第一步是計算在特定點p上誤差函式的斜率f,因為函式的斜率和它的導數密切相關。由此,我們比較好的切入點是求取誤差函式在某位置導數,f的導數被稱為f’,它表示函式f的發展速率。並且具有以下屬性:
- 則函式f上升;
- 則函式f下降;
- 則函式f平行;
下圖直觀的展示了導數與斜率的關係。
三、最小二乘法
最小二乘法(又稱最小平方法)是一種數學優化技術。它通過最小化誤差的平方和尋找資料的最佳函式匹配,利用最小二乘法可以簡便地求得未知的資料,並使得這些求得的資料與實際資料之間誤差的平方和為最小,最小二乘法還可用於曲線擬合。
以最簡單的一元線性模型來解釋最小二乘法。對於一元線性迴歸模型, 假設從總體中獲取了n組觀察值(X1,Y1),(X2,Y2), …,(Xn,Yn)。對於平面中的這n個點,可以使用無數條曲線來擬合。要求樣本回歸函式儘可能好地擬合這組值。綜合起來看,這條直線處於樣本資料的中心位置最合理。 選擇最佳擬合曲線的標準可以確定為:使總的擬合誤差(即總殘差)達到最小。有以下三個標準可以選擇:
(1)用“殘差和最小”確定直線位置是一個途徑。但很快發現計算“殘差和”存在相互抵消的問題。
(2)用“殘差絕對值和最小”確定直線位置也是一個途徑。但絕對值的計算比較麻煩。
(3)最小二乘法的原則是以“殘差平方和最小”確定直線位置。用最小二乘法除了計算比較方便外,得到的估計量還具有優良特性。這種方法對異常值非常敏感。
最常用的是普通最小二乘法( Ordinary Least Square,OLS):所選擇的迴歸模型應該使所有觀察值的殘差平方和達到最小。(Q為殘差平方和)- 即採用平方損失函式。
參考文獻
1、An Introduction to Gradient Descent An Introduction to Gradient Descent