openmmlab打卡笔记1

作者通过个人经验分享了过拟合和欠拟合的问题,以及如何解决。过拟合时,模型过度依赖训练数据,解决方案包括增加训练样本和早停策略。欠拟合则表现为模型无法捕获数据特征,可通过延长训练、更换模型(如从全连接层到卷积神经网络)来改善。文中还介绍了卷积神经网络的训练过程,包括权重初始化、损失计算、反向传播和权重更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天听了子豪兄的课,收获如下:
由于不是计算机系科班出身,有一些听了就在想为什么会是这样呢,所以记得比较凌乱

1、拟合问题

用他的话来比喻:

过拟合:平时考得好,高考没考好
拟合:平时考得好,高考考得好
欠拟合:平时没考好,高考也没考好
解决方法:
过拟合:扩充训练样本,提早结束训练(引入早停策略)
欠拟合:延长训练,更换模型
这两个问题我都经历过
我曾想训练一个鞋类图片生成模型,于是在网上抄了一个dcgan的代码下来,训练的过程倒是没太大问题,并且训练完成后生成的图片还跟训练用的图片一模一样。
但就是因为跟训练的图片一模一样,导致这个模型无论输入什么,都生成不了其他的鞋的图片。
幸好有人指点,我才知道这是过拟合了
后来从网上抄了一个全是全连接层得cgan代码下来,用5个分类,每个分类300多张图,图片的size是224 x 224,然后batch size 设 64 ,epoch 设 20000。
结果训练完成后,测试生成的图片全是非常模糊,训练过程中,G和D loss都很正常, 这种情况就是欠拟合。
模型无法拟合图片的特征,再继续训练下去也是白浪费时间。
于是我后来将神经网络更换为卷积神经网络,再训练就得时候输出得图片就正常多了(虽然后来又发生梯度爆炸的问题)

2、机器学习训练的是权重和参数

拿卷积神经网络来举例神经网络的训练过程,
1、先通过随机赋值给卷积核一个初始权重,然后让训练样本通过前向传播输出结果
2、将输出结果和真实值比较,求出损失值(通常是采用交叉熵求出)
3、随后进行反向传播,把输入作为已知,将损失值对权重求导,求出最优解,
并更新当前神经元的权值(通常的更新的方法是当前权值w-(最有解权值乘以学习率))。
由于神经元是链式传播,因此在反向传播中对于下个神经元,
则需要求输出对输入,输入对权重的偏导数
虽然反向传播这一步看似复杂,但在pytorch里面只是三行代码
求出loss 
反向传播 loss.backward
用亚当优化器更新权重 optim.Adam.step

暂时先记着这些,有不正确的地方望指教

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值