作者fragmentwing (片翼碎夢)
看板DataScience
標題[討論] VGG16和adam
時間Sat Apr 29 17:41:21 2023
ctrl + y 可以刪除一整行,請將不需要的內容刪除
文章分類提示:
- 問題: 當你想要問問題時,請使用這個類別。
- 討論: 當你自己已經有答案,但是也想聽聽版友意見時。
- 情報: 當你看到消息時,請使用這個類別。
根據板規規定,做適當的轉換,以及摘錄重要文意。
- 心得: 當你自己想要分享經驗時,請使用這個類別。
[關鍵字]:VGG
[重點摘要]:
這是之前版上那篇驗證accuarcy完全沒變的回文,但是因為問題已經解決而且有新疑問所以發新文章並改用討論作為分類
主要想討論的問題是,VGG真的和ADAM處不好?我是在網上看到有人講這件事改用SGD後loss才有在明顯變動
他的說法是ADAM遇到VGG等參數大的模型就會失常,他還說是常識但我是第一次看到QAQ
(板友chang1248w指這是錯誤資訊)
一方面我自己改成SGD後總算是能開始訓練,另一方面卻也看到有人用使用ADAM的VGG去做cifar10
我也有在猜這次的分類任務是二分法這點會不會也有影響
而這次訓練的資訊如下:
pastebin:
https://pastebin.com/H3MeGvht
模型:VGG16
目的:參照
https://youtu.be/2xMLlm_VDJE,訓練出能區分究竟是不是pizza的神經網路
資料:food-101,其中pizza的部分請參考該影片以剃除被錯誤分進pizza資料集的圖片
這次我使用的是1000張pizza(刪除後不足的用自己寫的爬蟲抓圖片進來補)
而作為對照組的非pizza資料則從food-101的其他食物圖片中各選10張,總計1000張
結果:收斂過程對於valid資料集滿不穩定的,最終大概收在accuracy 81~82%
設定的收斂條件為當valid_loss不再下降5次時學習率*0.2,不再下降超過10次停止
loss:
https://imgur.com/yBcU0G3
accuracy:
https://imgur.com/e6w1xM4
precision:
https://imgur.com/Xmd8fdA
--
https://i.imgur.com/h4Q0F04.jpg
9月23日 發生大事了
因為就在這天,加藤惠誕生了
https://i.imgur.com/H3RhXfJ.jpg
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.77.97.142 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/DataScience/M.1682761290.A.175.html
※ 編輯: fragmentwing (42.77.97.142 臺灣), 04/29/2023 17:49:30
1F:→ lycantrope: CrossEntropyLoss,output應該給digits不用取softmax 04/29 17:57
謝謝大大提供意見
試著照大大提供的資訊更改,雖然前幾個epoch裡loss有在下降,但是大概第4~5個epoch開始就一樣沒有再下降了
accuracy也是在50%左右變動
大大會這麼建議應該是因為pytorch的crossentropyloss會在內部做一次softmax的緣故吧
滿詭異的,剛剛試著用sgd但是取消softmax而直接用輸出來跑
一開始以為沒有變化,但後來發現準確率有微幅上升
30個epochs後accuracy從50%升到61%
2F:推 st1009: 我有用adam訓練resnet50並且成功,resnet內含有類似VGG的 04/29 18:15
3F:推 st1009: 架構,且參數遠大於VGG 有需要我可以分享相關程式 04/29 18:16
可以的話超感謝,請問也是用pytorch寫的嗎?
resnet是用來解決梯度消失,正好可以拿來對照,也很好奇分類項目到底會不會影響梯度消失的程度
這幾天正在準備用整個food-101做分類訓練(101個分類)來比較結果
(準備aka把東西傳到google雲端,一個epoch跑20分鐘在自己電腦上有點吃不消,目前已經傳了第二天了)
※ 編輯: fragmentwing (42.77.97.142 臺灣), 04/29/2023 18:40:09
4F:→ chang1248w: adam和大參數處不來純屬胡言亂語 04/29 18:59
5F:→ chang1248w: 你要傳資料建議zip之後上kaggle,然後用colab或者 04/29 19:03
6F:→ chang1248w: kaggle notebook 04/29 19:03
7F:→ chang1248w: 分類項目比較會影響梯度的大概就imbalance label 04/29 19:06
8F:→ chang1248w: 導致各類梯度期望值不同 04/29 19:07
9F:→ chang1248w: sgd欠調教所以上下限高,adam懶人但發起顛來挺可怕的 04/29 19:12
10F:→ chang1248w: 所以後來的論文都會上adam與sgd的比較 04/29 19:12
11F:→ chang1248w: 算是一種穩定而強的背書 04/29 19:12
12F:→ chang1248w: adam有聽說的問題就LLM在batchsize大於128之後,收斂 04/29 19:17
13F:→ chang1248w: 速度沒啥差異,所以就有神仙提出了LAMB optimizer, 04/29 19:17
14F:→ chang1248w: 然後在他們新的資料中心用十秒從頭訓練了一遍 04/29 19:17
15F:→ fragmentwing: 感謝建議!!待會來試試看 04/29 19:19
16F:→ fragmentwing: imbalance 的話雖然兩邊都是1000筆資料 可能是我bat 04/29 19:19
17F:→ fragmentwing: ch太小造成的? 04/29 19:19
18F:→ chang1248w: 期望值一樣就沒問題 04/29 19:24
19F:→ fragmentwing: 既然是胡言亂語待會回來修個文加註免得誤導別人 04/29 19:24
20F:→ chang1248w: stack flow下面有指正 04/29 19:29
21F:→ chang1248w: 看超過三年前的文章就要小心 04/29 19:29
22F:→ fragmentwing: why doesn't the accuracy ……那篇沒錯吧 我倒是看 04/29 20:22
23F:→ fragmentwing: 到好幾個說改用sgd的建議但沒看到指正的評論 還是大 04/29 20:22
24F:→ fragmentwing: 大指的是要做weight initialization的事? 04/29 20:22
※ 編輯: fragmentwing (42.77.97.142 臺灣), 04/29/2023 21:26:43
25F:推 st1009: 其實我也很想說他胡言亂語,我家resnet101也是用adam這還 04/29 21:30
26F:推 st1009: 不夠大嗎,只是怕他說的大是ChatGPT之類的...... 04/29 21:30
27F:→ st1009: 我的code不想公開,明天整理過,私信給你 04/29 21:31
謝謝大大,如果幾天後有找到真正的原因會再上來改文
※ 編輯: fragmentwing (42.77.97.142 臺灣), 04/29/2023 21:51:36
※ 編輯: fragmentwing (42.77.97.142 臺灣), 04/29/2023 22:32:50
28F:推 iHaveAPen: 你如果了解一下adam在幹嘛就知道處不來有多荒唐 05/06 16:56
29F:推 srarod: Adam收斂應該不會有大問題,應該優先看一下是不是框架有 02/02 13:24
30F:→ srarod: 問題。Adam主要的問題應該是generalisation,要又快又泛 02/02 13:24
31F:→ srarod: 化一點可以考慮AdamW 02/02 13:24
32F:→ chang1248w: adam本身和generalization沒關係呀,adam+L2 penalty 05/16 00:02
33F:→ chang1248w: 也是活的好好的,直到adamW跳出來說你們用的懲罰項會 05/16 00:02
34F:→ chang1248w: 過懲罰 05/16 00:02