當前位置:
首頁 > 最新 > 走進神經網路:直觀地了解神經網路工作機制

走進神經網路:直觀地了解神經網路工作機制

學術plus】 新添加號內搜索功能!

→輸入關鍵詞→一鍵檢索您需要的文章。快來試試!

本文轉載自:專知,來源:專知內容組(編)

【導讀】1月4日,Mateusz Dziubek發布了一篇基礎的介紹神經網路的博文,作者用一種直觀的方法來解釋神經網路以及其學習過程,作者首先探討了導致神經網路過於複雜的幾個因素:大量係數、梯度計算慢、計算複雜。並通過典型的前饋神經網路和簡潔的分類示例來逐步揭開神經網路的面紗。如果您沒有學習過神經網路或只是簡單地使用介面完成過相應的工作,並且想一探神經網路的工作機制,那麼本文是一篇不錯的資料。專知內容組編輯整理。

Let me introduce you to neural networks

本文使用一些簡單的數學公式和術語(大多本科學過),提供了一種直觀方法來解釋神經網路及其學習過程(反向傳播)。作為知識分享的忠實推崇者,我希望能夠為那些開始AI/ML學習的人們提供一些幫助或啟發,或者為那些盲目使用諸如Keras等高級工具的人澄清一些事情。 使他們無需再費周折…

把神經網路neural network(NN)看作一個數學函數是合理的,由於三個原因使得NN在實踐中往往是非常複雜的:

1)它有大量的係數(權重),常常超過幾千萬,

2)它是一個深度嵌套函數,因此即使是簡單的梯度計算(偏導數)也是相對較慢的,

3)大部分的計算都是在多維張量上進行的。

圖1包含了一個簡單的神經網路的典型結構,它包含三個基本組件:單元(具有值的單個圓,輸入x,輸出y或偏置1),層(排列成一個垂直組的單元)和權重(單元之間的連接,值w代表其強度)。公式1,2,3,4和5將該圖形表示轉換為數學公式。

圖1:具有一個隱藏層(輸入和輸出之間的層)的簡單神經網路。

「感知器」是神經網路的一個常用名稱,輸入與輸出直接耦合在一起(沒有隱藏層,與圖1不同)。隱藏(中間)層的存在,阻止了輸入和輸出之間的直接連接,使得神經網路能夠模型高度非線性的數學函數。Norvig和Russell證明了這一點,以XOR gate為例,用以下方式:「[...]線性分類器[...]可以表示輸入空間中的線性決策邊界。對於進位函數,這是正確的,這是一個邏輯AND[...]。然而,求和函數是兩個輸入的XOR(異或)。這個函數不是線性可分的,所以感知器不能學習它。線性可分的函數只是所有布爾函數的一小部分。「(P. Norvig and S. J. Russell, Artificial Intelligence: A Modern Approach, Prentice Hall, 2010)。

在深入研究神經網路(NNs)的學習過程之前,對之前的模型做兩個補充是很重要的:

1)誤差函數(也稱為成本函數),

2)激活函數。

補充1. 表示預測的最可靠方法是通過概率向量進行預測。我們考慮一個基於標籤圖像的啤酒名稱預測的例子。圖2顯示了一個分類器的概率輸出(注意所有的值總和為1),與期望輸出作比較。在本節中引入的一個成本函數,稱為分類交叉熵(方程6),簡單地衡量這兩個概率分布(預測和期望)之間的相關性。注意,通過一個one-hot編碼示例的乘法,強制函數只比較期望分布的非零元素,並將分類器輸出的值從1被懲罰到接近於1的值(由於對數的性質)。

圖2:分類器輸入、分類器輸出和期望的(one-hot編碼)輸出的圖例。

d_i是one-hot編碼(期望的)概率向量d的第i個元素,

p_i是分類器預測的概率向量p的第i個元素。

補充2. 單元(Units)的值很少被顯式傳播到下一層。所謂的激活函數是被用來代替的。這一節中介紹的函數是Sigmoid(公式7)。圖1中簡單的神經網路的更新模型如圖3所示。值得指出的一點是sigmoid和softmax函數(公式8)之間的區別,它們都是在人工神經網路中使用的。sigmoid輸入單個值並輸出歸一化的標量,但softmax輸入一個值列表並輸出一個向量(範圍是[0,1]的實數且和為1),因此可以將其解釋為概率分布。Sigmoid用於隱藏單位,而softmax通常應用於最後一個輸出層。這兩個函數都可以歸類為邏輯函數。

圖3:圖1中簡單神經網路的更新模型。g是sigmoid激活函數。輸出通常使用softmax進行正則化。

Softmax函數s(z)_j將K維向量z壓縮成K維概率分布,其中j = 1,...,K。

神經網路學習過程的目標是找到正確的權值,即權重,將產生一個數學模型,其中輸入的差異清楚地表示在輸出向量中,這是分析和預測的基礎。例如,在一個經過訓練的犬種分類器中,德國牧羊犬圖像的輸出向量明顯不同於約克犬。這可以很容易地進行解釋,併產生正確的人類可讀的品種預測。目前,最著名的訓練網路的方法是通過反向傳播演算法。該方法的主要思想是計算相對於每個權重的成本函數E(例如分類交叉熵)的梯度,對每一個權值進行計算,然後根據公式9中所示的一些梯度來進行更新。

alpha是一個學習率(指應該使用哪一部分的梯度)。

我們來考慮圖4中的神經網路,它具有三個神經元,一個隱層和sigmoid激活函數。 在進行反向傳播之前,執行所謂的正向傳遞,它僅僅是一個給定輸入的數學推斷(等式10)。

圖4:一個簡單的帶有sigmod激活函數的神經網路

如前所述,NN的學習演算法基於計算每個權重的偏導數。 函數的深層嵌套(即更複雜的網路)鼓勵利用鏈式規則。圖5概括了使用分類交叉熵誤差函數E的反向傳播的單獨步驟。公式11和公式12表示學習過程發生所必需的符號梯度計算。在這裡,可以使用一個簡單的sigmoid函數的衍生物。

圖5 鏈式規則反向傳播過程中的描述

在後面的符號計算中,考慮圖5中神經網路的以下輸入:

1)訓練的例子。 當輸入等於10時,NN應力爭返回1

2)第一次正向通過使用的隨機初始化權重(等式10)。

給定隨機初始化權重和輸入,學習過程的主要步驟是進行推斷。 產生的結果如下:

這與期望值相差太遠。向後傳播允許計算每個權重的梯度,即:

在應用來自等式9的更新規則之後,在學習率α= 0.5的情況下,新的權重是:

併產生結果:

這個結果更接近所需的1! 由於提出的演算法是迭代的。 隨著上述步驟重複數量的增加和例子數量的增加,它應該收斂到最佳的權重(全局或局部)。

https://towardsdatascience.com/let-me-introduce-you-to-neural-networks-fedf4253106a

-END-

歡迎大家評論

GIF

聲明:版權歸原作者所有。文章觀點不代表本機構立場。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 學術plus 的精彩文章:

學報:一種無人集群系統模擬平台設計(下)無人集群模擬平台設計與系統驗證

TAG:學術plus |