LeCun 說的可微分程式設計是什麼?

時間 2021-05-09 22:44:04

1樓:MindHiking

就是在微分的基礎上新增更多的「程式設計」的元素。用於控制網路的前饋過程、反饋過程,控制資料的餵給過程,控制多個網路之間的協調過程。

簡而言之,是將大型專案的中高層次由人類構建,中低層次由網路從資料中學習。將學習好的神經網路直接作為函式呼叫。

pytorch只是乙個自動求導的工具,動態圖計算框架。沒有它不過就是麻煩了點。

2樓:Wheeler

以前我們程式設計的時候,需要在乙個函式裡定義變數a,b,c,d,然後基於if else while寫邏輯,然後給出返回。

未來,我們在乙個函式裡定義一組張量 A,B,C,D,然後給出一組矩陣運算公式然後返回新的張量。

這樣乙個函式就是乙個可微的NN模組。而乙個複雜的程式由大量的基本NN模組組合而成。

傳統的函式寫出來就能直接執行,基於NN的函式都需要訓練來得到引數。但是前者永遠只能處理確定性資料計算,後者可以復現我們的大腦。

3樓:大白

早上看到了新聞,匆匆看了一眼了,我對他的觀點深以為然。這裡解釋一下, 權當拋磚引玉。

簡單的神經網路,一層加一層,每一層有N個節點,forward過程做加權,backward過程,因為每個節點都是可以微分的,做反向傳播(BP)。

CNN,每一層改為乙個3維或者4維的層級,每一塊掃瞄,每一塊可微分。forward加權,因為每個節點可微分,做BP。

RNN,每個層可以向自己做微分。

GAN,兩個網路,每層都可以微分,特殊的loss函式。

那我們可以看出來,其實任何神經網路都可以像搭積木一樣拼出來,這個積木只需要乙個條件,就是可以微分,這種可微分是做BP的必要條件, 而且可微分有乙個很好的特點,就是鏈式法則,這樣決定了所有的微分可以組合起來。除了這個之外,和普通程式設計沒有什麼區別。我想這就是可微分程式設計的來歷。

想一想,這對以後的程式設計有什麼影響,以後寫神經網路。直接提供給你幾個可以微分的模組(就像Drag and Drop UI 裡面的這種模組), 你簡單的組合起來, 加上loss function, 就可以形成你的神經網路了。

我覺得有點像Keras現在做的,但是現在Keras只提供了有限的Cell。以後的模組應該只要滿足模組可微分就可以了,這個比現在的Keras Cell 要多的多得多。

偏導數 偏微分以及全微分的幾何意義是什麼?

RB 57D 我也大一,前一段時間也思考這個問題。偏導數就是把二元函式的乙個自變數不變,另乙個正常求導,就分別想象成z對x,y的函式。全微分就是乙個切面,來代替曲面,和曲面相交乙個點,所有曲面上的曲線的在這個點的切線都在切面上。全微分的dy和dx的係數就是偏積分 偏微分嘛。錯了勿噴 炸彈客 首先你要...

常微分方程的通解的準確定義是什麼?可以說y x e C是dy dx的通解嗎?

首先你的解的確是通解,因為定義已經有人給出來了。其次考慮一下 通解 這個詞,我想最開始人們研究的方程性質並沒有那麼差,大多數還是有解的 區域性 唯一性的,所以可能那時就選用了這個名詞,這也解釋了面對不同形式的通解為什麼沒有太在意去做區分,因為說到底是解的擴張問題。至於對於沒有區域性唯一性的方程,考不...

老師提的新的微分符號 d dx 是什麼意思?

求分數階導數。假設原函式是指數函式 那麼它的n階導數為 那麼1 2階導數就是 而對於三角函式 我們可以視為波函式向左進行了 2的平移,求n階導數就是向左平移n 2個單位長度 假如三角函式內部乘上乙個係數,外部再乘上乙個係數。那麼通過不斷求導可以發現,其實就是平移兼縱向縮放。在這種體系裡面,求導最容易...