Learn R | 機器學習中的人工神經網路(二)
一、分類問題中的節點
從幾何意義上講,我們可以把訓練數據集中的每個觀測值都看作是維(即個變數)特徵空間上的點,並假設這些觀測值線性可分。相應的,節點加法器就是一個超平面,時超平面是一條線,時超平面就是一個平面,高維數據以此類推(這一塊的內容與SVM中的超平面是相同的,詳見SVM of Data Mining)。
這樣的話,超平面就將維特徵空間劃分成了兩部分,將任意一個觀測樣本帶入加法器中,若最終結果等於0,則表示該觀測值落在了超平面上;若是大於或小於0 ,則表示這一觀測值落在了超平面的左側或右側。
接著,計算結果傳送給激活函數,如果是階躍函數,則將計算結果進行型的類別分類;如果是函數,可視為輸出各樣本值預測類別為1的概率,若概率值大於0.5,通常判定其類別預測值為1,反之則為0,這樣也就完成了二值分類。
所以,一個節點可以實現二值分類,它的本質就是一個分割兩個類別的超平面,拓展到多個節點的話就是多個超平面,這些超平面相互平行或相交,將維特徵空間劃分成若干區域,實現多值分類。
進一步的,超平面是由加法器中的參數(即連接權重)確定的。由於我們的目標是盡最大可能正確的預測樣本點的所屬類別,也就是說要保證大部分的觀測落入超平面的正確的一側。當建模開始時,連接權重會取一組隨機數(連接權重的內容後面會有詳細講述),此時的神經網路自然無法達成目標。所以神經網路需要不斷向觀測樣本學習,不斷調整連接權重,使超平面不斷向正確的方向移動,從而最終定位到期望的位置上。
二、回歸問題中的節點
對比分類問題,在回歸問題中,節點中的加法器就是一個回歸平面,由於激活函數是加法器的非線性函數,那麼激活函數值就是數據集中的輸出變數對輸入變數的非線性回歸結果。
同樣,回歸平面由連接權重決定。在建模開始時,連接權重取一組隨機數,然後不斷地向訓練樣本學習,不斷地調整權重,使回歸平面不斷地向正確方向移動,最終定位在使總體預測誤差最小的位置上。
這樣,通過對節點的深入理解使我們明白,神經網路模型的訓練過程就是一個尋找最佳超平面或回歸平面的過程,在整個訓練過程中藉助於連接權重的調整,實現對數據集的精準預測。
三、建立神經網路的一般步驟
1. 數據的標準化處理
在人工神經網路中,無論是分類問題還是回歸問題,輸入變數的取值一般要求在0~1之間,否則輸入變數的不同數量級別將會對連接權重的確定、加法器的計算和最終的預測產生較大的干擾。為此,需要對原始數據集進行標準化處理,消除量綱帶來的影響。這裡選用最簡單的歸一化處理,即(自然神經網路給出的預測值也是標準化值)。
2. 網路結構的確定
在神經網路中,隱層的層數與節點個數決定了整個模型的複雜度,這裡涉及到一個預測準確度與複雜度的權衡,層數節點數較少時模型結構簡單,但預測準確度較低;層數節點數較多時儘管預測準確度會較高,但模型可能會過於複雜,並影響計算效率(特別是在大數據集下)。
理論上,雖然多層網路能夠獲得更精準的分析結果,但若非實際需要的話,使用兩個以上的隱層會使問題的解決變得更為複雜。所以,如果直觀上數據集本身與要解決的問題不是很複雜的話,我們可以優先設置一個隱層,並從當前模型的預測結果出發來考慮是否需要更多的隱層。
在隱節點的個數設定上,目前暫時沒有權威的確定準則。通常情況下,問題越複雜,需要的隱節點也就越多,但隱節點過多又會導致過擬合問題。因此,節點個數不可能在模型建立之前就確定下來,我們可以先給出一個粗略的網路結構,然後在模型訓練過程中逐步進行調整。
3. 連接權重的確定
神經網路建立的過程,也就是採用合適的網路結構,探索輸入輸出變數間複雜關係的過程,並在此基礎上應用於對新樣本的預測。那麼在這個過程中,神經網路就需要對已有的數據進行反覆分析與學習,掌握輸入輸出變數間的數量關係規律,並將其體現在連接權重上。因此,當我們確定好第二步中的網路結構後,構建模型的核心任務就是確定連接權重,步驟如下:
第一:初始化連接權重向量
一般連接權重向量的初始值默認為一組隨機數,且需要服從均值為0,取值在-0.5~0.5之間的均勻分布。
為什麼要求初始值接近0呢?這是因為,對於型的激活函數,開始時神經網路會退化為近似線性的模型,這也就意味著模型訓練的思路是從最簡單的接近線性的模型開始,然後隨著連接權重的調整逐步演化為複雜的非線性模型。
那麼為什麼指定較小的區間呢?這是出於防止各權重差異過大的考慮。如果某些權重很小,那麼在有限次的迭代過程中,相應節點中的激活函數可能只採用線性模型;如果某些權重過大,則相應的節點可能只需要很少次的迭代就能基本穩定,那這樣的話各權重不能大致同時達到最終的穩定狀態,也就無法實現各節點學習進度的均衡與協調。
第二:計算各處理單元的加法器與激活函數值,得到樣本的預測值
第三:比較預測值與實際值,計算預測誤差,根據預測誤差重新調整各連接權重
上述的過程是一個不斷向樣本學習的過程,我們的目的自然是為了獲得較高的預測準確度和較小的預測誤差,當一輪的學習無法滿足高準確度的要求時,就需要進行新一輪的學習,如此循環往複,直到滿足最終迭代終止的條件為止。
最終,我們得到一組相對合理的連接權重值,超平面(或回歸平面)與神經網路模型也就得以確定。
至此,我們使用了大量篇幅去闡述神經網路的基本原理,為了使這些表述更為形象化,更「接地氣」一些,下一文將以感知機模型為例,來進一步討論模型構建和連接權重的確定過程。
未完待續
References:
- R語言數據挖掘(豆瓣)
- 機器學習 (豆瓣)
- 零基礎入門深度學習 - 神經網路和反向傳播演算法
- 神經網路淺講:從神經元到深度學習
推薦閱讀:
※knn到底咋回事?(修改版)
※北京歷史天氣可視化
※在 R 中使用 Prophet
※Learn R | 機器學習中的人工神經網路(一)
※R 學習筆記:數據類型與存儲