PyTorch - 神經網路基礎



神經網路的主要原理包括一系列基本元素,即人工神經元或感知器。它包含幾個基本輸入,例如 x1、x2……xn,如果總和大於啟用電位,則產生二進位制輸出。

示例神經元的示意圖如下所示:

sample neuron

生成的輸出可以被認為是帶啟用電位或偏差的加權和。

$$輸出 = \sum_j w_j x_j + 偏差$$

典型的 神經網路架構如下所示:

neural network architecture

輸入和輸出之間的層稱為隱藏層,層之間連線的密度和型別是配置。例如,全連線配置具有連線到 L+1 層的所有 L 層神經元。為了更明顯的區域性化,我們可以僅將區域性鄰域(例如九個神經元)連線到下一層。圖 1-9 說明了具有密集連線的兩個隱藏層。

各種型別的神經網路如下:

前饋神經網路

前饋神經網路包括神經網路家族的基本單元。這種型別的神經網路中的資料移動是從輸入層到輸出層,透過存在的隱藏層。一層輸出作為輸入層,網路架構中沒有任何迴圈限制。

Feedforward Neural Networks

迴圈神經網路

迴圈神經網路是在資料模式隨時間連續變化的情況下的神經網路。在 RNN 中,同一層被應用於接受輸入引數並在指定的神經網路中顯示輸出引數。

Recurrent Neural Networks

可以使用 torch.nn 包構建神經網路。

Construct Neural Networks

這是一個簡單的前饋網路。它接收輸入,將其逐層饋送,然後最終給出輸出。

藉助 PyTorch,我們可以使用以下步驟進行神經網路的典型訓練過程:

  • 定義具有某些可學習引數(或權重)的神經網路。
  • 迭代輸入資料集。
  • 透過網路處理輸入。
  • 計算損失(輸出與正確結果的差距)。
  • 將梯度反向傳播到網路引數。
  • 更新網路權重,通常使用如下所示的簡單更新
rule: weight = weight -learning_rate * gradient
廣告