神经网络NN算法
1. 背景:
1.1 以人腦中的神經(jīng)網(wǎng)絡(luò)為啟發(fā),歷史上出現(xiàn)過很多不同版本
1.2 最著名的算法是1980年的?backpropagation?
2. 多層向前神經(jīng)網(wǎng)絡(luò)(Multilayer Feed-Forward Neural Network) 2.1 Backpropagation被使用在多層向前神經(jīng)網(wǎng)絡(luò)上 2.2 多層向前神經(jīng)網(wǎng)絡(luò)由以下部分組成:
3. 設(shè)計神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu) 3.1 使用神經(jīng)網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)之前,必須確定神經(jīng)網(wǎng)絡(luò)的層數(shù),以及每層單元的個數(shù) 3.2 特征向量在被傳入輸入層時通常被先標(biāo)準(zhǔn)化(normalize)到0和1之間 (為了加速學(xué)習(xí)過程) 3.3 離散型變量可以被編碼成每一個輸入單元對應(yīng)一個特征值可能賦的值 比如:特征值A(chǔ)可能取三個值(a0, a1, a2), 可以使用3個輸入單元來代表A。 如果A=a0, 那么代表a0的單元值就取1, 其他取0; 如果A=a1, 那么代表a1de單元值就取1,其他取0,以此類推
3.4 神經(jīng)網(wǎng)絡(luò)即可以用來做分類(classification)問題,也可以解決回歸(regression)問題 3.4.1 對于分類問題,如果是2類,可以用一個輸出單元表示(0和1分別代表2類) 如果多余2類,每一個類別用一個輸出單元表示 所以輸入層的單元數(shù)量通常等于類別的數(shù)量
3.4.2 沒有明確的規(guī)則來設(shè)計最好有多少個隱藏層 3.4.2.1 根據(jù)實驗測試和誤差,以及準(zhǔn)確度來實驗并改進 4. 交叉驗證方法(Cross-Validation) -fold cross valida K-fold cross validation?
5. Backpropagation算法 5.1 通過迭代性的來處理訓(xùn)練集中的實例 5.2 對比經(jīng)過神經(jīng)網(wǎng)絡(luò)后輸入層預(yù)測值(predicted value)與真實值(target value)之間 5.3 反方向(從輸出層=>隱藏層=>輸入層)來以最小化誤差(error)來更新每個連接的權(quán)重(weight) 5.4 算法詳細介紹 輸入:D:數(shù)據(jù)集,l 學(xué)習(xí)率(learning rate), 一個多層前向神經(jīng)網(wǎng)絡(luò) 輸入:一個訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)(a trained?neural?network)
5.4.1 初始化權(quán)重(weights)和偏向(bias): 隨機初始化在-1到1之間,或者-0.5到0.5之間,每個單元有 ? ? ? ? ? 一個偏向 5.4.2 對于每一個訓(xùn)練實例X,執(zhí)行以下步驟: 5.4.2.1: 由輸入層向前傳送
5.4.2.2 根據(jù)誤差(error)反向傳送 對于輸出層: ? 對于隱藏層: ? 權(quán)重更新: 偏向更新 5.4.3 終止條件 5.4.3.1 權(quán)重的更新低于某個閾值 5.4.3.2 預(yù)測的錯誤率低于某個閾值 5.4.3.3 達到預(yù)設(shè)一定的循環(huán)次數(shù) 6. Backpropagation 算法舉例
對于輸出層: 對于隱藏層: 權(quán)重更新: 偏向更新:
2. 多層向前神經(jīng)網(wǎng)絡(luò)(Multilayer Feed-Forward Neural Network) 2.1 Backpropagation被使用在多層向前神經(jīng)網(wǎng)絡(luò)上 2.2 多層向前神經(jīng)網(wǎng)絡(luò)由以下部分組成:
? ? ? ? ? ?輸入層(input layer), 隱藏層 (hidden layers), 輸入層 (output layers)
3. 設(shè)計神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu) 3.1 使用神經(jīng)網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)之前,必須確定神經(jīng)網(wǎng)絡(luò)的層數(shù),以及每層單元的個數(shù) 3.2 特征向量在被傳入輸入層時通常被先標(biāo)準(zhǔn)化(normalize)到0和1之間 (為了加速學(xué)習(xí)過程) 3.3 離散型變量可以被編碼成每一個輸入單元對應(yīng)一個特征值可能賦的值 比如:特征值A(chǔ)可能取三個值(a0, a1, a2), 可以使用3個輸入單元來代表A。 如果A=a0, 那么代表a0的單元值就取1, 其他取0; 如果A=a1, 那么代表a1de單元值就取1,其他取0,以此類推
3.4 神經(jīng)網(wǎng)絡(luò)即可以用來做分類(classification)問題,也可以解決回歸(regression)問題 3.4.1 對于分類問題,如果是2類,可以用一個輸出單元表示(0和1分別代表2類) 如果多余2類,每一個類別用一個輸出單元表示 所以輸入層的單元數(shù)量通常等于類別的數(shù)量
3.4.2 沒有明確的規(guī)則來設(shè)計最好有多少個隱藏層 3.4.2.1 根據(jù)實驗測試和誤差,以及準(zhǔn)確度來實驗并改進 4. 交叉驗證方法(Cross-Validation) -fold cross valida K-fold cross validation?
5. Backpropagation算法 5.1 通過迭代性的來處理訓(xùn)練集中的實例 5.2 對比經(jīng)過神經(jīng)網(wǎng)絡(luò)后輸入層預(yù)測值(predicted value)與真實值(target value)之間 5.3 反方向(從輸出層=>隱藏層=>輸入層)來以最小化誤差(error)來更新每個連接的權(quán)重(weight) 5.4 算法詳細介紹 輸入:D:數(shù)據(jù)集,l 學(xué)習(xí)率(learning rate), 一個多層前向神經(jīng)網(wǎng)絡(luò) 輸入:一個訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)(a trained?neural?network)
5.4.1 初始化權(quán)重(weights)和偏向(bias): 隨機初始化在-1到1之間,或者-0.5到0.5之間,每個單元有 ? ? ? ? ? 一個偏向 5.4.2 對于每一個訓(xùn)練實例X,執(zhí)行以下步驟: 5.4.2.1: 由輸入層向前傳送
5.4.2.2 根據(jù)誤差(error)反向傳送 對于輸出層: ? 對于隱藏層: ? 權(quán)重更新: 偏向更新 5.4.3 終止條件 5.4.3.1 權(quán)重的更新低于某個閾值 5.4.3.2 預(yù)測的錯誤率低于某個閾值 5.4.3.3 達到預(yù)設(shè)一定的循環(huán)次數(shù) 6. Backpropagation 算法舉例
對于輸出層: 對于隱藏層: 權(quán)重更新: 偏向更新:
總結(jié)
- 上一篇: linux中iptables对防火墙的操
- 下一篇: 商人小鑫