【神经网络分类器】(一)你知道神经网络怎么用无监督算法训练吗?
建議閱讀本文之前閱讀以下文章:
 【線性分類器】(二)“深度學習”的鼻祖——感知器
【神經網絡分類器】(一)人工神經元網絡的基本概念
背景:
 
 人工神經網絡的發端可以追溯到 1943 年沃倫·麥卡洛克(Warren McCulloch)和沃爾特·皮茲(Walter Pitts)提出的 M-P 模型,也就是我們非常熟悉的輸入加權求和再與閾值比較來激發輸出的神經元模型,1957 年羅森布拉特提出的感知器激起了第一次人工神經網絡的熱潮,而 1969 年明斯基等人無情的批判,導致人工神經網絡研究跌入第一個寒冬,幾乎無人問津,一直持續到 1986 年 Rumelhart和 Hinton 提出 BP 網絡,解決了多層神經網絡訓練的問題,特別是 1989 年 Robert Hecht-Nielsen 證明了 MLP 的萬能逼近定理,多層的人工神經網絡再次受到重視,但是由于 BP 算法無法訓練太深的神經網絡,限制了人工神經網絡的能力提升,再加上支持向量機等算法的沖擊,人工神經網絡研究再次冷寂下來,但是少數研究者還沒有放棄,包括剛剛獲得 2018 年圖靈獎的 Hinton、Yan LeCun,Bengio等人,都在持續不斷地研究如何有效訓練深度的神經網絡,并以 2006 年 Hinton的一篇論文為啟動,以 2012 年 Alexnet 在 ImageNet 圖像識別競賽上大獲成功為加速,帶來了人工神經網絡研究的新熱潮。
文章目錄
- 【神經網絡分類器】(一)人工神經元網絡的基本概念
- 1 人工神經元模型
- 2 人工神經元網絡
- 2.1 前饋型網絡
- 2.2 反饋型網絡
- 2.3 人工神經元網絡特點
- 2.4 硬件實現
 
- 3 人工神經元的學習規則
- 3.1 誤差反饋學習——δ\deltaδ學習(有監督)
- 3.2 Hebb 學習(無監督)
 
- 4 人工神經網絡的學習規則
- 4.1 逐層更新
- 4.2 競爭學習
- 4.3 概率型學習
 
 
1 人工神經元模型
首先我們從人腦發揮功能的最基本的單元,即神經元的模型出發,來了解神經網絡分類器究竟是如何發揮作用的。
人工神經元是生物神經元的模擬模型。
 
生物神經元包括四個主要部分:細胞體、樹突、軸突和突觸。
樹突的作用是用于接受周圍其他神經元傳入的神經沖動。
 軸突的功能是通過軸突末梢向其他神經元傳出神經沖動。
每個神經細胞所產生和傳遞的基本信息是興奮或抑制。在兩個神經細胞之間的相互接觸點稱為突觸。
一個神經細胞的樹突,在突觸處從其他神經細胞接受信號。這些信號可能是興奮性的,也可能是抑制性的。所有樹突接受到的信號都傳到細胞體進行綜合處理,如果在一個時間間隔內,某一細胞接受到的興奮性信號量足夠大,以致于使該細胞被激活,而產生一個脈沖信號。這個信號將沿著該細胞的軸突傳送出去,并通過突觸傳給其他神經細胞神經細胞通過突觸的聯接形成神經網絡。
因此,神經元的工作機理,可以看作是對所有輸入信號(xxx)加權(www)求和后,與一個閾值θ\thetaθ相比較,如果輸入的強度超過了閾值,則根據一定的規則激發輸出并傳播出去的過程。可以用一個簡化的圖形來描述,輸出輸入之間的關系,則可以用激活函數來表示,即 y=f(u)=f(∑i=1nwixi?θ)y=f(u)=f(\sum_{i=1}^nw_ix_i-\theta)y=f(u)=f(∑i=1n?wi?xi??θ) 。
如果我們實現了這樣一個輸入輸出之間的映射關系。那么,我們也就建立起了一個人工神經元模型,可以用于對真實生物神經元的功能進行模擬。
激活函數反映了人工神經元模型中輸入輸出之間的關系。當我們把輸入信號的加權后,再減去閾值后的值作為激發神經元輸出的“凈激勵 uuu”,則 yyy 和 uuu 之間,是一個單變量的函數關系,常用的有以下一些函數形式。
(1) 階躍函數
階躍函數具有二值化輸出,即當凈激勵大等于 0 時,輸出 1,凈激勵小于0 時,輸出 0。因此,如果采用階躍函數作為激活函數,我們就得到了一個非常簡單的二類分類器,它可以根據一個輸入向量,來做出明確的分類決策。這就是著名的感知器
但是,階躍函數有一個致命的缺陷,就是在 0 點處的導數是無窮大的,這給很多數學算法的實現都帶來了困難。
(2) Sigmoid函數
 
Sigmoid 函數是一個連續、光滑、單調的函數形式,其導數等于:
 f′(u)=f(u)(1?f(u))f'(u)=f(u)(1-f(u))f′(u)=f(u)(1?f(u))
非常易于計算,并且輸入輸出關系也與生物神經元的響應模式比較接近。Sigmoid 函數的一個缺點是飽和特性,即在凈激勵稍大的情況下,輸出基本不再變化。這會給深度神經網絡的訓練帶來很大的問題。
(3) ReLU函數
 
ReLU 函數是一種分段線性化函數,它的形式非常簡單,在凈激勵小于 0 時沒有輸出,當凈激勵大于等于 0 時則輸出與 uuu 相同。
ReLU 在 uuu 大于 0 時沒有飽和問題,因此,在多層神經網絡中信號傳遞不會衰減,可以使得訓練時更加高效,但是需要注意的是:一個真實的神經元真的能夠產生大小不限的輸出信號嗎?這
 顯然是與事實相違背的。這也就使得使用 ReLU 函數的人工神經元網絡無論性能有多好,都不可能與真實的生物神經網絡相一致。也就是說,在這一基礎上設計出的人工智能系統,將從機理上與真實的生物智能系統漸行漸遠。
ReLU 函數還有一個缺點,就是在 uuu 小于 0 時,輸出不再變化。此時神經元相當于“死掉了”,也就不再會對其他神經元產生影響,這對神經網絡的訓練是不利的。
(4) ELU函數
 
ELU 函數是對 ReLU 的一種改進,它與 ReLU 函數的最大不同是當 uuu 小于 0時,神經元是有輸出的,因此,可以避免神經元在網絡訓練過程中的“死亡”。ELU 自 2015 年提出后,已經被驗證效果優于 ReLU 及其各種變體。
2 人工神經元網絡
我們了解了人工神經元模型。但是,單個的人工神經元功能并不強大,只有當神經元與神經元彼此連接起來,構成復雜的網絡時,才會發揮出巨大的能力。根據神經元連接方式和信息傳遞方向,人工神經元網絡可以劃分為前饋型網絡和反饋型網絡兩大類。
2.1 前饋型網絡
前饋型網絡中,神經元有明顯的層次,神經元之間的連接總是從前一層的輸出,連接到下一層的輸入,因此,信息總是從前一層的神經元,單向傳遞到下一層的神經元。
在整個網絡中,直接接受外界信息的一層神經元稱為“輸入層”,直接輸出信息到外界的一層神經元稱為“輸出層”。而除了輸入層和輸出層以外的其他神經元,稱為“隱含層”,也常常簡稱為“隱層”。
隱層的神經元是外界無法直接訪問的,但是他們和輸入層、輸出層之間的連接,以及隱層神經元互相之間的連接,是人工神經元網絡實現復雜功能的核心。這就使得人工神經元網絡的運行成為一個“黑箱”,我們只能獲得輸入數據和輸出數據,但對輸入輸出之間的映射關系不一定能得到解析的表達,也無法得知實現這一映射的過程中人工神經元網絡內部的計算過程。
前饋性網絡還有一個重要的特性,就是它是一個靜態的模型。當前時刻網絡的輸出,只與當前時刻的網絡輸入和各個神經元的模型有關,而與歷史時刻的網絡輸入輸出無關。這使得我們給定輸入,能夠得到一個確定的輸出結果,也就更方便我們依據結果來對網絡的模型進行修正,即實現神經網絡的學習。
2.2 反饋型網絡
反饋型神經網絡是一種存在從靠近輸出端的神經元向靠近輸入端的神經元的信息傳遞的網絡,即部分后端的神經元的輸出,連接到了更靠前的神經元的輸入上,從而使當前的神經網絡輸出,不僅與當前的輸入有關,而且與之前時刻的網絡輸入和輸出有關。也就是說,反饋網絡是有“記憶”的。
反饋型神經網絡可以仍然是分層的,但是存在輸出層到輸入層的反饋(例如Hopfiled 網絡),或者僅僅是后一層向前一層的反饋(例如受限玻爾茲曼機);也可能沒有明顯層次,神經元之間互相連接。
 
顯然,反饋型神經網絡的動態行為會更加復雜,研究起來會十分困難。因此,除少數有特殊結構的網絡類型外,使用最多的還是前饋型網絡。
2.3 人工神經元網絡特點
一個人工神經元網絡之所以能夠展示出輸入與輸出之間的某種映射關系,是由其內部結構和參數共同決定的。
- 從結構上說,神經元之間的連接關系是最重要的影響因素;
- 而從參數上來說,則是每個神經元的模型參數為關鍵。
神經元模型可以用輸入加權和減去閾值后的凈激勵,去激發激活函數的輸出來描述。所以,神經元模型的參數包括每個輸入的加權權值和激活閾值(也稱為偏置量)。
因此,如果一個神經網絡能夠實現學習,就是要根據給定的訓練集(有類別標簽或無類別標簽),通過某種算法去調節神經元之間的連接關系,以及每個神經元的模型參數,去使得網絡輸入輸出之間的映射關系,能夠符合真實樣本的特點,即學習到數據集中蘊含的客觀規律。
生物神經網絡的學習,在很大程度上依賴的是神經元數量的變化和神經元間連接關系的變更,這在腦科學和學習科學的研究中得到了確鑿的證實。
但是對于人工神經元網絡而言,一旦網絡搭建好,更改神經元的數量和神經元之間的連接就不再能輕易完成,所以網絡的學習主要就是調整各個神經元模型的參數。如果把每個神經元每個輸入的加權值組成一個權向量,則學習的主要目標就是求解最優的權向量 www 和偏置量 θ\thetaθ。
對于神經網絡的學習,同樣也有有監督學習和無監督學習兩種模式。只是由于人工神經元網絡自身的復雜性,大多數無監督學習的算法都還不能取得很好的效果。目前仍然是以有監督學習為主。
人工神經元網絡作為人類模擬生物智能機理的一種嘗試,具有許多與傳統計算機原理所不同的特點:
(1)簡單單元構成復雜的網絡:人工神經元網絡的組成單元是模型十分簡單的神經元,通過大量神經元間復雜的相互連接所構成的網絡,卻可以實現復雜的功能。這就是目前復雜性科學研究的重點,即整體的復雜特性是如何從大量簡單個體所構成的網絡中涌現出來的。
(2)本質上的并行計算:人工神經元網絡中的每一個神經元,都是一個獨立的計算單元,可以根據自己的輸入和激活函數產生輸出,這使得整個網絡變成了一個巨大的并行計算裝置,其計算能力的提升是傳統的諾依曼體系計算機所無法比擬的。
(3)分布式信息存儲:通過人工神經元網絡的學習,每個神經元的權向量和偏置量,都被調整到了能產生最符合訓練集數據特性的最優值上。也就是說,數據集中所蘊含的知識被網絡學習到了。而這些知識的表現,就是存儲在每一個神經元上的模型參數值。所以,人工神經元網絡的信息存儲是分布式的,這是一種十分重要的特點。因為分布式的信息存儲,不僅能夠有更高的可靠性和冗余度,而且在信息檢索和使用上都會帶來巨大的性能提升。
(4)非線性逼近能力:人工神經元網絡之所以可以產生復雜的功能,這和神經元模型所使用的非線性激活函數是密切相關的。試想一下,如果每個神經元所使用的激活函數都是一個線性函數,輸出只是輸入的簡單線性放大,那么整個網絡的輸入輸出就是“穿透性”的,不會有什么復雜的功能涌現出來。理論上可以證明,只要使用非線性激活函數,選擇適當的權值、閾值和足夠的隱層單元,只需要三層的人工神經元網絡(就是包含輸入層、輸出層和 1 個隱含層),就可以無限逼近輸入輸出之間任意連續的非線性函數映射。
(5)自適應學習能力:人工神經元網絡是具有學習能力的,并且是從數據中去自主學習,這也是人工智能的基本特征之一。
2.4 硬件實現
從人工神經元網絡的特點可以看出,如果我們要實現一個人工神經元網絡,最佳的途徑是用硬件去實現。事實上,由于單個人工神經元模型非常簡單,并且激活函數是連續函數,所以,用阻容元件就完全可以搭出一個人工神經元網絡。當然,這樣搭建的網絡規模無法太大,網絡中每個神經元的參數也很難通過自主學習來調節,所以,通過集成電路來實現人工神經元網絡,就變成了最合適的選擇。人工神經元網絡的芯片可以是模擬的,也可以是數字的。
當前最主流的方案包括使用 GPU(Graphics Processing Unit)、FPGA (Field Programmable Gate Array)和設計專門的 ASIC(Application Specific Integrated Circuit) 芯片來在現有架構下實現神經網絡所需運算和存儲的加速。
GPU 原本是用于對計算機圖形進行高速處理的專用芯片。它設計了大量的運算單元,可以并行對圖像像素點矩陣進行處理。GPU 單個單元運算能力雖然不高,但是運算單元多,又是真正的并行處理模式,因此十分適合用來實現人工神經元網絡。也對此次人工智能的快速發展起到了重要的推動作用。
 
FPGA,即現場可編程門陣列,是一種可以通過軟件編程改變電路結構的半定制大規模集成電路。因此 FPGA 既可通過軟件靈活編程來完成特定計算功能,又具有專用硬件電路所具有的高效性。微軟等公司就是用 FPGA 來完成人工神經元網絡的搭建。
 
目前還有一些專門設計的 AI 芯片,其實是一種綜合性的設計,包含了部分GPU、FPGA 的元素,但最主要是通過各種設計來突破傳統計算架構中影響高速并行計算的各種瓶頸,包括 CPU 核間通訊
 
當然,在多數非商業應用的場合和對人工智能的理論研究過程中,還是使用各種運行在現有計算機體系上的軟件系統,來模擬大規模并行計算的人工神經元網絡。這種軟件模擬雖然方便靈活,算法調試和修改也非常容易,但是因為沒有發揮出人工神經元網絡本質上的優勢,所以運行效率較低。
3 人工神經元的學習規則
神經網絡的輸入輸出映射關系,是由每個神經元的激活函數形式、輸入權向量 www 和偏置量θθθ,以及網絡結構共同來決定的。一般我們設計一個網絡,都會確定好網絡的結構,包括神經元的數量和神經元與神經元之間的連接關系,以及每個神經元的激活函數形式。那么,通過訓練集數據進行學習來調整的,主要就是輸入權向量 www 和偏置量θθθ。
如果我們把網絡的所有輸入組合起來,成為一個輸入向量,輸出的組合成為一個輸出向量,那么,可以說神經網絡的學習,就是根據輸入向量所對應的特征值分布,去尋找能夠產生輸出向量的最佳網絡參數。因此,人工神經元網絡,仍然屬于統計模式識別的范疇。
 
對于一個完整的神經網絡訓練問題,可以把它分成兩個問題來研究:
- 一個是每個神經元如何根據輸入輸出數據來學習到自身最優的參數
- 另一個是如何使得網絡中的神經元都能獲得有效的輸入輸出數據來完成自身的學習,這在存在多個層次或復雜連接的神經網絡中尤為重要。
對于每一個神經元來說,它是用輸入信號與偏置量之間的線性組合構成凈激勵,再用凈激勵通過激活函數去激發輸出。而其中可以調整的參數包括每個輸入的權值和偏置量。
由于偏置量與輸入權值的處理是分離的,十分不便。為了規范化,我們可以把輸入增加一個取值固定為-1 的維度,構成 n+1n+1n+1 維的輸入向量 xxx,偏置量和輸入權值就一起組成一個 n+1n+1n+1 維的增廣權向量 www,則神經元的輸入輸出關系就可以簡化為 y=f(wTx)y=f(w^Tx)y=f(wTx)。
 
神經元的學習就是根據訓練集中所包含的信息,去求取增廣權向量 www 的最優值。由于訓練集中所包含的樣本是離散的,激活函數又往往具有非線性,所以,直接得到最優 www 的解析解非常困難,需要通過遞推的方式,逐步修正 www 的值,使其不斷逼近其最優解。因此,神經元學習的基本模式,就是求取 Δw\Delta wΔw 的表達式,然后用 w(k+1)=w(k)+Δww(k+1)=w(k)+ \Delta ww(k+1)=w(k)+Δw來實現權向量的數值求解。
那么,Δw\Delta wΔw應該如何設定呢?在人工智能的發展過程中,先后提出了數十種 Δw\Delta wΔw 的計算方法,也就形成了數十種不同的學習規則。而日本人工智能專家甘利俊一(Shun-Ichi Amari)在 1990 年對各種學習規則進行了分析總結,提出了神經元學習的通用模型。
 
在 Amari 的模型中,ttt 時刻神經元權值的修正量
Δw(t)=ηr(x(t),y(t),yd(t))x(t)\Delta w(t)=\eta r(x(t),y(t),y_d(t))x(t)Δw(t)=ηr(x(t),y(t),yd?(t))x(t)
 
x(t)x(t)x(t)和 y(t)y(t)y(t)分別是神經元ttt 時刻的輸入和輸出向量,yd(t)y_d(t)yd?(t)則是 x(t)x(t)x(t)對應的期望輸出。r(?)r(\cdot)r(?)稱為學習信號,它是 x(t)x(t)x(t)、y(t)和 yd(t)y_d(t)yd?(t)的函數。因此,所有的神經元學習規則,其權向量修正值都是由一個學習速率與學習信號及輸入向量相乘構成的。
剛才提到,在人工智能發展史上,提出過數十種神經元的學習規則,而其中最為重要的是兩類規則:誤差反饋學習和 Hebb 學習。
3.1 誤差反饋學習——δ\deltaδ學習(有監督)
誤差反饋學習以神經元實際輸出與期望輸出之間的誤差作為產生學習信號的來源,學習目標就是通過逐步遞推修正權向量,使得誤差能夠減小直至消失。感知器算法就是一種非常典型的誤差反饋學習算法。在感知器算法中,學習信號rrr 就等于輸出誤差。即
r=e(t)=yd(t)?y(t)r=e(t)=y_d(t)-y(t)r=e(t)=yd?(t)?y(t)
因為感知器的激活函數是一個階躍函數,當分類正確時,誤差 e(t)=0e(t)=0e(t)=0,當分類錯誤時,誤差等于 1 或者-1。因此,權向量的遞歸修正量為:
 Δw(t)=±ηx(t),x(t)∈錯分樣本\Delta w(t)=\pm \eta x(t),\quad x(t)\in 錯分樣本Δw(t)=±ηx(t),x(t)∈錯分樣本
注意:此處與【線性分類器】(二)“深度學習”的鼻祖——感知器的感知器算法的差別在于這個正負號。如果我們將樣本集中負類樣本乘以-1 進行規范化,那么所有的期望輸出 ydy_dyd?都是 1,錯分的情況誤差就只有 1 一個取值,與前面學習的感知器算法完全一致了。
同屬誤差反饋學習的還有另一種非常重要的學習規則,稱為δ學習規則。這是在 1986 年,由認知心理學家 McClelland 和 Rumelhart 提出的。它所使用的學習信號是輸出誤差再乘以神經元激活函數的導數,即:
 r=(yd(t)?y(t))f′(wTx)r=(y_d(t)-y(t))f'(w^Tx)r=(yd?(t)?y(t))f′(wTx)
顯然,δδδ學習規則要求神經元的激活函數是可導的。需要注意的是,激活函數的導數,是以凈激勵,也就是 wTxw^TxwTx 來計算的,因此是個標量,而不是向量。此時權向量的修正量為:
 Δw(t)=η(yd(t)?y(t))f′(wTx)x(t)\Delta w(t)=\eta(y_d(t)-y(t))f'(w^Tx)x(t)Δw(t)=η(yd?(t)?y(t))f′(wTx)x(t)
如果激活函數比較特殊,是一個增益 1 的過原點的線性函數,即y(t)=f(wTx)=wTx,f′=1y(t)=f(w^Tx)=w^Tx,f'=1y(t)=f(wTx)=wTx,f′=1,則δ規則變形為r=(yd(t)?wTx)r=(y_d(t)-w^Tx)r=(yd?(t)?wTx),則
 Δw(t)=η(yd(t)?wTx)x(t)\Delta w(t)=\eta(y_d(t)-w^Tx)x(t)Δw(t)=η(yd?(t)?wTx)x(t)
 這就是由 1962 年由 Bernard Widrow 和Marcian Hoff 提出的 Widrow-Hoff 學習規則。Widrow-Hoff 規則不需要計算激活函數的導數,因此計算速度快,精度高。它能夠使得訓練后的神經元實現對訓練集樣本的最小二乘擬合,因此,也被稱為“最小均方誤差”規則(LMSE)。
為什么可以把 Widrow-Hoff 規則稱為最小均方誤差規則呢?我們從最小均方誤差的定義來看一看。
定義神經元對所有訓練集中樣本的輸出均方誤差為:
 E2=∑k=1N12ek2E^2=\sum_{k=1}^N\frac{1}{2}e_k^2E2=k=1∑N?21?ek2?
NNN 是樣本集中樣本的數量。
要求解使均方誤差滿足最小值的權向量 www,可以采用梯度下降法。而梯度下降法既包括批量梯度法,也包括隨機梯度法。隨機梯度法就是每次只使用一個樣本進行梯度計算,按目標函數對權向量 www 的負梯度方向調整 www,這是一種既能大幅度提高運算效率,又能夠實現在線學習的方法,并且其概率意義上的收斂性也能得到數學上的證明。
如果采用隨機梯度法,那么在每一步修正權向量 www 時,均方誤差就可以用單個樣本的平方誤差來代替,即
E2(t)=12(ydj(t)?w(t)Txj(t))2E^2(t)=\frac{1}{2}(y_{dj}(t)-w(t)^Tx_j(t))^2E2(t)=21?(ydj?(t)?w(t)Txj?(t))2
此時如果按照使平方誤差下降最快的負梯度方向來調整權向量 www,則權向量的修正量為:
 Δw(t)=?η(ydj(t)?wT(t)xj(t))(?xj(t))=η(ydj(t)?wT(t)xj(t))xj(t)\Delta w(t)=-\eta(y_{dj}(t)-w^T(t)x_j(t))(-x_j(t))\\=\eta(y_{dj}(t)-w^T(t)x_j(t))x_j(t)Δw(t)=?η(ydj?(t)?wT(t)xj?(t))(?xj?(t))=η(ydj?(t)?wT(t)xj?(t))xj?(t)
 這就是 Widrow-Hoff 規則的權向量修正公式。
事實上,δδδ學習規則的學習信號,也是通過設定最小均方誤差為權向量優化的目標函數,然后采用隨機梯度法得到的結果。感知器算法也是類似的。
從這些推導可以看出,誤差反饋學習規則,都可以看作是先設定了一個與輸出誤差的絕對值呈單調遞增關系的目標函數,然后通過隨機梯度法來求解目標函數的極小值,以逐步縮小甚至消除輸出誤差。這是目前最為主流的有監督學習模式。
3.2 Hebb 學習(無監督)
Hebb 學習規則是加拿大著名生理心理學家唐納德·赫布 D.O.Hebb 于 1949年提出的一種學習規則,它來源于一個關于神經元之間同步激活強化關系的假設,即:當一個神經元的輸出連接到另一個神經元的輸入,則如果兩個神經元的輸出同步激活時,他們之間的連接會被增強,反之則會被減弱。
這種思想類似于我們熟悉的條件反射機理。
巴甫洛夫的條件反射實驗:每次給狗喂食前都先響鈴,時間一長,狗就會將鈴聲和食物聯系起來。以后如果響鈴但是不給食物,狗也會流口水。
受該實驗的啟發,Hebb的理論認為在同一時間被激發的神經元間的聯系會被強化。比如,鈴聲響時一個神經元被激發,在同一時間食物的出現會激發附近的另一個神經元,那么這兩個神經元間的聯系就會強化,從而記住這兩個事物之間存在著聯系。相反,如果兩個神經元總是不能同步激發,那么它們間的聯系將會越來越弱。
由于一個神經元的輸出是通過另一個神經元的輸入,加權后用于激活另一個神經元的輸出,所以就單個神經元來說,可以認為輸入就是另一個神經元的輸出,輸入的權值就代表著兩個神經元之間的連接強度。因此,Hebb 規則可以簡單地總結為:當一個神經元的某一維輸入與神經元輸出同相時,該路輸入的權值應該增加,反之則應該減小。
所以,在權向量的調整過程中,學習信號可以簡單地設定為神經元輸出 yyy,即r=y(t)=f(wTx)r=y(t)=f(w^Tx)r=y(t)=f(wTx) 。此時,ttt 時刻權向量的修正值為:
 Δw(t)=ηy(t)x(t)\Delta w(t)=\eta y(t)x(t)Δw(t)=ηy(t)x(t)
假設式子中神經元A的輸出為y(t)y(t)y(t),輸入為x(t)x(t)x(t),x(t)x(t)x(t)是另一個神經元B的輸出,如果兩個神經元同時被激活,即神經元A的輸出y(t)y(t)y(t)與神經元B的輸出 x(t)x(t)x(t)同時為正,那么 w(t)w(t)w(t)將增大。如果有一個沒被激活那么w(t)w(t)w(t)將變小。
Hebb 學習規則與輸入 xxx 的期望輸出無關,也就是說,權向量 www 不是依據輸出的誤差來調節的,所以,是一種典型的無監督學習方式。需要注意的是,由于權向量調整量是由輸入輸出的乘積構成的,容易出現很大的調整步幅,因此需要精心設定學習速率ηηη,并對權向量調整的范圍設定上下界。
對 Hebb 學習規則進行簡單的變形,可以得到另一種學習規則,稱為“相關性學習”。
相關性學習中,學習信號為輸入信號的預期輸出,即r=ydr=y_dr=yd?,最終可以使得權值調整到能產生輸入的期望輸出的最優值上。因此,相關性學習是一種有監督的學習模式。
4 人工神經網絡的學習規則
神經網絡的一個特點,就是并不是所有神經元的輸入輸出都能與外界相連,甚至隱含層的神經元,其輸入輸出對于外界都是不可見的,也就無法得到用于單個神經元學習的有效數據。因此,即使有了每個神經元的學習規則,也需要研究整個神經網絡如何學習。
 下面介紹三種比較常用的神經網絡整體的學習規則。
4.1 逐層更新
它的基本思想,是從輸入層開始,以當前神經元參數為基礎,計算神經元的輸出,并將上一層的輸出作為下一層的輸入,逐層實現所有神經元輸出狀態的更新。
如果是使用無監督學習模式,在所有神經元的狀態更新完成后,就可以進行每個神經元的權向量調整,逐一完成本輪的神經網絡學習;
如果使用有監督學習模式,則需要從輸出層開始,從輸出誤差估計出輸入誤差,也就是前一層神經元的輸出誤差,將誤差也逐層傳播到所有神經元,再完成神經元的學習。
如此循環,重復進行“狀態更新-誤差更新-神經元學習”的流程,直到所有神經元的權向量都達到優化目標為止。
顯然,逐層更新只有對前饋型網絡才是有效的,而對反饋型網絡,因為神經元輸出的狀態不僅與當前輸入有關,而且與歷史時刻的輸入輸出均有關,所以逐層更新無法實現。
4.2 競爭學習
競爭學習,又稱為“Winner-Take-All”規則,它是指在同一層中,接收相同輸入的神經元,只有輸出最大的一個在競爭中獲勝,可以調整權向量,其他的神經元不調整權向量。獲勝的神經元調整權向量的規則為:
 Δw(t)=η(x(t)?w(t))\Delta w(t)=\eta(x(t)-w(t))Δw(t)=η(x(t)?w(t))
顯然,競爭學習是無監督學習模式。由于它的權向量調整目標是使得w(t)w(t)w(t)與x(t)x(t)x(t)越來越接近,用訓練集樣本去訓練網絡時,可以使每個神經元的權向量逐步逼近樣本集的聚類中心。
競爭學習有其生物學基礎,就是在視神經等很多系統中得到了證實的側抑制機制。側抑制意味著同層的神經元之間是有相互連接的,正是這種連接使得興奮性最強的神經元能抑制其他神經元的反應,從而形成“贏家通吃”的結果。
競爭學習可以通過逐層學習的方式來完成整個神經網絡的學習,因此,這種規則也僅能適用于沒有前后反饋的網絡。
4.3 概率型學習
概率型學習不再把神經網絡的輸出看作是一個確定的輸出值,而看作是一種隨機變量,其取值有一定的概率分布,而這種分布會在外部調節的控制下,隨著網絡內部狀態的演化逐步趨近一個平衡態。
說到內部狀態演化,顯然,這種概率型學習的網絡一定是有內部反饋的,而不是單純的前饋網絡。這種帶有反饋連接的概率型學習網絡,最典型的就是Hinton 在 1985 年提出的玻爾茲曼機(BM,Boltzmann Machine)。
玻爾茲曼機是一種存在全互聯的神經網絡模型,它的每個神經元的輸出是以凈激勵為變量的概率分布,P(y=1)的概率為
玻爾茲曼機是一種存在全互聯的神經網絡模型,
 
它的每個神經元的輸出是以凈激勵為變量的概率分布,P(y=1)P(y=1)P(y=1)的概率為
 
 式中的 TTT 是一個決定 S 型函數形狀的重要參數,稱為溫度。
溫度越高,輸出的分布曲線越平緩,凈激勵 uuu 對輸出的影響越小,輸出的隨機性越強;
溫度越低,輸出的分布曲線越陡峭,越接近階躍曲線,凈激勵在 0 值附近的少許變化,就會使得輸出迅速以很高的概率穩定到一個極值點上。
由于玻爾茲曼機是一個全互聯的神經網絡,所以,當前和歷史時刻的各個經元輸入輸出會互相影響,使得整個網絡的狀態會進行不斷更新演化。玻爾茲曼機使用一個李雅普諾夫能量函數來描繪網絡狀態演化的結果,并且證明了,網絡整體的狀態會朝著能量函數降低的方向不斷隨機性地變化,即取得能量函數極小值的概率逐漸增大。如果采用模擬退火算法,即溫度 TTT 從高到底緩慢變化,并在每一個溫度下讓網絡演化至平衡態,則整個網絡有很大概率能找到能量函數的全局極小值點。
是玻爾茲曼機這種概率型神經網絡自發的狀態演化,改變的只是各個神經元的輸出,學習在哪里呢?
玻爾茲曼機的學習過程同樣是調整權向量的過程。它的基本算法思路是:當網絡達到平衡態時,如果輸入輸出的聯合概率分布與有標簽的訓練樣本集的輸入輸出聯合概率分布最相似,則此時的權向量也就取得了最優值。而度量兩個概率分布的相似性,玻爾茲曼機使用了 K-L 散度,也就是相對熵,并以梯度法推導出了權向量的遞推更新公式。
因此,玻爾茲曼機最終學習的結果,是使得網絡的輸入輸出聯合概率分布,與訓練集樣本的輸入輸出聯合概率分布最為接近,即使得網絡記住了訓練集中樣本的類別分布。所以,這種概率型學習也是有監督的學習模式。
參考:
 [1] 中國大學mooc 人工智能之模式識別 高琪,李位星,馮肖雪, 北京理工大學
 [2] https://blog.csdn.net/u012562273/article/details/56297648
THE END.
 感謝閱讀。
總結
以上是生活随笔為你收集整理的【神经网络分类器】(一)你知道神经网络怎么用无监督算法训练吗?的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Google实时文字翻译背后的技术
- 下一篇: Navicat查看密码,忘记密码之解决方
