精華區beta DataScience 關於我們 聯絡資訊
哈! 開版後第一個技術問題就由小魯來提問吧 我參考書上MNIST+CNN的範例 建立了以下架構 卷積層1 28*28 16層 池化層1 14*14 16層 卷積層2 14*14 36層 池化層2 7*7 36層 平坦層 1764 神經元 隱藏層 128 神經元 輸出層 10 神經元 完美達成了 99.5% 的辨識率 可是當訓練資料換成 我自己的資料時 辨識率就只有80%左右 而且這80% 是因為完全不認得 數字8跟9 所有數字8跟9的全部認錯 所以只有80% 放大神經元數或卷積、池化層數目也得到類似的結果 是因為我的訓練資料不足的關係嗎? 我看MNIST是各數字都有6000多筆 我的資料分佈如下 0 : 85 1 : 860 2 : 2231 3 : 1521 4 : 1750 5 : 1302 6 : 1511 7 : 1671 8 : 1967 9 : 2426 光看資料 感覺比較認不出來的應該是 0 或1 阿 另外為了彌補 資料量的差異 我有改變訓練資料 每個數字各取800個 出來訓練 (0太少 只能完整訓練) 再把每個數字隨機抽出50個出來驗證 9還是每個都認錯... 請問我的方向該怎麼修正呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.87.162.162 ※ 文章網址: https://www.ptt.cc/bbs/deeplearning/M.1519705516.A.4F3.html
GTX9487: 你的99.5%的辨識率是Training 還是 Test? 02/27 12:28
jikker: training 99.5 test 98.9 02/27 12:34
h821231: 參數跟初始都有可能造成差異吧 02/27 12:54
followwar: MNIST pretrain後 在你的dataset上finetune 02/27 12:56
patrick2dot0: 把8跟9的data抓出來train看看? 02/27 12:56
patrick2dot0: 分成8,9,others 看分不分的出來 02/27 12:57
GTX9487: 4樓的意思是 MNIST 訓練完的參數為初始參數 02/27 12:59
patrick2dot0: 噢 我知道 我的回文不是針對四樓 02/27 13:05
GTX9487: 我只是幫4F解釋清楚 別緊張 哈哈 02/27 13:10
aaaba: 先把診斷資料整理出來吧,例如:confusion maxtrix 02/27 13:23
aaaba: https://tinyurl.com/yaq4vkp3 02/27 13:23
aaaba: 如果你自己的8、9沒有特別怪異,你也可以用mnist訓練出來的 02/27 13:25
aaaba: 那個分類器跑一遍你自創的那批資料,看看結果如何 02/27 13:25
brian980466: MNIST test不到99其實不強 02/27 13:27
pinky750619: 你的手寫資料圖片有跟他原本數據庫的格式一樣嗎?印 02/27 14:06
pinky750619: 象中,例如圖片大小相同?圖片顏色是否二值化且手寫 02/27 14:06
pinky750619: 白色背景黑色? 02/27 14:06
jikker: 文字黑色 背景白色 這點相同 但我的資料大小是58*48 02/27 15:35
jikker: 有把它縮為28*28 02/27 15:35
jikker: 有空再把我的資料open出來 02/27 15:35
jikker: 我的資料是真實資料 所以有10幾個人的不同筆跡 02/27 15:38
GTX9487: 那很有可能就是前處理的問題了 02/27 15:39
cc9i: 看要不要把code貼上來 80% train accurate是有收斂嗎? 02/27 16:44
cc9i: 你訓練時train data有shuffle嗎? 還是說以label順序下去跑 02/27 16:48
jikker: 有收斂 資料是照順序下去跑的耶 @@ 02/27 16:49
circus: Overfitting? 02/27 17:06
jikker: 天阿!!!! 真的是訓練資料要打散的問題 感謝各位大大 02/27 17:12
seasa2016: 想請問 為什麼shuffle會影響結果呢? 02/27 17:28
jikker: 資料是一批一批跑的 一次執行都算1 下一次執行都算2 02/27 18:05
jikker: 每次fitting完 下一次近來的資料都完全不同 效果自然差 02/27 18:05
GTX9487: 原來不是前處理的問題!?@@ 02/27 18:27
sore: 你的訓練資料不平衡 02/27 18:49
brian980466: 前幾個 batch 看到的東西對 model 影響比較大 02/27 19:39
gus2: 好奇你shuffle後辨識率多少 02/27 20:24
galapous: 每個batch training label 都很相近的話 02/27 20:49
galapous: minibatch的意義就沒了,gradient很容易衝過頭overfitti 02/27 20:49
galapous: ng 02/27 20:49
cc9i: 原po把改完的結果回報一下啦 順便問問你optimizer用哪個 02/27 21:11
GTX9487: 推推 好文章推起來 02/27 23:26
chris810314: 這不就是minibatch的概念嗎?如果你的minibatch沒有 02/27 23:54
chris810314: 足夠獨立的樣本,那可能就會學到原本不該學的東西! 02/27 23:54
huaishuo: 弱弱問一下 model的正確率是要看training的還是validati 02/28 14:21
huaishuo: on的,還是是看val_acc最高的那個epoch的acc呢? 02/28 14:21
ljn3333: val 02/28 17:55
Kazimir: 我覺得很有可能是前幾個batch把NN玩壞了 所以最後到89的 03/01 01:37
Kazimir: 的時候已經失去學習能力 03/01 01:37