發表文章

目前顯示的是 7月, 2018的文章

多層感知機實作練習-R版本-使用鳶尾花數據訓練

圖片
多層感知機實作練習 R版本-使用鳶尾花數據訓練 ___________________________________________________________ 問題:如何有效分類鳶尾花 方法:使用多層感知機訓練模型,透過梯度下降修正減少錯誤率 實作流程: 1. 鳶尾花數據有setosa, versicolor, virginica三類,欲訓練的類設輸出為1, 其他類為0,並各先取二類進行訓練 2. 將數據(*1)輸入前兩個感知機分別與w1~w8相乘並加上偏權值,加總後過活化函式Sigmoid(*2),得到二輸入層輸出 3. 將前二輸出分別與w9,w10相乘並加上偏權值,加總後一樣過Sigmoid,得到結果輸出Output 4. 將Output-期望輸出可以得到錯誤率,透過梯度下降回頭修正權重 新權重=舊權重+學習速率*(錯誤率)*output*(1-output)*input 5. 重複以上步驟,將錯誤率壓低(*3) 6. 將訓練好的模組拿來驗證(*4) 遇到困難: 因versicolor和virginica類相似度高,此二類相互訓練時較難收斂且誤差率較與setosa類訓練時高(*5此圖來自網路) 將學習速率降為0.1,可在10000次左右時開始收斂,但還是會有誤差 以下為拿versicolor和virginica進行訓練的結果 可以看到setosa類不會出錯,但versicolor和virginica雖然分開但有部分誤差 程式碼 https://github.com/ShangHong-CAI/AI-Tutorial-Multilayer-Perceptron/blob/master/r/MuitPerceptron(iris).R 附註: *1: 輸入Sepal.Length,Sepal.Width,Petal.Length,Petal.Width當作運算資料,而類別 Species則當成期望輸出用來修正模型 *2: Sigmoid函式可以將輸出壓進0~1之間 *3