神經網路如何使用反向傳播進行學習?
神經網路是一系列演算法,試圖透過模仿人腦工作方式的過程來識別一組資料中的基本關係。在這種方法中,神經網路代表神經元系統,例如有機或人工神經元系統。
神經網路是根據認知系統中學習過程和大腦神經服務的(假設的)程式建模的分析方法,能夠在執行所謂的從當前資訊中學習的過程後,根據其他觀察結果預測新的觀察結果(關於特定變數)。
反向傳播的步驟如下:
網路接收一個訓練例項,並使用網路中的當前權重計算輸出或輸出結果。
反向傳播透過計算計算結果與預期結果(實際結果)之間的差值來計算誤差。
誤差被反饋到網路中,權重被修改以最小化誤差,因此稱為反向傳播,因為誤差被反向傳播到網路中。
反向傳播演算法透過將每個訓練例項上產生的值與實際值進行比較來計算網路的總誤差。它可以改變輸出層的權重以減少誤差,但不能消除誤差。然而,演算法尚未完成。
它可以將責任歸咎於網路中之前的節點,並改變連線這些節點的權重,從而進一步減少總誤差。分配責任的具體方法並不重要。需要說明的是,反向傳播需要一個複雜的數值過程,需要對啟用函式進行求導。
這種改變權重的方法被稱為廣義δ規則。使用廣義δ規則有兩個重要的引數。第一個是動量,它定義了每個單元內權重改變其“方向”的趨勢。
也就是說,每個權重都記住它是否一直在變大或變小,動量試圖保持它朝著相同的方向前進。具有較大動量的網路對需要反轉權重的新的訓練例項反應緩慢。如果動量低,則權重可以更自由地振盪。
學習率控制權重變化的速度。學習率的最佳方法是從大值開始,隨著網路訓練逐漸減小。最初,權重是隨機的,因此高振盪有助於接近最佳權重。但是,隨著網路越來越接近最佳解決方案,學習率必須減小,以便網路可以微調到全域性最優權重。
廣告