损失函数下降到很大值就稳定了怎么办?!

训练结果如下所示:

终端第1列:epochs,第2列:训练损失(蓝色曲线),第3列:测试损失(橙色曲线)

batch size:16,lr:4e-5

1. 是否找到合适的loss函数

2. batch size是否合适:过大的batchsize会让网络收敛到不好的局部最优点,泛化性不好;过小的batchsize训练速度慢,训练不收敛。

3. 是否使用合适的activation function

4. 学习率:学习率太大,一步前进的路程太长,会出现来回震荡的情况,但是学习率太小,收敛速度会比较慢。

综上,图中损失曲线均收敛至20000左右,没有出现回荡现象,因此学习率不优先修改。收敛值过高,怀疑可能是局部最优了,所以优先调节batch size。

调整后重新训练结果如下:batch size=8,其他不变

由上述结果可以看出,调小batch size之后,收敛后的损失值有明显下降。

但是后续发现,我这边的代码真的不太好,效果很差,所以要考虑一下是不是损失函数太简单了,方法论不太好!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
GAN(生成对抗网络)是一种用于生成模型的深度学习架构,由生成器和判别器两个网络组成。生成器试图生成逼真的样本,而判别器则试图区分真实样本和生成样本。 GAN的损失函数通常使用对抗损失函数,也称为最小最大(min-max)损失函数。该损失函数由两部分组成:生成器的损失和判别器的损失。 生成器的损失函数旨在使生成器生成的样本更逼真。它通过最小化生成样本被判别器判断为假的概率来实现。换句话说,生成器希望生成的样本能够欺骗判别器,使其无法准确区分真实样本和生成样本。 判别器的损失函数旨在使判别器能够准确地区分真实样本和生成样本。它通过最大化判别器正确判断真实样本和生成样本的概率来实现。换句话说,判别器希望能够准确地识别出哪些样本是真实的,哪些是生成的。 然而,GAN的损失函数难以下降的原因有以下几点: 1. GAN的训练过程是一个零和博弈,生成器和判别器相互竞争,优化一个网络会影响另一个网络的性能。这种竞争关系导致训练过程不稳定损失函数很难收敛到最优解。 2. GAN的损失函数是非凸的,存在多个局部最优解。这使得优化过程容易陷入局部最优解,而无法达到全局最优解。 3. GAN的训练过程中存在模式崩溃问题,即生成器只能生成一小部分样本,而无法生成多样化的样本。这导致损失函数在训练过程中很难下降。 因此,GAN的损失函数难以下降是由于训练过程的不稳定性、非凸性以及模式崩溃等问题所导致的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值