1. 背景:
1.1 以人腦中的神經網路為啟發,歷史上出現過很多不同版本
1.2 最著名的演算法是2023年的 backpropagation
2. 多層向前神經網路(multilayer feed-forward neural network)
2.1 backpropagation被使用在多層向前神經網路上
2.2 多層向前神經網路由以下部分組成:
輸入層(input layer), 隱藏層 (hidden layers), 輸入層 (output layers)
2.3 每層由單元(units)組成
2.4 輸入層(input layer)是由訓練集的例項特徵向量傳入
2.5 經過連線結點的權重(weight)傳入下一層,一層的輸出是下一層的輸入
2.6 隱藏層的個數可以是任意的,輸入層有一層,輸出層有一層
2.7 每個單元(unit)也可以被稱作神經結點,根據生物學**定義
2.8 以上成為2層的神經網路(輸入層不算)
2.8 一層中加權的求和,然後根據非線性方程轉化輸出
2.9 作為多層向前神經網路,理論上,如果有足夠多的隱藏層(hidden layers) 和足夠大的訓練集, 可以模
擬出任何方程
3. 設計神經網路結構
3.1 使用神經網路訓練資料之前,必須確定神經網路的層數,以及每層單元的個數
3.2 特徵向量在被傳入輸入層時通常被先標準化(normalize)到0和1之間 (為了加速學習過程)
3.3 離散型變數可以被編碼成每乙個輸入單元對應乙個特徵值可能賦的值
比如:特徵值a可能取三個值(a0, a1, a2), 可以使用3個輸入單元來代表a。
如果a=a0, 那麼代表a0的單元值就取1, 其他取0;
如果a=a1, 那麼代表a1de單元值就取1,其他取0,以此類推
3.4 神經網路即可以用來做分類(classification)問題,也可以解決回歸(regression)問題
3.4.1 對於分類問題,如果是2類,可以用乙個輸出單元表示(0和1分別代表2類);
如果多於2類,每乙個類別用乙個輸出單元表示,
所以輸入層的單元數量通常等於類別的數量
3.4.2 沒有明確的規則來設計最好有多少個隱藏層?
3.4.2.1 根據實驗測試和誤差,以及準確度(通過交叉驗證來計算出)
來實驗並改進
4. 交叉驗證方法(cross-validation)
5. backpropagation演算法
5.1 通過迭代來處理訓練集中的例項
5.2 對比經過神經網路後輸入層**值(predicted value)與真實值(target value)之間的差
5.3 反方向(從輸出層=>隱藏層=>輸入層)來以最小化誤差(error)來更新每個連線的權重(weight)和偏向
5.4 演算法詳細介紹
輸入:d資料集,l 學習率(learning rate), 乙個多層前向神經網路
輸入:乙個訓練好的神經網路(a trained neural network)
5.4.1 初始化權重(weights)和偏向(bias): 隨機初始化在-1到1之間,或者-0.5到0.5之間,每個單元有
乙個偏向
5.4.2 對於每乙個訓練例項x,執行以下步驟:
5.4.2.1: 由輸入層向前傳送
5.4.2.2 根據誤差(error)反向傳送
對於輸出層:
對於隱藏層:
權重更新:
偏向更新:
5.4.3 終止條件
5.4.3.1 權重的更新低於某個閾值
5.4.3.2 **的錯誤率低於某個閾值
5.4.3.3 達到預設一定的迴圈次數
6. backpropagation 演算法舉例
對於輸出層:
對於隱藏層:
權重更新:
偏向更新 :
套用以上公式計算:
《機器學習》神經網路演算法分析
神經網路的前向傳播 不得不承認,假設函式的格式很大程度上決定了我們所獲得影象的樣式,對於線性回歸是與樣本資料盡可能重合的那條直線,而在邏輯回歸中就是所謂的決策邊界。我們觀察邏輯回歸中的sigmoid函式 不難發現對於theta x這一項的存在,若是只輸入單一的一次特徵值,你只能得到一條為直線的決策邊...
機器學習 神經網路
神經網路中最基本的成分是 神經元 模型,在生物神經網路中,每個神經元與其他神經元相連,當他 興奮 時,就會向相連的神經元傳送化學物質,從而改變這些神經元類的電位 如果某神經元的電位超過乙個 閾值 那麼他就會被啟用。將上述描述當成乙個數學模型 m p神經元模型,神經元接收來自n個神經元傳遞過來的輸入訊...
機器學習 神經網路
序列模型屬於通用模型的一種,因為很常見,所以這裡單獨列出來進行介紹,這種模型各層之間是依次順序的線性關係,在第k層合第k 1層之間可以加上各種元素來構造神經網路這些元素可以通過乙個列表來制定,然後作為引數傳遞給序列模型來生成相應的模型。01 keras model sequential.py fro...