學習/訓練演算法分類
神經網路類型的不同,對應了不同類型的訓練/學習演算法。因而根據神經網路的分類,總結起來,傳統神經網路的學習演算法也可以主要分為以下三類:
1)前饋型神經網路學習演算法-----(前饋型神經網路)
2)反饋型神經網路學習演算法------(反饋型神經網路)
3)自組織神經網路學習演算法------(自組織神經網路)
以下我們將通過三類典型的神經網路模型分別闡述這三類不同的學習演算法其區別與相似點。
雖然針對不同的網路模型,這裡產生了三類不同類型的訓練演算法,但是總結起來,這三類訓練演算法都可以歸屬到兩種類型的機器訓練方法中,即監督型學習演算法和非監督型
學習演算法。在20-30年的神經網路學習演算法研究過程中,科學家往往都通過將監督型學習演算法和非監督型學習演算法進行單獨或混合使用,提出並構建出了不同類型的訓練演算法及
其改進演算法。因而總結起來現今的神經網路訓練演算法都可以歸類到監督型學習演算法和非監督型學習演算法中,這在後續講解的Deep Learning中的DBNs網路學習中也會體現出
來。當然目前也提出一種半監督學習方法,其定義為。
半監督學習(Semi-supervised Learning)是模式識別和機器學習領域研究的重點問題,是監督學習與無監督學習相結合的一種學習方法。它主要考慮如何利用少量的標註樣本和大量的未標註樣本進行訓練和分類的問題。半監督學習對於減少標註代價,提高學習機器效能具有非常重大的實際意義。
半監督學習是監督學習演算法和非監督學習演算法的結合體,可以認為是兩種方法的結合型演算法,其根源也歸屬為兩類本質的學習演算法,因而也逃不脫監督學習和非監督學習領域圈,這裡我們就不再進一步深入討論半監督學習演算法了。
在以下傳統神經網路訓練演算法的總結中我們也將具體指明具體的訓練演算法和監督型學習演算法和非監督型學習演算法的關係。 BP神經網路訓練演算法 以下我們分析BP神經網路學習過程。其學習演算法基本步驟可以歸納如下:
1、初始化網路權值和神經元的閾值(最簡單的辦法就是隨機初始化)
2、前向傳播:按照公式一層一層的計算隱層神經元和輸出層神經元的輸入和輸出。
3、後向傳播:根據公式修正權值和閾值
直到滿足終止條件。
演算法通過一定的判定函數,對前向傳播結果進行判定,並通過後向傳播過程對網路參數進行修正,起到監督學習的作用,因而傳統的BP經網路訓練過程可以歸納為一類典型的監督學習過程。
BP是後向傳播的英文縮寫,那麼傳播對象是什麼。傳播的目的是什麼。傳播的方式是後向,可這又是什麼意思呢。
傳播的對象是誤差,傳播的目的是得到所有層的估計誤差,後向是說由後層誤差推導前層誤差:
即BP的思想可以總結為 利用輸出後的誤差來估計輸出層的直接前置層的誤差,再用這個誤差估計更前一層的誤差,如此一層一層的反傳下去,就獲得了所有其他各層的誤差估計。 “BP神經網路模型拓撲結構包括輸入層(input)、隱層(hide layer)和輸出層(output layer)”
我們來看一個最簡單的三層BP:
“BP網路能學習和存貯大量的輸入-輸出模式映射關係,而無需事前揭示描述這種映射關係的數學方程。”
BP利用一種稱為啟用函數來描述層與層輸出之間的關係,從而類比各層神經元之間的互動反應。
啟用函數必須滿足處處可導的條件。那麼比較常用的是一種稱為S型函數的啟用函數:
那麼上面的函數為什麼稱為是S型函數呢:
我們來看它的形態和它導數的形態:
p.s. S型函數的導數:
神經網路的學習目的: 希望能夠學習到一個模型,能夠對輸入輸出一個我們期望的輸出。 學習的方式: 在外界輸入樣本的刺激下不斷改變網路的串連權值 學習的本質: 對各串連權值的動態調整
學習的核心:
權值調整規則,即在學習過程中網路中各神經元的串連權變化所依據的一定的調整規則。
二,有監督的BP模型訓練過程
1. 思想
有監督的BP模型訓練表示我們有一個訓練集,它包括了: input X 和它被期望擁有的輸出 output Y
所以對於當前的一個BP模型,我們能夠獲得它針對於訓練集的誤差
所以BP的核心思想就是:將輸出誤差以某種形式通過隱層向輸入層逐層反傳,這裡的某種形式其實就是:
也就是一種 "訊號的正向傳播 ----> 誤差的反向傳播"的過程:
2.具體
這裡解釋下根據誤差對權值的偏導數來修訂權值:
References
http://www.360doc.com/content/13/1217/13/9282836_337854682.shtml