機器學習中人工神經網絡的搭建

一、簡介
神經網絡中的核心處理部分是節點,同時在神經網絡中,處理單元通常按層次分佈於神經網絡的輸入層、隱層和輸出層中,因此分別稱之爲輸入節點、隱節點和輸出節點。

二、人工神經網絡的搭建
在這裏插入圖片描述
在上圖中,輸入層有至四個節點,隱層有兩個節點,輸出層僅有一個節點,節點與節點之間有着各自對應的連接權重,經過層層遞進,得到最終的輸出結果。
加法器
加法器非常好理解,假設節點接受的輸入用向量表示,節點輸出的結果用0表示,節點與上層連接的連接權重用表示,且節點的偏差用表示。在第j個節點上的加法器[公式]則定義爲:在這裏插入圖片描述
激活函數這塊比較容易理解,主要有兩大類:
1、[0,1]階躍函數
2、(0,1)型Sigmoid函數
激活函數的作用就是將之前加法器輸出的函數值進行相應轉換,或轉爲[公式]型,或映射到[公式]取值範圍內。

建立神經網絡的一般步驟
1、數據的標準化處理
在人工神經網絡中,無論是分類問題還是迴歸問題,輸入變量的取值一般要求在0~1之間,否則輸入變量的不同數量級別將會對連接權重的確定、加法器的計算和最終的預測產生較大的干擾。爲此,需要對原始數據集進行標準化處理,消除量綱帶來的影響。
2. 網絡結構的確定
在神經網絡中,隱層的層數與節點個數決定了整個模型的複雜度,這裏涉及到一個預測準確度與複雜度的權衡,層數節點數較少時模型結構簡單,但預測準確度較低;層數節點數較多時儘管預測準確度會較高,但模型可能會過於複雜,並影響計算效率(特別是在大數據集下)。
理論上,雖然多層網絡能夠獲得更精準的分析結果,但若非實際需要的話,使用兩個以上的隱層會使問題的解決變得更爲複雜。所以,如果直觀上數據集本身與要解決的問題不是很複雜的話,我們可以優先設置一個隱層,並從當前模型的預測結果出發來考慮是否需要更多的隱層。
在隱節點的個數設定上,目前暫時沒有權威的確定準則。通常情況下,問題越複雜,需要的隱節點也就越多,但隱節點過多又會導致過擬合問題。因此,節點個數不可能在模型建立之前就確定下來,我們可以先給出一個粗略的網絡結構,然後在模型訓練過程中逐步進行調整。
3、 連接權重的確定
神經網絡建立的過程,也就是採用合適的網絡結構,探索輸入輸出變量間複雜關係的過程,並在此基礎上應用於對新樣本的預測。那麼在這個過程中,神經網絡就需要對已有的數據進行反複分析與學習,掌握輸入輸出變量間的數量關係規律,並將其體現在連接權重上。因此,當我們確定好第二步中的網絡結構後,構建模型的核心任務就是確定連接權重[公式],步驟如下:
第一:初始化連接權重向量W
一般連接權重向量W的初始值默認爲一組隨機數,且需要服從均值爲0,取值在-0.5~0.5之間的均勻分佈。
第二:計算各處理單元的加法器與激活函數值,得到樣本的預測值
第三:比較預測值與實際值,計算預測誤差,根據預測誤差重新調整各連接權重
上述的過程是一個不斷向樣本學習的過程,我們的目的自然是爲了獲得較高的預測準確度和較小的預測誤差,當一輪的學習無法滿足高準確度的要求時,就需要進行新一輪的學習,如此循環往復,直到滿足最終迭代終止的條件爲止。
最終,我們得到一組相對合理的連接權重值,超平面(或迴歸平面)與神經網絡模型也就得以確定。
關於權重初始化需要服從均值爲0的安排,這個與開始時神經網絡會退化爲近似線性的模型有關。

三、總結
到這裏大家應該對如何創建一個神經網絡有了初步的認識,下面我們將帶領大家對此繼續進行深入的研究。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章