[問題] 手寫數字辨識問題

看板DataScience作者 (魯蛇王)時間6年前 (2018/02/27 12:25), 編輯推噓12(12034)
留言46則, 18人參與, 6年前最新討論串1/2 (看更多)
哈! 開版後第一個技術問題就由小魯來提問吧 我參考書上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

02/27 12:28, 6年前 , 1F
你的99.5%的辨識率是Training 還是 Test?
02/27 12:28, 1F

02/27 12:34, 6年前 , 2F
training 99.5 test 98.9
02/27 12:34, 2F

02/27 12:54, 6年前 , 3F
參數跟初始都有可能造成差異吧
02/27 12:54, 3F

02/27 12:56, 6年前 , 4F
MNIST pretrain後 在你的dataset上finetune
02/27 12:56, 4F

02/27 12:56, 6年前 , 5F
把8跟9的data抓出來train看看?
02/27 12:56, 5F

02/27 12:57, 6年前 , 6F
分成8,9,others 看分不分的出來
02/27 12:57, 6F

02/27 12:59, 6年前 , 7F
4樓的意思是 MNIST 訓練完的參數為初始參數
02/27 12:59, 7F

02/27 13:05, 6年前 , 8F
噢 我知道 我的回文不是針對四樓
02/27 13:05, 8F

02/27 13:10, 6年前 , 9F
我只是幫4F解釋清楚 別緊張 哈哈
02/27 13:10, 9F

02/27 13:23, 6年前 , 10F
先把診斷資料整理出來吧,例如:confusion maxtrix
02/27 13:23, 10F

02/27 13:23, 6年前 , 11F

02/27 13:25, 6年前 , 12F
如果你自己的8、9沒有特別怪異,你也可以用mnist訓練出來的
02/27 13:25, 12F

02/27 13:25, 6年前 , 13F
那個分類器跑一遍你自創的那批資料,看看結果如何
02/27 13:25, 13F

02/27 13:27, 6年前 , 14F
MNIST test不到99其實不強
02/27 13:27, 14F

02/27 14:06, 6年前 , 15F
你的手寫資料圖片有跟他原本數據庫的格式一樣嗎?印
02/27 14:06, 15F

02/27 14:06, 6年前 , 16F
象中,例如圖片大小相同?圖片顏色是否二值化且手寫
02/27 14:06, 16F

02/27 14:06, 6年前 , 17F
白色背景黑色?
02/27 14:06, 17F

02/27 15:35, 6年前 , 18F
文字黑色 背景白色 這點相同 但我的資料大小是58*48
02/27 15:35, 18F

02/27 15:35, 6年前 , 19F
有把它縮為28*28
02/27 15:35, 19F

02/27 15:35, 6年前 , 20F
有空再把我的資料open出來
02/27 15:35, 20F

02/27 15:38, 6年前 , 21F
我的資料是真實資料 所以有10幾個人的不同筆跡
02/27 15:38, 21F

02/27 15:39, 6年前 , 22F
那很有可能就是前處理的問題了
02/27 15:39, 22F

02/27 16:44, 6年前 , 23F
看要不要把code貼上來 80% train accurate是有收斂嗎?
02/27 16:44, 23F

02/27 16:48, 6年前 , 24F
你訓練時train data有shuffle嗎? 還是說以label順序下去跑
02/27 16:48, 24F

02/27 16:49, 6年前 , 25F
有收斂 資料是照順序下去跑的耶 @@
02/27 16:49, 25F

02/27 17:06, 6年前 , 26F
Overfitting?
02/27 17:06, 26F

02/27 17:12, 6年前 , 27F
天阿!!!! 真的是訓練資料要打散的問題 感謝各位大大
02/27 17:12, 27F

02/27 17:28, 6年前 , 28F
想請問 為什麼shuffle會影響結果呢?
02/27 17:28, 28F

02/27 18:05, 6年前 , 29F
資料是一批一批跑的 一次執行都算1 下一次執行都算2
02/27 18:05, 29F

02/27 18:05, 6年前 , 30F
每次fitting完 下一次近來的資料都完全不同 效果自然差
02/27 18:05, 30F

02/27 18:27, 6年前 , 31F
原來不是前處理的問題!?@@
02/27 18:27, 31F

02/27 18:49, 6年前 , 32F
你的訓練資料不平衡
02/27 18:49, 32F

02/27 19:39, 6年前 , 33F
前幾個 batch 看到的東西對 model 影響比較大
02/27 19:39, 33F

02/27 20:24, 6年前 , 34F
好奇你shuffle後辨識率多少
02/27 20:24, 34F

02/27 20:49, 6年前 , 35F
每個batch training label 都很相近的話
02/27 20:49, 35F

02/27 20:49, 6年前 , 36F
minibatch的意義就沒了,gradient很容易衝過頭overfitti
02/27 20:49, 36F

02/27 20:49, 6年前 , 37F
ng
02/27 20:49, 37F

02/27 21:11, 6年前 , 38F
原po把改完的結果回報一下啦 順便問問你optimizer用哪個
02/27 21:11, 38F

02/27 23:26, 6年前 , 39F
推推 好文章推起來
02/27 23:26, 39F

02/27 23:54, 6年前 , 40F
這不就是minibatch的概念嗎?如果你的minibatch沒有
02/27 23:54, 40F

02/27 23:54, 6年前 , 41F
足夠獨立的樣本,那可能就會學到原本不該學的東西!
02/27 23:54, 41F

02/28 14:21, 6年前 , 42F
弱弱問一下 model的正確率是要看training的還是validati
02/28 14:21, 42F

02/28 14:21, 6年前 , 43F
on的,還是是看val_acc最高的那個epoch的acc呢?
02/28 14:21, 43F

02/28 17:55, 6年前 , 44F
val
02/28 17:55, 44F

03/01 01:37, 6年前 , 45F
我覺得很有可能是前幾個batch把NN玩壞了 所以最後到89的
03/01 01:37, 45F

03/01 01:37, 6年前 , 46F
的時候已經失去學習能力
03/01 01:37, 46F
文章代碼(AID): #1QbDsiJp (DataScience)
討論串 (同標題文章)
文章代碼(AID): #1QbDsiJp (DataScience)