作者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/cn.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