梯度下降的原理

2021-10-01 08:18:24 字數 1633 閱讀 4051

本文來了解一下梯度下降演算法的基本原理,不涉及複雜的數學推導。

機器學習問題很大程度上來說其實就是找到乙個合適的目標函式,然後不斷優化引數的最優化過程,而梯度下降正是最優化過程中的重要演算法 。

梯度下降(gradient descent)是應用非常廣泛的優化演算法之一,其應用範圍涵蓋經典機器學習演算法、神經網路、深度學習。機器學習問題很大程度上來說其實就是找到乙個合適的目標函式,然後不斷優化引數的最優化過程,而梯度下降正是最優化過程中的重要演算法,由此可見梯度下降在機器學習中的重要性。現在很多知名的深度學習庫都已經包含了各種梯度下降優化演算法的實現(如 tensorflow,cafe,keras),但依然很有必要去了解梯度下降的底層邏輯,熟知梯度下降不同變種、不同演算法之間的區別,並能夠根據它們各自的優缺點擊擇最合適的方法和引數來應用於相應的場景。

每乙個機器學習模型都有乙個損失函式,學習的目的,就是將損失函式最小化。然而,並非所有函式都能一下子就找到最小值,甚至都沒有最小值。所以,很多機器學習模型都以凸函式作為損失函式,因為凸函式保證了其有最小值。凸函式可以理解成在某段區間只有乙個低谷的函式。

如果損失函式是凸函式,那麼我們的目標就是尋找改損失函式的最小值。而用來尋找凸函式最小值的常用方法就是梯度下降法。

梯度下降就是從山頂找一條最短的路走到山谷最低的地方。

既然是選擇乙個方向下山,那麼這個方向怎麼選?每次該怎麼走?選方向在演算法中是以隨機方式給出的,這也是造成有時候走不到真正最低點的原因。如果選定了方向,以後每走一步,都是選擇最陡的方向,直到最低點。

總結起來就一句話:隨機選擇乙個方向,然後每次邁步都選擇最陡的方向,直到這個方向上能達到的最低點

在求解機器學習演算法的模型引數,即無約束優化問題時,梯度下降(gradient descent)是最常採用的方法之一,另一種常用的方法是最小二乘法。這裡就對梯度下降法做乙個完整的總結。

由上可知梯度下降思想的三個要素包括出發點、下降方向、下降步長。

絕大部分優化問題都可以轉化成如下的問題:給定乙個關於 θ∈r 的目標函式 j(θ),求使得 j(θ) 最小的引數 θ。如下圖,a 點是隨機初始給定的 θ 的目標函式值,b 點是目標函式值 j(θ)最小的地方,我們目的是求 b 點處的 θ。梯度下降就是從 a 點開始,不斷沿著下降最快的方向(負梯度方向)迭代,更新後的 θ 能夠使 j(θ) 更小,直至到達 b 點。 )迭代,更新後的 θ 能夠使 j(θ) 更小,直至到達 b 點。

更直觀的理解,可以將梯度下降的方法理解成下山,當前在高山的某個位置,我們要到山的最低(目標函式最小)處,怎樣才能找到最優的下山路徑呢?這個時候就可以利用梯度下降的思想。具體來講,就是走一步算一步,每走一步都以他當前所處的位置為基準,沿著當前位置最陡峭最易下山的方向前進一小步,然後繼續沿下乙個位置最陡方向前進一小步,這樣一步步走下去,直到山的最低處。

當然這樣走下去,有可能我們不能走到真正的山腳,而是到了某乙個區域性的山峰低處。梯度下降不一定能夠找到全域性的最優解,有可能是乙個區域性最優解。當然,如果損失函式是凸函式,梯度下降法得到的解就一定是全域性最優解。

梯度下降演算法總結

為什麼梯度反方向是函式值區域性下降最快的方向?

梯度下降原理

在不一定可解的情況下,不用公式來求最小值,而是通過嘗試。線性回歸是通過公式來求解。梯度為求偏導,偏導值為梯度。下降為偏導值的下降方向。常規套路 機器學習的套路就是交給機器一堆資料,然後告訴它怎樣的方向是對的 目標函式 然後它朝著這個方向去做。梯度下降就是求 什麼樣的引數能是目標函式達到最小值點。目標...

梯度下降法原理

該博文為一所寫,非常詳細易懂,故搬運過來以後方便回憶學習 一 為什麼需要梯度下降法 每個演算法模型都有自己的損失函式,而損失函式包含了各個位置上的引數,我們的最終目標都是要找到使模型損失函式盡可能小的引數。在學習簡單線性回歸時,我們使用最小二乘法來求損失函式的最小值,但是這只是乙個特例。在絕大多數的...

梯度下降法原理

求解機器學習演算法的模型引數,常用兩種方法 梯度下降,最小二乘法。此外還有牛頓法和擬牛頓法。1.梯度 對多元函式引數求偏導,把求得的偏導寫成向量形式。比如 f x,y 對x,y求偏導,梯度就是 f x,f y t。2.梯度下降法詳解 梯度下降法有代數法和矩陣法兩種表示形式。2.1 代數法 1.先決條...