理解凸性:為什麼梯度下降適用於線性迴歸

在機器學習中我們總會遇到線性迴歸問題,但是為什麼我們可以用梯度下降算法來求解線性迴歸成本函數呢?凸性理論可以讓我們更容易理解這個問題。

凸性

首先,通過凸集和凸函數定義凸度。凸集的定義如下:

理解凸性:為什麼梯度下降適用於線性迴歸

在二維中,我們可以將凸集視為一個形狀,無論您用什麼線連接集中的兩個點,都不會在集外。

理解凸性:為什麼梯度下降適用於線性迴歸

(左)凸集,(中)非凸集,(右)凸集

凸集的定義正好體現在凸函數的定義中,如下所示:

理解凸性:為什麼梯度下降適用於線性迴歸

你可以直觀地把凸函數想象成這樣的函數:如果你畫一條從(x,f(x))到(y,f(y))的直線,那麼凸函數的圖像就會在這條直線的下方。下面是三個例子,我們應用這個直覺來確定函數是否是凸的。

理解凸性:為什麼梯度下降適用於線性迴歸

(左)具有唯一優化器的凸函數,(中)非凸函數,(右)具有多個優化器的凸函數

我們可以看到中間的圖不是凸的,因為當我們繪製連接圖上兩個點的線段時,有一些點(x,f(x))大於f(x)上對應的點。

左邊和右邊的圖形都是凸的。不管你在這些圖上畫什麼線段,這個線段總是在函數圖的上面或者等於函數圖。

現在我們對凸集和凸函數有了一些直覺和理解,讓我們轉向線性迴歸,看看凸性在哪裡起作用。

線性迴歸回顧

假設在n維空間中有m個數據樣本。每個樣本都有n個映射到單個輸出值的特性。我們可以訪問輸入和輸出數據,但是我們想弄清楚輸入數據和輸出數據之間是否存在線性關係。這就是線性迴歸模型的用處。該模型的形式為:

理解凸性:為什麼梯度下降適用於線性迴歸

現在,我們確定最佳線性模型的方法是求解模型的係數,使我們的估計輸出值與實際輸出值之間的誤差最小化。我們可以用線性最小二乘法來實現。因此,我們的成本函數如下:

理解凸性:為什麼梯度下降適用於線性迴歸

我們稱這個函數為“成本”函數,因為我們計算的是估算值與實際值之間的總誤差或成本。由於線性最小二乘問題是一個二次函數,我們可以用解析的方法最小化這個成本函數。然而,對於大型機器學習數據集,使用一種稱為梯度下降的迭代方法來尋找最佳係數通常計算速度更快。如何使用梯度下降來最小化成本函數的詳細說明如下:

理解凸性:為什麼梯度下降適用於線性迴歸

成本函數的凸性

現在我們來看一些凸優化理論。如上所示,梯度下降法被應用於尋找成本函數的全局最小值。但是我們怎麼知道存在一個全局最小值呢?當最小化函數時,凸函數可確保如果存在最小值,則它將是全局最小值。前面我們看到二次函數是凸函數。因為我們知道線性最小二乘問題是二次函數,所以我們也知道它是一個凸函數。

二次函數(例如線性最小二乘問題)是強凸的。這意味著該函數具有唯一的最小值,而該最小值是全局最小值。因此,當我們應用梯度下降算法時,我們可以確信它將收斂於正確的最小值。如果我們試圖最小化的函數是非凸的,則梯度下降可能會收斂於局部最小值而不是全局最小值。這就是為什麼使用非凸函數要困難得多。這很重要,因為許多機器學習模型(最著名的是神經網絡)是非凸的。您可以看一個示例,梯度下降以最簡單的形式沒有找到全局最小化器。

理解凸性:為什麼梯度下降適用於線性迴歸

在非凸函數上收斂到局部最小值的梯度下降的示例


分享到:


相關文章: