神經網路中,為何不直接對損失函式求偏導後令其等於零,求出最優權重,而要使用梯度下降法(迭代)計算權重?

時間 2021-05-06 18:06:38

1樓:小小幸運

個人理解,梯度下降最終目的其實也是類似偏導為0, 只是直接求解難以計算,那就用」試「的辦法,只要選擇了正確的道路方向(梯度下降, )就有可能走到最優值。(前提為凸)

2樓:[已重置]

你可以試一試,乙個幾百萬幾千萬個引數的系統,寫出對每個引數的導數,令其為零。這是乙個巨型的方程,而且是非線性的,反正我不知道怎麼求解。

3樓:不知道叫什麼

把各個引數的偏導數求出來,你一看那個式子就會明白,根本沒法解。更何況神經網路層數多各種啟用函式帶進去,最後偏導數會很複雜

4樓:LeviBaymax

主要原因是絕大部分大部分情況下對損失函式求導後的函式是沒有解析解的,和區域性最優解還是全域性最優解沒關係,bp也沒法保證是全域性最優解

5樓:JasonAlpaca

這是一種方法。但是直接計算求解的時間複雜度是O(n3)。動輒幾萬上百萬的引數,可能要窮盡一生。

如果引數較少。幾百個左右,那麼的確直接矩陣求解比梯度下降更精準。

6樓:張覺非

設計乙個最簡單的神經網路:單層(輸入層輸出層就是這一層,無隱藏層),單神經元,啟用函式是恒等函式,用均方誤差作為損失函式。那麼這個神經 "網路" 其實就是最小二乘線性回歸。

最優解是:

X 是以 N 個 p 維樣本為行組成的 N x p 矩陣。y 是 N 個樣本目標值組成的 N 向量。如果 X 是奇異的(列不滿秩),那麼 不可逆,這時候有無窮多個導數為 0 的解,誰是最優解,還得找。

可見哪怕這種最簡單的神經網路也不一定能 "直接對損失函式求導令其等於零求出最優權重" 。

7樓:Hijack

Loss方程不一定是凸函式,可能存在多個區域性極值點。

即便要算,也需要計算2階偏導,判斷Hessian矩陣的正定性,進一步判斷是區域性極值,還是鞍點。

8樓:lens

梯度下降能解決以下優化問題:1,純粹的凸函式;2,存在很多導數為零的點的凸函式;3,部分非凸函式。而直接計算的方法只能部分能夠對引數矩陣求逆的純粹的凸函式。

9樓:周劍

在花書《deep learning》中這樣解釋這個問題:

因為目前為止我們的線形模型和神經網路的最大區別就是神經網路的代價函式其實是非凸函式。

所以,神經網路通過訓練迭代也只是得到了乙個使得代價函式非常小的值。不能像線形模型那樣直接求解或者SVM的凸優化那樣保證全域性收斂

10樓:木夏

可以啊,只要你求得出closed form,你就可以直接求解。

但有個問題,比如說最簡單的linear regression,你的解析解需要計算偽逆,但是偽逆的計算量太大了。而且正確率也並不比不iteration的方式更高。

還有個問題,你求不出close form。

更新我看見很多回答說了convex的問題,我覺得這不是重點。難道你的cost function不是convex的情況下你用iteration能解出最優解?難道大家現在不都是努力把問題轉換成convex形式嗎

更新最大的問題是,神經網路好幾層,dimension是好幾百,loss function你是知道了,loss曲面最多能想象三維,global monimum在哪都不知道,更別說求出解析解了。

11樓:鐵褥

這個問題問得好,因為剛好我知道答案。

因為直接求解需要求矩陣的逆,而不是所有矩陣都是可逆矩陣,也就是說可能求不出來。

btw,很多答案下的描述極盡複雜,讓人懷疑這些人大學數學都學啥了。梯度下降的本質其實就是跟有限差分法同宗同源的,在數值計算第一節課就會普及的概念,乙個簡單的差分格式而已,被你們繞過來繞過去的說,醉了。

12樓:卻錯過問題分

如果你是解簡單凸規劃問題,是可以的。

直接用近似二階方法解神經網路的也可以,但用的很少,因為資料太大求近似hess矩陣記憶體放不下,用部分資料近似的又不准。

記得cs231n第七課有講,滷煮可以看看

13樓:ChristianZhao

要是隨便乙個函式都可以直接解析的求出零點就不會有這麼多迭代格式或者優化演算法了

當然說不定Galois活長一點真的可以搞一套理論出來,可惜了

14樓:

可以看一下Andrew在Coursera上面Week1&2講梯度下降的課。如果是低階maybe還可以暴力求解,高階的話emmmm,如果能求出來的話也是可以的,不過基本上不太現實啊。

15樓:汪不二

深度神經網路中,損失函式是關於權重變數的極複雜的非凸、非線性函式,其偏導函式的形式同樣極為複雜。此時,偏導方程解析解不存在。

簡單地說,所得方程壓根無法直接求根,必須借助梯度下降法求解。

16樓:tracholar

因為梯度等0的方程是非線性方程啊,非線性方程有解析解最複雜的情況也就是一元4次方程吧。無約束優化問題和解方程實際上存在某種等價,乙個無約束優化問題可以看做某個方程問題。梯度下降解優化問題和用搜尋法求根很相似,牛頓法求解優化問題和牛頓求根一模一樣。

17樓:紅泥小火爐

說偏導等於0不一定是最優解的,沒答到點上。不管是直接令偏導等於0還是使用梯度下降,都無法解決損失函式為非凸函式時陷入區域性最優的問題。之所以使用梯度下降而不直接令偏導等於0,是因為神經網路的損失函式大多沒有解析解,就是說你無法顯式地表示函式的偏導,所以只能通過數值求解的方法迭代地找到最優解(或者區域性最優解)。

18樓:C-dw

如果乙個優化函式容易求解,維度不高,當然是用解析解的方法更好,直接求解偏導等於零的臨界點,這樣能避免多次迭代的耗時操作。比如求解線性回歸方程(線性回歸也是可以通過迭代求解的)。

但是對於神經網路來說,它是乙個非凸函式,對於非凸優化函式,一般都有較多區域性極小點。(事實證明,對於深度神經網路來說,有非常多極小值點)所以即使你找到了偏導為零的點(能找到的話),你還得乙個個判斷它們對應的損失值,有的損失值會很大,這個比較判斷的過程也是夠嗆的。

另一方面,神經網路規模一般都很大,所以引數多,維度高。對於高維非凸函式而言,其實存在著數量選比區域性極小值(極大值)點多的另一類梯度為零的點——鞍點。這個性質使得判斷梯度為零的點操作更加不可能。

所以在實際網路中,對於其是否存在很多區域性極小點我們不感興趣(有的區域性極小點的損失值很大),能不能找到真正的全域性最小點也不重要,我們感興趣的是在引數空間中找到乙個使得損失值足夠小的點,作為網路引數相對可行的解。

(手機打字,比較難找圖和鏈結,有時間把參考文獻補上來。)

19樓:張帆

計算量... 你這樣和求f(x)=y 快差不多了,同理hassion matrix 一般也不會用...計算量和儲存都是問題...所以用快和有效的方法才是工程裡使用的

20樓:丁丁銘銘

你求不出來。我試過2層的svm和softmax,直接求input的導數,那真是要了我的命。而神經網路,尤其是深度學習中,越來越多的層數阻礙你去直接求它的導數,只能通過backpropagation進行計算。

21樓:SuperMHP

個人感覺就兩個主要原因:

1.數學上行不通:多維函式偏導為0並非是區域性極值,這個學過高等數學就知道,偏導為零是該點為極值的必要不充分條件,所以極值為0不一定是極值,你求偏導為0是沒有用的,求出來也未必是極值點。

2.解析式法運算複雜:多維函式通過解析式方法(就是通過求偏導的方式求極值點表示式的方法)求解極值不是一件容易的事,因為上一條特性,你用一階導是判斷不出極點的,那麼就要引入高階導(某種意義上就是看區域性凹凸性或者更抽象的特性),那麼接下來的計算就不那麼容易了,學過高等數學(可以參考同濟高數下冊)大家都知道二維函式的極值判別和求解都不那麼容易(需要判斷二階偏導的不等式),那麼維數更高將變得非常困難。

反過來梯度法非常通用,沿著下降面走就好了,維度的變化並不會改變演算法通用性,優化肯定會前進到區域性極值點(但非我們的理想優化目標——全域性最優點),而且迭代的思維和電腦程式相性很好,易於實現。而後來神經網路裡的SGD在梯度法基礎上加上了一定的隨機波動,但是不改變前進的大方向,使得演算法有了跳出區域性極值點的可能性(僅僅有可能性而已),這樣就有了直接求解不具備的好處。

總結其實根本原因是易於實現,節約運算,如果運算資源無窮大,最理想的方法當然是求出所有的區域性極值點,然後帶入神經網路函式,誰最小取誰(得到全域性最優),但是這個事情不僅不綠色,在現階段也不切實際,所以梯度方法作為乙個折中且有效的法子得到廣泛應用。包括實際上SGD也是GD的乙個運算折中,其意義中最大的其實是加速,至於隨機性只是其附帶特性,算是一舉兩得的東西。

就好比你想從A地到B地。想找最近的路線最權威的當然是把每一種路線都走一遍咯。但是這個策略非常麻煩,那麼我們往往只會沿著正確的大方向走,覺得這樣起碼不會有太大誤差,雖然這樣做有時候的確會繞路(非全域性最優),但是就算繞也不會繞太多不是麼(區域性最優好歹也是區域性最好的),而且往往僅需嘗試一次

本人也是剛入行機器學習領域不久,如有錯誤,懇請各位老師同學批評指正,不慎感激。

22樓:Yan

退一萬步講,求了偏導,令偏導等於0 得到乙個大型的非線性方程組。 然後要求解這個方程組,涉及到的數值計算方法中仍然需要迭代。其中仍然會看到梯度下降的影子。

23樓:Xenophon Tony

機器學習第一課,邏輯回歸沒有解析解(至少目前沒有找到,僅在binary classes的情況下可以找到[1]),遑論神經網路了。

即使有解析解,由於大部分情況下神經網路的損失函式為非凸函式,KKT condition(偏導為0算是其中一項)僅僅是非凸函式最優化的必要非充分條件。

神經網路中Belief Net和標準的神經網路有什麼區別?

金天 這個已經深埋地下的問題今天在下挖出來回答一番,拂去歲月的塵埃這個問題還是值得一答,也值得大家一讚.我的思考 1.DBN本質是RBM一層層的堆疊,那麼問題在於RBM與標準傳統簡單的神經網路有毛線區別呢?我們知道RBM可見層與隱藏層之間是全連線的,而hidden和hidden之間是沒有連線的,這個...

請問人工神經網路中的activation function的作用具體是什麼?為什麼ReLu要好過於tanh和sigmoid function

wuxuedaifu 引入啟用函式的目的 通過引入非線性變換,使得神經元網路能代表更多的函式形式 即更多的資訊 Sigmod和Tanh是早期開始使用的兩種啟用函式,Tanh比Sigmod的優勢是 Tanh在saturated point處具有略好的gradient特徵,不會說在飽和區梯度為零了 但依...

神經網路中的SIGMOID函式的意義?

胡免 根據最大熵模型得來。具體推導可以看 統計學習方法 83 85頁。參考 https blog.csdn.net zynash2 article details 79261039 張揚 舉個例子 有個唱歌比賽,評委們有些是歌手的親戚,有些是歌手的仇人。遇到親人,狂打高分 遇到仇人,狂打低分。咋辦?...