[問題] CNN無法收斂

看板DataScience作者 (eggggg)時間1年前 (2022/10/26 21:07), 編輯推噓5(5094)
留言99則, 4人參與, 1年前最新討論串1/1
ctrl + y 可以刪除一整行,請將不需要的內容刪除 文章分類提示: - 問題: 當你想要問問題時,請使用這個類別。 - 討論: 當你自己已經有答案,但是也想聽聽版友意見時。 - 情報: 當你看到消息時,請使用這個類別。 根據板規規定,做適當的轉換,以及摘錄重要文意。 - 心得: 當你自己想要分享經驗時,請使用這個類別。 (回答並非義務,所以當有人回答時,哪怕句謝謝也好,多多回應,大E可編輯文章) 可以試著把程式碼用網站貼出來唷 https://pastebin.com/ (如果用不到以下框架,如觀念問題請自行視情況刪除作業系統,使用工具等項目) 作業系統:(ex:mac,win10,win8,win7,linux,etc...) win10 問題類別:(ex:ML,SVM,RL,DL,RNN,CNN,NLP,BD,Vis,etc...) CNN 使用工具:(ex:python,Java,C++,tensorflow,keras,MATLAB,etc...) Python 問題內容: 目前的研究是要辨認時頻圖 目標是要分類出兩種類別 現在選擇使用的架構是EfficientNet B3 搭配transfer learning做訓練 時頻圖輸入時有做標準化 訓練資料有28000 Train跟Validation的比例為0.8、0.2 在fit的過程train很快就收斂了 在Validation的部分完全沒辦法收斂 所以合理懷疑時overfitting 目前想不到合適的解決辦法 雖然最後測試的準確度有86% 但是感覺完全是矇到的 想請問板上的前輩有什麼建議? https://i.imgur.com/i1lRjCv.jpg
https://i.imgur.com/ZPaYBx4.jpg
https://i.imgur.com/UrHO7R5.jpg
https://i.imgur.com/BkKPy7Z.jpg
https://i.imgur.com/YI6kNUV.jpg
https://i.imgur.com/8RWVVuw.jpg
https://i.imgur.com/KLoA3MG.jpghttps:// i.imgur.com/A30vu0q.jpg https://i.imgur.com/QuebHiL.jpg
----- Sent from JPTT on my iPhone -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.133.251 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/DataScience/M.1666789658.A.ABC.html

10/26 21:08, 1年前 , 1F
補上accuracy
10/26 21:08, 1F

10/26 21:08, 1年前 , 2F

10/26 21:38, 1年前 , 3F
麻煩各位前輩給我一些指點
10/26 21:38, 3F

10/26 22:00, 1年前 , 4F
efficient net原本train在哪裡?
10/26 22:00, 4F

10/26 22:07, 1年前 , 5F
你原本的toy model有這樣的問題嗎
10/26 22:07, 5F

10/26 22:09, 1年前 , 6F
另外testing在什麼樣的集合上做?
10/26 22:09, 6F

10/26 22:12, 1年前 , 7F
好奇問個,時頻圖怎麼會有rgb
10/26 22:12, 7F

10/26 22:15, 1年前 , 8F
Train是用模擬的方式做試題邊界不反射的訊號
10/26 22:15, 8F

10/26 22:15, 1年前 , 9F
,再加上不反射邊界不反射訊號加上雜訊。
10/26 22:15, 9F

10/26 22:15, 1年前 , 10F
Test是用模擬實驗訊號,邊界有反射的訊號。
10/26 22:15, 10F

10/26 22:16, 1年前 , 11F
時頻圖的顏色我是用Matlab處理使用的colormap是用jet
10/26 22:16, 11F

10/26 22:18, 1年前 , 12F
補充一下,原本有使用過vgg16的模型做訓練,但是測試
10/26 22:18, 12F

10/26 22:18, 1年前 , 13F
結果最好的是EfficientNet B3
10/26 22:18, 13F

10/26 22:33, 1年前 , 14F
最下面留一層hidden layer就好,然後試試看第一個。
10/26 22:33, 14F

10/26 22:33, 1年前 , 15F
epoch之後unfreeze整個模型
10/26 22:33, 15F

10/26 22:37, 1年前 , 16F
樓上的前輩指的第一個是什麼意思?
10/26 22:37, 16F

10/26 23:04, 1年前 , 17F
第一個epoch
10/26 23:04, 17F

10/27 11:01, 1年前 , 18F
請問能給我更具體的操作說明嗎?
10/27 11:01, 18F

10/27 11:01, 1年前 , 19F
我算是這方面的新手
10/27 11:01, 19F

10/27 11:01, 1年前 , 20F
謝謝
10/27 11:01, 20F

10/27 11:39, 1年前 , 21F
我懷疑你的domain和imagenet 差太大,導致模型解出來
10/27 11:39, 21F

10/27 11:39, 1年前 , 22F
的特徵多半和預測沒什麼關係,再疊上dropout造成模型
10/27 11:39, 22F

10/27 11:39, 1年前 , 23F
在決策時沒有穩定的共識
10/27 11:39, 23F

10/27 11:42, 1年前 , 24F
另外dropout不建議和batch normalization 連在一起使
10/27 11:42, 24F

10/27 11:42, 1年前 , 25F
10/27 11:42, 25F

10/27 11:43, 1年前 , 26F

10/27 11:45, 1年前 , 27F
你可以先試試看把dropout拿掉,或者把mlp調整成
10/27 11:45, 27F

10/27 11:45, 1年前 , 28F
dense-bn-relu+dropout
10/27 11:45, 28F

10/27 11:47, 1年前 , 29F
沒幫助再試整個模型上的fine-tuning
10/27 11:47, 29F

10/27 11:50, 1年前 , 30F
具體步驟是你現在的方法只train一個epoch,儲存整個
10/27 11:50, 30F

10/27 11:50, 1年前 , 31F
模型的參數,把整個模型都設成trainable,再complie
10/27 11:50, 31F

10/27 11:50, 1年前 , 32F
模型一次,載入剛剛訓練過一個epoch的參數,繼續trai
10/27 11:50, 32F

10/27 11:50, 1年前 , 33F
n
10/27 11:50, 33F

10/27 11:52, 1年前 , 34F
你可以在.fit之前呼叫. summary 來約略的檢查模型的
10/27 11:52, 34F

10/27 11:52, 1年前 , 35F
參數有沒有成功切換至trainable
10/27 11:52, 35F

10/27 11:55, 1年前 , 36F
最後,一般在fine-tuning的時候會加上L2 regularizer
10/27 11:55, 36F

10/27 11:55, 1年前 , 37F
但是這東西遇上adam之類含有動量項的算法時,行為和
10/27 11:55, 37F

10/27 11:55, 1年前 , 38F
理論上應該給予的懲罰有所落差,因此有了adamW和sgdW
10/27 11:55, 38F

10/27 11:55, 1年前 , 39F
之類的更正版
10/27 11:55, 39F

10/27 11:56, 1年前 , 40F
你可以在tensorflow的擴充包,tensorflow-addons找到
10/27 11:56, 40F

10/27 11:56, 1年前 , 41F
它們
10/27 11:56, 41F

10/27 12:01, 1年前 , 42F
validation抖的這麼厲害已經超出overfitting的範疇了
10/27 12:01, 42F

10/27 12:01, 1年前 , 43F
數量級差太多
10/27 12:01, 43F

10/27 12:12, 1年前 , 44F
非常感謝前輩 我先嘗試看看
10/27 12:12, 44F

10/27 12:36, 1年前 , 45F
能有幾分作用我是不知道啦lol
10/27 12:36, 45F

10/27 14:10, 1年前 , 46F
朝聖很會抖的 val
10/27 14:10, 46F

10/27 17:24, 1年前 , 47F
這是改成dense-bn-relu-dropout的結果
10/27 17:24, 47F

10/27 17:24, 1年前 , 48F
Predict準確率72%
10/27 17:24, 48F

10/27 17:24, 1年前 , 49F

10/27 17:24, 1年前 , 50F

10/27 19:01, 1年前 , 51F
這看起來就是平常會看到的overfitting
10/27 19:01, 51F

10/28 01:37, 1年前 , 52F
已經有照著前輩的方式操作了,先把trainable 關掉,訓
10/28 01:37, 52F

10/28 01:37, 1年前 , 53F
練一個epoch,再把模型變成可訓練,接著上一個epoch的
10/28 01:37, 53F

10/28 01:37, 1年前 , 54F
權重繼續訓練,但是出來的結果val 也是亂跳…
10/28 01:37, 54F

10/28 03:26, 1年前 , 55F
是像最上面那種潑漆似的灑脫,還是前幾樓這種5%左右
10/28 03:26, 55F

10/28 03:26, 1年前 , 56F
的震盪?
10/28 03:26, 56F

10/28 08:58, 1年前 , 57F
像一開始的那種潑漆式
10/28 08:58, 57F

10/28 08:59, 1年前 , 58F
如果不使用遷移式學習,把所有的參數都打開,訓練1000
10/28 08:59, 58F

10/28 08:59, 1年前 , 59F
個epoch看看,效果會不會比較好?
10/28 08:59, 59F

10/28 12:13, 1年前 , 60F
我沒想法,這要試了才知道
10/28 12:13, 60F

10/28 12:16, 1年前 , 61F
等等,你網路的最後一層怎麼是sigmoid
10/28 12:16, 61F

10/28 12:20, 1年前 , 62F
sigmoid是給非零即一的binary classification 用的,
10/28 12:20, 62F

10/28 12:20, 1年前 , 63F
接在Binary cross entropy (BCE)後面,一般ce的形式
10/28 12:20, 63F

10/28 12:20, 1年前 , 64F
要用softmax當輸出
10/28 12:20, 64F

10/28 13:41, 1年前 , 65F
是的,最終需要的答案就是只有兩個,不是0就是1
10/28 13:41, 65F

10/28 14:44, 1年前 , 66F
用sigmoid有可能會輸出[1, 1],這是你要的?
10/28 14:44, 66F

10/28 14:54, 1年前 , 67F
我要的答案是0或1 ,二分類
10/28 14:54, 67F

10/28 14:59, 1年前 , 68F
那最後一層的activation 就得用softmax
10/28 14:59, 68F

10/28 15:00, 1年前 , 69F
不然就只輸出一個用sigmoid的node,然後loss用BCE
10/28 15:00, 69F

10/28 15:03, 1年前 , 70F
那compile要用categorical cross entropy 嗎?如果我
10/28 15:03, 70F

10/28 15:03, 1年前 , 71F
選擇用softmax 的話
10/28 15:03, 71F

10/28 15:14, 1年前 , 72F
10/28 15:14, 72F

10/28 15:17, 1年前 , 73F
好的,謝謝,我現在嘗試
10/28 15:17, 73F

11/03 07:57, 1年前 , 74F
你的試體很薄嗎 有沒有機會只拿暫態的時間段 不要被回波
11/03 07:57, 74F

11/03 07:57, 1年前 , 75F
干擾呢ˉ?
11/03 07:57, 75F

11/03 20:42, 1年前 , 76F
有沒有回波對應該沒什麼差,可以有回波和沒有回波的
11/03 20:42, 76F

11/03 20:42, 1年前 , 77F
資料打散在一起,再切訓練/測驗集
11/03 20:42, 77F

11/04 10:54, 1年前 , 78F
剛剛跟教授報告,他覺得是資料量不平均,0的部分9000
11/04 10:54, 78F

11/04 10:54, 1年前 , 79F
筆、1的部分有19000筆,有可能是沒有真正隨機切分出來
11/04 10:54, 79F

11/04 10:54, 1年前 , 80F
,不知道這種原因是有可能的嗎?
11/04 10:54, 80F

11/04 10:56, 1年前 , 81F
試題厚度20公分,我是用有拿波會反射的訊號當data,應
11/04 10:56, 81F

11/04 10:56, 1年前 , 82F
該是不會影響。
11/04 10:56, 82F

11/06 01:54, 1年前 , 83F
資料量不平均的問題用 Focal Loss 的 Alpha vector
11/06 01:54, 83F

11/06 01:54, 1年前 , 84F
處理。
11/06 01:54, 84F

11/06 01:54, 1年前 , 85F
簡單來說就是去修一下 CE
11/06 01:54, 85F

11/06 09:44, 1年前 , 86F
怎麼我讀到的focal loss是對樣本難易度做調整
11/06 09:44, 86F

11/06 14:55, 1年前 , 87F
你那個是 gamma , 前面那個 alpha 可以處理 data imba
11/06 14:55, 87F

11/06 14:55, 1年前 , 88F
lance 。
11/06 14:55, 88F

11/06 21:52, 1年前 , 89F
喔,那個不算focal loss 提出的吧,年初還有一篇後續
11/06 21:52, 89F

11/06 21:52, 1年前 , 90F
的polyloss
11/06 21:52, 90F

11/07 09:49, 1年前 , 91F
聽起來好像是暫態的彈性波啊
11/07 09:49, 91F

11/07 09:49, 1年前 , 92F
如果訓練只給他看用有限元素法模擬無邊界的 得到時頻圖就
11/07 09:49, 92F

11/07 09:49, 1年前 , 93F
是沒反射
11/07 09:49, 93F

11/07 09:49, 1年前 , 94F
測試的資料集如果都是有反射影響 那疊合就會因為距離邊
11/07 09:49, 94F

11/07 09:49, 1年前 , 95F
界不同而不同 所以時間域特徵會直接變成雜訊
11/07 09:49, 95F

11/07 09:49, 1年前 , 96F
雜訊還要考慮是否在資料集中的期望值是0
11/07 09:49, 96F

11/07 09:49, 1年前 , 97F
如果硬要說有沒有反射會一樣 那不如就用fft 不用時頻圖了
11/07 09:49, 97F

11/07 09:57, 1年前 , 98F
所以感覺可以從切資料集品均一點這點著手 跟樓上大大說
11/07 09:57, 98F

11/07 09:57, 1年前 , 99F
的一樣 打散處理
11/07 09:57, 99F
文章代碼(AID): #1ZMJ4Qgy (DataScience)
文章代碼(AID): #1ZMJ4Qgy (DataScience)