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

2021-01-07 不靠譜的貓

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

凸性

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

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

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

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

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

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

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

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

線性回歸回顧

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

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

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

成本函數的凸性

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

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

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

相關焦點

  • 機器學習——梯度下降、梯度下降的線性回歸算法
    像下圖這樣不同時更新的做法是錯誤的:二、梯度下降的直觀理解梯度下降算法如下:描述:對θ賦值,使得J(θ)按梯度下降最快方向進行,一直迭代下去,最終得到局部最小值。其中α是學習率(learning rate),它決定了我們沿著能讓代價函數下降程度最大的方向向下邁出的步子有多大(多大的步長)。
  • 線性回歸與梯度下降
    Cost Function代價函數是線性回歸中的一個應用,在線性回歸中,要解決的一個問題就是最小化問題。假設在一元線性回歸中,在一個訓練集中,我們需要找到一條直線能和該訓練集中的點最接近。這也是梯度下降的一個特點。它會找到所有的局部最優解出來。梯度下降算法,不斷更新:直到收斂。
  • 機器學習之多元線性回歸模型梯度下降公式與代碼實現(篇二)
    機器學習之線性回歸模型詳細手推公式與代碼實現(篇一)今天這一篇來介紹多元線性回歸模型多元線性回歸模型介紹在回歸分析中,如果有兩個或兩個以上的自變量,就稱為多元回歸,我們確定用梯度下降法來計算多元線性模型,當然還有更多計算方式。
  • 線性回歸和梯度下降的初學者教程
    方法是用線性回歸。首先找到最佳擬合線,然後用這條直線做預測。線性回歸是尋找數據集的最佳擬合線,這條線可以用來做預測。如何找到最佳擬合線?這就是為什麼我們需要使用梯度下降。梯度下降是一種找到最佳擬合線的工具。在深入研究梯度下降之前,先看看另一種計算最佳擬合線的方法。
  • 為什麼凸性是優化的關鍵
    作者:NVS Yashwanth 編譯:McGL當你剛開始學習機器學習時,可能最有趣的就是優化算法,具體來說,就是梯度下降法優化算法,它是一個一階迭代優化算法,用來使成本函數最小化。梯度下降法背後的直覺是收斂到一個解,這個解可能是鄰近區域的局部極小值,或者在最好的情況下是全局極小值。 一切看起來都很好,直到你開始質疑收斂問題。對
  • Python機器學習算法入門之梯度下降法實現線性回歸
    線性回歸的目標很簡單,就是用一條線,來擬合這些點,並且使得點集與擬合函數間的誤差最小。如果這個函數曲線是一條直線,那就被稱為線性回歸,如果曲線是一條二次曲線,就被稱為二次回歸。數據來自於GradientDescentExample中的data.csv文件,共100個數據點,如下圖所示:        我們的目標是用一條直線來擬合這些點。
  • 【機器學習基礎】(二):理解線性回歸與梯度下降並做簡單預測
    梯度下降我們把木棒(實線、模型)的表示數學化,我們既然可以用3、4做為x的係數,那我們當然可以嘗試別的數字。梯度可以完全理解為導數,梯度下降的過程就是我們不斷求導的過程。學習率(步長)不斷調整權重和偏差來來尋找損失函數最小值的過程就是我們使用梯度下降方法擬合數據尋找最佳模型的過程。
  • 文科生都能看懂的機器學習教程:梯度下降、線性回歸、邏輯回歸
    那些神秘拗口的概念,比如邏輯回歸、梯度下降到底是什麼?j  一個23歲的藥物學專業的學生說,當他去參加機器學習培訓課程的時候,感覺自己就家裡那位不懂現代科技的奶奶。  於是一名叫Audrey Lorberfeld的畢業生,試圖將大眾與機器學習之間的鴻溝,親手填補上。於是有了這個系列文章。  本系列第一講:梯度下降、線性回歸和邏輯回歸。
  • 機器學習基礎:線性回歸和梯度下降的初學者教程
    ❝線性回歸是尋找數據集的最佳擬合線。這就是使用梯度下降的原因。❝梯度下降是一種找到最佳擬合線的工具❞在深入研究梯度下降之前,讓我們先看看另一種計算最佳擬合線的方法。❝梯度下降法是一種通過多次迭代最小化誤差平方和來逼近最小平方回歸線的算法。❞梯度下降算法在機器學習術語中,誤差平方和稱為「成本」。這個成本公式是:
  • 【機器學習基礎】線性回歸和梯度下降的初學者教程
    ❝線性回歸是尋找數據集的最佳擬合線。這就是使用梯度下降的原因。❝梯度下降是一種找到最佳擬合線的工具❞在深入研究梯度下降之前,讓我們先看看另一種計算最佳擬合線的方法。❝梯度下降法是一種通過多次迭代最小化誤差平方和來逼近最小平方回歸線的算法。❞梯度下降算法在機器學習術語中,誤差平方和稱為「成本」。這個成本公式是:
  • 線性回歸的求解:矩陣方程和梯度下降、數學推導及NumPy實現
    以上就是一元線性回歸的最小二乘法求解過程。很多機器學習模型中都需要經歷上述過程:確定損失函數,求使損失函數最小的參數。求解過程會用到一些簡單的微積分,因此複習一下微積分中偏導數部分,有助於理解機器學習的數學原理。
  • 教程 從頭開始:用Python實現帶隨機梯度下降的線性回歸
    機器學習最常見的優化算法是隨機梯度下降(SGD:stochastic gradient descent)。本教程將指導大家用 Python 實現隨機梯度下降對線性回歸算法的優化。通過本教程的學習,你將了解到:如何用隨機梯度下降估計線性回歸係數如何對多元線性回歸做預測如何用帶隨機梯度下降的線性回歸算法對新數據做預測說明本文將對線性回歸、隨即梯度下降方法以及本教程所使用的葡萄酒品質數據集做一個集中闡釋。
  • 教程 從頭開始:如何用 Python 實現帶隨機梯度下降的線性回歸
    機器學習最常見的優化算法是隨機梯度下降(SGD:stochastic gradient descent)。本教程將指導大家用 Python 實現隨機梯度下降對線性回歸算法的優化。通過本教程的學習,你將了解到:如何用隨機梯度下降估計線性回歸係數如何對多元線性回歸做預測如何用帶隨機梯度下降的線性回歸算法對新數據做預測說明本文將對線性回歸、隨即梯度下降方法以及本教程所使用的葡萄酒品質數據集做一個集中闡釋。
  • 梯度下降算法詳解
    梯度下降算法是一種非常經典的求極小值的算法,比如在線性回歸裡我們可以用最小二乘法去解析最優解,但是其中會涉及到對矩陣求逆,由於多重共線性問題的存在是很讓人難受的,無論進行L1正則化的Lasso回歸還是L2正則化的嶺回歸,其實並不讓人滿意,因為它們的產生是為了修復此漏洞,而不是為了提升模型效果,甚至使模型效果下降。
  • 梯度下降背後的數學原理幾何?
    了解梯度下降背後的多元演算聽起來可能會讓人十分畏懼,別怕,下面我將對梯度下降背後的原理做出解釋並且僅跟大家探討理解梯度下降所需的數學概念。在此之前,我強烈建議你們查看我此前寫的一篇關於機器學習的文章或視頻先對基礎知識進行複習!
  • 二.線性回歸(二)
    在多變量函數中,梯度是一個向量,向量有方向,梯度的方向就是函數在給定點上升最快的方向;梯度的反方向就是在給定點下降最快的方向,沿著梯度反方向走就走到了局部最低點。1.梯度下降公式         θ為特徵值係數,α為學習率。
  • 廣義線性模型與邏輯回歸
    所以我們無法直接採用線性回歸模型進行建模。對於這一類問題,可以用邏輯回歸來處理。在講邏輯回歸之前,先簡單介紹下指數族分布、廣義線性模型,因為邏輯回歸是廣義線性模型的一種,所以我們需要了解如何從廣義線性模型得到邏輯回歸。二、指數族分布之所以先介紹指數族分布,因為指數族分布是所有廣義線性模型的假設條件之一。
  • 梯度下降—Python實現
    梯度下降是數據科學的基礎,無論是深度學習還是機器學習。深入了解梯度下降原理一定會對你今後的工作有所幫助。你將真正了解這些超參數的作用以及處理使用此算法可能遇到的問題。然而,梯度下降並不局限於一種算法。另外兩種流行的梯度下降(隨機和小批量梯度下降)建立在主要算法的基礎上,你可能會看到比普通批量梯度下降更多的算法。
  • 線性回歸(Linear Regression)原理小結
    線性回歸推廣5. 加正則化項的線性回歸6. 線性回歸模型綜合評價7. 參考1.計算逆矩陣非常耗時,當特徵/屬性n非常大時,求n階矩陣的逆可能不可行,此時梯度下降迭代法仍能適用。但可以通過降維的方法較少特徵維度後,再使用最小二乘法。如果擬合函數不是線性的,無法使用最小二乘法,此時梯度下降迭代法仍能適用;但可以通過一些技巧轉化為線性問題後,再使用最小二乘法。4.
  • 線性回歸:簡單線性回歸詳解
    【導讀】本文是一篇專門介紹線性回歸的技術文章,討論了機器學習中線性回歸的技術細節。線性回歸核心思想是獲得最能夠擬合數據的直線。