人工神經網絡 ( ANN )是 人工智能( AI ) 技術的基本構件。人工神經網絡是 machine-learning 模型的基礎;它們模擬的學習過程與人腦相同。簡言之,人工神經網絡賦予機器完成特定任務的類似于人的性能(以及更高性能)的能力。本文旨在為數據科學家提供基本的高級知識,以了解在訓練 ANN 時調用的函數和方法所涉及的低級操作。
作為數據科學家,我們的目標是通過暴露數據中的模式來解決業務問題。通常,這是通過使用機器學習算法來識別模式和以模型表示的預測來完成的。為特定用例選擇正確的模型,并適當地調整參數,需要徹底了解問題和底層算法。對問題域和算法的理解是需要考慮的,以確保我們正確使用模型,并正確解釋結果。
本文介紹并解釋了梯度下降和反向傳播算法。這些算法有助于 ANN 從數據集中學習,特別是在涉及數據點和神經網絡預測的操作導致網絡參數值發生修改的情況下。
建立直覺
在我們進入這篇文章的技術細節之前,讓我們先看看人類是如何學習的。
人類大腦的學習過程是復雜的,研究幾乎沒有觸及人類學習的表面。然而,我們所知道的很少的東西對構建模型是有價值和有幫助的。與機器不同,人類不需要大量數據來理解如何解決問題或做出邏輯預測;相反,我們從經驗和錯誤中學習。
人類通過突觸可塑性的過程學習。突觸可塑性是一個術語,用來描述獲得新信息后新的神經連接是如何形成和加強的。就像我們在經歷新事件時大腦中的連接得到加強和形成一樣,我們通過計算神經網絡預測的誤差來訓練人工神經網絡,并根據這些誤差加強或削弱神經元之間的內部連接。
梯度下降
梯度下降是一種標準的優化算法。它通常是第一個用于訓練機器學習的優化算法。讓我們剖析“梯度下降”這個術語,以便更好地理解它與機器學習算法的關系。
坡度是對直線或曲線的陡度進行量化的測量。從數學上講,它詳細說明了直線上升或下降的方向。下降是向下的動作。因此,梯度下降算法根據這些短語的兩個簡單定義量化向下運動。
為了訓練機器學習算法,您需要努力識別網絡中的權重和偏差,以幫助您解決所考慮的問題。例如,您可能有分類問題。查看圖像時,需要確定圖像是貓還是狗。為了建立模型,您需要使用正確標記的貓和狗圖像數據樣本來訓練算法。
雖然上面描述的示例是分類,但問題可能是定位或檢測。盡管如此, well 神經網絡在問題上的表現被建模為一個函數,更具體地說,是一個成本函數;成本或有時被稱為損失函數的東西衡量模型的錯誤程度。成本函數的偏導數影響最終模型的權重和選擇的偏差。
梯度下降是一種算法,有助于搜索參數值,使代價函數最小化,以達到局部最小或最優精度。
神經網絡中的代價函數、梯度下降和反向傳播
神經網絡令人印象深刻。同樣令人印象深刻的是,計算程序能夠區分圖像和圖像中的對象,而無需明確告知要檢測的特征。
將神經網絡視為接受輸入(數據)以產生輸出預測的函數是有幫助的。這個函數的變量是神經元的參數或權重。
因此,解決交給神經網絡的任務的關鍵任務是以近似或最好地代表數據集的方式調整權重和偏差的值。
下圖描繪了一個接收輸入( X )的簡單神經網絡1十、2十、3十、N) ,這些輸入被轉發到包含權重( W )的層內的神經元1W2W3WN) .輸入和權重經過乘法運算,結果通過加法器()相加,激活函數調節層的最終輸出。


為了評估神經網絡的性能,需要一種機制來量化神經網絡預測和實際數據樣本值之間的差異或差距,從而計算出影響神經網絡內權重和偏差修改的因素。
cost function 簡化了神經網絡預測值和數據樣本實際值之間的誤差差距。


上圖展示了一個由密集連接的神經元組成的簡單神經網絡結構,它對包含數字 0-3 的圖像進行分類。輸出層中的每個神經元對應一個數字。與神經元連接的激活程度越高,神經元輸出的概率就越高。概率對應于通過網絡前饋的數字與激活的神經元相關聯的可能性。
當一個“ 3 ”通過網絡前饋時,我們期望負責分類“ 3 ”的連接(由圖中的箭頭表示)具有更高的激活度,這導致與數字“ 3 ”相關的輸出神經元的概率更高。
神經元的激活有幾個因素,即偏差、權重和前一層的激活。為了使神經網絡在特定數據集上獲得最佳性能,必須對這些指定的組件進行迭代修改。
通過利用“均方誤差”等成本函數,我們獲得了與網絡誤差有關的信息,用于通過網絡的權重和偏差向后傳播更新。
為完整起見,以下是機器學習中使用的成本函數示例:
- 均方誤差
- 范疇交叉熵
- 二元交叉熵
- 對數損失
我們已經介紹了如何通過測量網絡預測的技術來提高神經網絡的性能。本文的其余內容主要關注梯度下降、反向傳播和成本函數之間的關系。
圖 3 中的圖像顯示了繪制在 x 軸和 y 軸上的成本函數,該函數的參數空間中包含值。讓我們來看看神經網絡是如何學習的,它將代價函數可視化為一個不均勻的曲面,繪制在一個圖上,在可能的權重/參數值的參數空間內。


上圖中的藍色點表示搜索局部最小值的步驟(將參數值計算到成本函數中)。建模成本函數的最低點對應于導致成本函數最低值的權重值的位置。代價函數越小,神經網絡的性能越好。因此,可以根據收集的信息修改網絡的權重。
梯度下降法是一種算法,用于引導在每一步中選擇的成對值朝著最小值移動。
- 局部最小值:成本函數指定范圍或扇區內的最小參數值。
- 全局最小值:這是整個成本函數域內的最小參數值。
梯度下降算法通過計算可微函數的梯度并沿梯度的相反方向移動,指導搜索以局部/全局最小值最小化函數的值。
反向傳播是一種機制,通過這種機制,可以反復調整影響神經元輸出的組件(偏差、權重、激活),以降低成本函數。在神經網絡的結構中,神經元的輸入,包括與前一層神經元的所有先前連接,決定了它的輸出。
反向傳播涉及的關鍵數學過程是導數的計算。反向傳播操作計算成本函數相對于權重、偏差和前一層激活的偏導數,以確定哪些值會影響成本函數的梯度。
通過計算梯度使代價函數最小化,得到局部極小值。在每個迭代或訓練步驟中,網絡中的權重通過計算的梯度以及 learning rate 進行更新,該梯度控制對權重值的修改因子。在神經網絡的訓練階段,每個步驟都要重復這個過程。理想情況下,目標是在每一步之后更接近局部最小值。
“反向傳播”這個名字來源于進程的字面意思,即“錯誤的反向傳播”。梯度的偏導數量化了誤差。通過在網絡中向后傳播誤差,最后一層(距離輸出層最近的層)梯度的偏導數用于計算第二層到最后一層的梯度。
誤差在各層中傳播,并利用當前層中前一層的梯度偏導數,直到到達網絡中的第一層(距離輸入層最近的層)。
總結
這只是梯度下降主題的入門。有一個數學和微積分的世界與梯度下降相關。
TensorFlow 、 SciKit-Learn 、 PyTorch 等軟件包通常會抽象出實現訓練和優化算法的復雜性。然而,這并不能免除數據科學家和 ML 從業者理解這些智能“黑匣子”背后發生的事情的要求
想探索更多與反向傳播相關的數學知識嗎?以下是一些幫助您探索的資源:
通過探索 NVIDIA 深度學習學院 提供的各種課程,深入了解深度學習的世界。
感謝閱讀!
?