一、多層前向神經網絡
多層前向神經網絡由三部分組成:輸出層、隱藏層、輸出層,每層由單元組成;
輸入層由訓練集的實例特征向量傳入,經過連接結點的權重傳入下一層,前一層的輸出是下一層的輸入;隱藏層的個數是任意的,輸入層只有一層,輸出層也只有一層;
除去輸入層之外,隱藏層和輸出層的層數和為n,則該神經網絡稱為n層神經網絡,如下圖為2層的神經網絡;
一層中加權求和,根據非線性方程進行轉化輸出;理論上,如果有足夠多的隱藏層和足夠大的訓練集,可以模擬出任何方程;

二、設計神經網絡結構
使用神經網絡之前,必須要確定神經網絡的層數,以及每層單元的個數;
為了加速學習過程,特征向量在傳入輸入層前,通常需要標準化到0和1之間;
離散型變量可以被編碼成每一個輸入單元對應一個特征值可能賦的值
比如:特征值A可能去三個值(a0,a1,a2),那么可以使用3個輸入單元來代表A
如果A=a0,則代表a0的單元值取1,其余取0;
如果A=a1,則代表a1的單元值取1,其余取0;
如果A=a2,則代表a2的單元值取1,其余取0;

神經網絡既解決分類(classification)問題,也可以解決回歸(regression)問題。對于分類問題,如果是兩類,則可以用一個輸出單元(0和1)分別表示兩類;如果多余兩類,則每一個類別用一個輸出單元表示,所以輸出層的單元數量通常等一類別的數量。
沒有明確的規則來設計最佳個數的隱藏層,一般根據實驗測試誤差和準確率來改進實驗。
三、交叉驗證方法
如何計算準確率?最簡單的方法是通過一組訓練集和測試集,訓練集通過訓練得到模型,將測試集輸入模型得到測試結果,將測試結果和測試集的真實標簽進行比較,得到準確率。
在機器學習領域一個常用的方法是交叉驗證方法。一組數據不分成2份,可能分為10份,
第1次:第1份作為測試集,剩余9份作為訓練集;
第2次:第2份作為測試集,剩余9份作為訓練集;
……
這樣經過10次訓練,得到10組準確率,將這10組數據求平均值得到平均準確率的結果。這里10是特例。一般意義上將數據分為k份,稱該算法為K-foldcrossvalidation,即每一次選擇k份中的一份作為測試集,剩余k-1份作為訓練集,重復k次,最終得到平均準確率,是一種比較科學準確的方法。
新聞熱點
疑難解答