- 自動駕駛:感知原理與實踐
- 龔心滿等編著
- 887字
- 2023-09-07 19:26:16
1.1.2 神經網絡
1.1.1節簡單地討論了感知機的話題,但是感知機只能解決一些簡單的二分類問題,面對更復雜的多分類問題就束手無策了,于是,需要提升網絡的復雜度,使用多層感知機網絡來解決問題,這里的多層感知機網絡便是神經網絡模型。
神經網絡的結構如圖1.2所示。通常一個神經網絡主要包含輸入層、隱層和輸出層。圖1.2中的每個圓圈均可看作一個簡單的神經元(感知機)。

圖1.2 神經網絡的結構
其實,設計神經網絡的重要工作主要體現在隱層的設計和神經元之間的權重上。
理論上,只要在隱層神經元數量足夠的情況下,單隱層神經網絡就可以擬合和逼近任何連續函數。但是,很多人還是會選擇設計多隱層神經網絡。雖然從數學原理上說,這與單隱層神經網絡的數學表達是一致的,但是,多隱層神經網絡的效果會比單隱層神經網絡的效果好很多。
但是,這里的層數設計和隱層神經元數量不能盲目地增加,因為過多的層數或神經元會帶來嚴重的過擬合和巨大的參數量等問題。
簡單了解神經網絡的概念后,這里簡要說明一下神經網絡的工作原理。神經網絡在工作過程中主要涉及以下幾方面:前向傳播、反向傳播和損失函數。對于前向傳播,即前面所說的神經網絡正向計算的過程(感知機的計算),這里不再復述。下面主要針對反向傳播和損失函數進行分析。
對于多分類任務,神經網絡經常使用的損失函數為交叉熵損失函數:

式中,x(i)為神經網絡的輸入數據;hθ(x(i) )為神經網絡預測的結果;y(i)為x(i)對應的標簽;θ為神經元參數;SL為所有神經網絡層的數量。
在神經網絡訓練過程中,交叉熵損失函數需要進行反向傳播。這里的反向傳播是一種用于神經網絡求解參數梯度的方法。下面僅簡單舉例來說明反向傳播的過程。在計算梯度時,需要多次采用鏈式法則:

如式(1.4)和圖1.3所示,不難看出,只要求出和
,就能算出損失函數對θ1的梯度。除順序使用遞歸求解外,如果從輸出層開始反向逐層計算梯度,則可直接求解,這便是反向傳播的過程。
這里總結一下神經網絡的訓練過程。
第1步,數據集的收集和標注,了解輸入數據和標簽。
第2步,設計神經網絡模型。
第3步,選擇損失函數,并反復訓練,直至模型收斂(滿足要求即可)。


圖1.3 神經元的反向傳播