神經元模型是神經網路中最基本的成分。
這裡先介紹m-p神經元模型(m-p代表的是mcculloch and pitts,名字):神經元接受來自n個其他神經元傳遞過來的輸入訊號,這些輸入訊號通過帶權重的連線進行傳遞。
總輸入值(已經加權之後)與閾值θ進行比較,通過乙個啟用函式(比如sigmoid)產生超過閾值為「1」,否則為「0」的輸出
感知機(perceptron)是由兩層神經元組成的模型。
其中輸入層接收外界的輸入訊號。(不做閾值處理)
輸出層是m-p神經元,做閾值處理,產生輸出。
在感知機模型中,引數主要是權重w,以及閾值θ。
我們可以將閾值θ看作乙個固定輸入為-1的「啞結點」(dummy node)的權重,使得所有引數都歸化為權重。
學習的時候,也很簡單,正確時不進行調整,錯誤的時候進行調整。
此處不詳細列出
我的理解是,進行閾值(啟用函式)處理的神經元被稱作是功能神經元。
因為感知機的侷限性(只能學習線性可分問題),
解決非線性可分問題就要使用多層功能神經元。
在這裡,我們定義隱含層
輸入層和輸出層之間的擁有啟用函式的功能神經元。
神經元全互聯,不存在同層連線,也不存在跨層連線。
誤差逆傳播演算法是一種迭代演算法。基於梯度下降策略。
對每乙個訓練用例,我們可以計算出輸出的均方誤差。(模型輸出的y向量和資料集中真實的y向量的歐式距離)
對於均方誤差e對於每個引數的負梯度,對該引數進行調整。
具體而言,應用鏈式法則。e對於某個引數whj的偏導轉換為對一系列中途變數的連續偏導。
(比如,隱層的輸出權值,先影響輸出層的輸入,再影響輸出層的輸出,最後影響e均方誤差。)
即通過鏈式法則,逐次求偏導。
詳見書中推導。總而言之,通過應用鏈式法則,我們就可以求除bp演算法中關於whj(隱層輸出權值的更新公式)
以及所有引數。
上面的標準誤差逆傳播主要是針對每乙個樣本的均方誤差進行更新引數,針對的是單個樣例。
而累計誤差逆傳播呢?則是基於累積誤差最小化的更新原則!
他會讀取整個資料集一遍以後,才對引數進行更新。
標準bp演算法引數更新的十分頻繁。而累計bp演算法引數更新的頻率低得多。
為了達到同樣的累積誤差極小點,標準bp演算法往往需要進行更多次數的迭代。
但是在很多任務中,累積誤差下降到一定程度以後,進一步下降十分緩慢,此時標準bp演算法往往會更快的獲得更好的解。
尤其是訓練集非常大的情況。
早停:將資料分成訓練集和驗證集,訓練集用來計算梯度,更新連線權和閾值。
驗證集用來估計誤差。
若訓練集誤差降低但驗證集誤差公升高,就停止訓練。同時返回具有最小驗證集誤差的連線權和閾值。
正則化:
在誤差目標函式(e的計算式)中增加乙個用來描述網路複雜度的部分。例如連線權和閾值的平方和。
這兩項使用乙個引數(交叉驗證法獲得)進行折中。
1. 以多組不同引數初始化多個神經網路,進行訓練。(從多個不同初始點),選擇最優。
2. 使用「模擬退火」技術。在每一步都以一定的概率接受比當前解更差的結果。從而有助於跳出區域性極小。
但是,接受次優解的概率隨著時間推移而降低。
3. 使用隨機梯度下降。
隱層神經元使用徑向基函式作為啟用函式。
輸出層是對隱層神經元輸出的線性組合。
在徑向基函式中,用到神經元的資料中心c以及樣本x。
訓練:首先,確定神經元中心c,常用的方法包括隨機取樣,聚類等等。
之後,利用bp演算法等來確定引數
神經網路中常用的一種無監督學習策略。網路的輸出神經元互相競爭,每一時刻僅有乙個競爭獲勝的神經元被啟用,其他神經元的狀態被抑制。(勝者通吃原則)
由比較層,識別層,識別閾值,重置模組組成。
比較層:接收輸入樣本。傳遞給識別層神經元
識別層:每個神經元對應乙個模式類(分類?)每個模式類有乙個代表向量,訓練過程中神經元數目可以動態增長。
訓練過程:
計算樣本輸入向量和每個神經元對應的模式類的代表向量之間的距離。選取距離最小的神經元。
之後,比較相似度和識別閾值,來決定是歸於這個神經元,還是新開乙個神經元。
優點:將高維輸入資料對映到低維空間,同時保持輸入資料在高維空間的拓撲結構。(高維相似->低維鄰近神經元)
輸出層神經元以矩陣形式排列在二維空間。
每乙個輸出層神經元有乙個權向量。
訓練過程:
在接收乙個樣本後,每個輸出層神經元會計算該樣本與自身攜帶的權向量之間的距離。
距離最近的神經元獲勝(最佳匹配單元)
之後,調整最佳匹配單元以及其鄰近的神經元的權向量,使這些權向量與當前輸入樣本的距離縮小。
迭代進行,直至收斂。
不同於之前敘述的」網路結構固定「的神經網路,結構自適應網路把」網路結構「也當作學習的目標之一。
希望在訓練過程中找到最符合資料特點的網路結構。
遞迴神經網路(recurrent neural networks)允許網路中出現環形結構。從而可以讓一些神經元的輸出反饋回來作為輸入訊號。
優點:網路在t時刻的輸出狀態不僅與t時刻的輸入有關,還與t-1時刻的網路狀態有關。從而能處理與時間有關的動態變化。
elman網路中,隱層神經元的輸出被反饋回來,與下一時刻輸入層神經元提供的訊號一起,作為隱層神經元在下一時刻的輸入。
思想:為網路狀態定義乙個「能量」,能量最小化時,網路達到理想狀態。
神經元分為:
顯層:用於表示資料的輸入和輸出
隱層:被理解為資料的內在表達。
boltzmann機中神經元都是布林型的。狀態0表示抑制,狀態1表示啟用。
已知n個神經元的狀態,定義boltzmann機的能量為:
w表示兩個神經元i,j之間的連線權。
θ表示神經元的閾值
s表示神經元的狀態(0/1)
將每個訓練樣本視為乙個狀態向量,使其出現的概率盡可能大。
(一般使用rbm(受限的boltzmann機)僅保留顯層與隱層之間的連線,從而將boltzmann機結構從完全圖簡化為二部圖)
假定網路中有d個顯層神經元和q個隱層神經元,令v和h分別表示顯層與隱層的狀態向量。
(由於同一層內不存在連線)
有:cd演算法對於每個訓練樣本v,先根據後式計算出隱層神經元狀態的概率分布,然後根據這個概率分布取樣得到h。
之後,類似的根據前式從h產生v』,再從v』產生h』,
連線權的更新公式:
從感知機到神經網路
在我的之前的部落格中已經講解了感知機,接下來談到的神經網路與感知機有許多共同之處,下面主要是講講神經網路與感知機的不同之處。首先來看看乙個神經網路的示例 上圖示,最左側是輸入層,中間的一列被稱為中間層,也被稱之為隱藏層,最右一列被稱為輸出層。則,神經網路在訊號傳遞的過程中與感知機有什麼聯絡呢?在之前...
從感知機到神經網路
感知器在20世紀 五 六十年代由科學技術frank rosenblatt發明,其受到warren mcculloch和walter pitts早期的工作的影響。今天,使用其他人工神經元模型更為普遍 在這本書中,以及更多現代的神經網路工作中,主要使用的是一種叫做s型神經元的神經元模型。感知器是如何工作...
從感知機到人工神經網路
如下圖所示 可用乙個決策邊界w x b將正負樣本進行區分。其中w為權重,b為偏置項。w x1 b 0被分為正樣本,否則為負樣本。假定要本線性可分,感知機的學習目標就是求的能將正負要本完全正確分開的分離超平面,即要尋找w,b,因此要確定乙個學習策略,即定義損失函式並使其最小化。而感知機所採用的損失函式...