在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 人工智能/ 計算圖
人工神經(jīng)網(wǎng)絡(luò)
深度學習
深度學習簡介
深度神經(jīng)網(wǎng)絡(luò)
深度學習的應(yīng)用
計算圖
訓練神經(jīng)網(wǎng)絡(luò)
基本原理
機器學習基礎(chǔ)
深度學習庫和框架
深度學習開發(fā)環(huán)境

計算圖

反向傳播通過使用計算圖形在Tensorflow,Torch,Theano等深度學習框架中實現(xiàn)。 更為重要的是,理解計算圖上的反向傳播結(jié)合了幾種不同的算法及其變體,如通過時間反向傳播和共享權(quán)重反向傳播。一切轉(zhuǎn)換成計算圖,它們?nèi)匀皇窍嗤乃惴?- 只是在計算圖上反向傳播。

什么是計算圖

計算圖被定義為有向圖,其中節(jié)點對應(yīng)于數(shù)學運算。 計算圖是表達和評估數(shù)學表達式的一種方式。

例如,這里有一個簡單的數(shù)學公式 -

p = x + y

我們可以繪制上述方程的計算圖如下。

上面的計算圖具有一個加法節(jié)點(具有“+”符號的節(jié)點),其具有兩個輸入變量xy以及一個輸出q。

讓我們再舉一個例子,稍微復雜些。如下等式。

g = ( x + y ) ? z

以上等式由以下計算圖表示。

計算圖和反向傳播

計算圖和反向傳播都是深度學習訓練神經(jīng)網(wǎng)絡(luò)的重要核心概念。

前進傳遞

正向傳遞是評估由計算圖表示的數(shù)學表達式的值的過程。 進行前向傳遞意味著我們將變量的值從左側(cè)(輸入)向前傳遞到輸出所在的右側(cè)。

讓我們考慮一個例子,給所有的投入賦予一些價值。 假設(shè)給所有輸入賦予下列值。

x=1, y=3, z=?3

通過將這些值賦予輸入,我們可以執(zhí)行正向傳遞并獲得每個節(jié)點上輸出的以下值。

首先,使用x = 1y = 3的值來獲得p = 4。

然后使用p = 4z = -3來得到g = -12。下面從左到右前進。

后向傳遞目標

在后向傳遞中,我們的目的是計算每個輸入相對于最終輸出的梯度。 這些梯度對于使用梯度下降訓練神經(jīng)網(wǎng)絡(luò)至關(guān)重要。

例如,我們希望以下漸變。所需的漸變

后退傳遞

我們通過查找最終輸出相對于最終輸出(本身!)的導數(shù)來開始反向傳遞。 因此,這將導致身份推導,并且值等于一。

計算圖現(xiàn)在看起來如下所示 -

接下來,我們將通過“*”操作進行反向傳遞。將計算pz處的梯度。 由于g = p * z,所以可以知道 -

已經(jīng)知道正向傳遞的zp值。 因此得到 -

我們想要計算xy處的梯度 -

然而,我們想要有效地做到這一點(盡管xg在圖中只有兩跳,想象它們彼此之間真的很遠)。 要有效計算這些值,我們將使用差異化的鏈式規(guī)則。 從連鎖規(guī)則來看,如下 -

但是已經(jīng)知道dg/dp = -3,dp/dxdp/dy很容易,因為p直接取決于xy。如下公式 -

因此,可以得到 -

另外,對于輸入y -

這樣做的主要原因是,當必須計算x處的梯度時,只使用了已計算的值,而dq/dx(節(jié)點輸出相對于同一節(jié)點的輸入的導數(shù))。使用本地信息來計算全局值。

訓練神經(jīng)網(wǎng)絡(luò)的步驟

按照這些步驟來訓練一個神經(jīng)網(wǎng)絡(luò) -

  • 對于數(shù)據(jù)集中的數(shù)據(jù)點x,使用x作為輸入進行前向傳遞,并計算成本c作為輸出。
  • c開始向后傳遞,并為圖中的所有節(jié)點計算漸變。 這包括表示神經(jīng)網(wǎng)絡(luò)權(quán)重的節(jié)點。
  • 然后通過 W = W - 學習率*梯度來更新權(quán)重。
  • 重復這個過程,直到滿足停止條件。