当前位置:网站首页>训练正常&异常的GAN损失函数loss变化应该是怎么样的
训练正常&异常的GAN损失函数loss变化应该是怎么样的
2022-08-03 06:42:00 【xiongxyowo】
这里以个人用到的一个网络为例,仅供参考,不代表所有情形。
用tensorboard记录loss曲线的走向,横轴为迭代次数(iter),纵轴为损失(loss)值。
正常的
判别器loss
loss在2.6到3.4之间来回上下波动。注意,在tensorboard中,最好将Smoothing值调整为0,如果使用了Smoothing将比较难观察到loss的波动趋势,这里以Smoothing为0.999为例,还是展示判别器损失:
这个时候容易误判为判别器loss在稳步下降。不过实际上可以发现这个"下降"从3.25降到了3.05,所以本质上还是小范围波动。
生成器loss
loss在3.0到3.6之间来回上下波动。类似的,观察Smoothing为0.999时的情况:
给人的感觉是生成器loss一直在往上跑,可能会怀疑生成器没在进一步学习;但实际上仔细看容易发现只是从3.25跑到了3.35,依旧是在一个小区间内波动,生成器的能力确实是在继续逐步增强的。
生成器崩溃
判别器loss
可以发现从3一路下降到了0.8,在训练一开始就有在快速下降。观察Smoothing为0.999时的情况:
生成器loss
可以发现从4一路上升到了6.5,在训练一开始就有在快速上升。观察Smoothing为0.999时的情况:
从结果的角度出发,在生成器loss快速上升的时候,其已经开始生成无意义的噪声图像:
小结
从原理上来说,生成器和判别器从一开始都是非常弱的,因此一般不会在训练一开始两者损失就非常剧烈的波动。在训练一段时间达到稳定期后,生成器和判别器的损失都应该在一个小区间内波动,而不会有明显的持续上升/下降趋势。
如果生成器损失持续明显上升,表明其无法学习怎么欺骗判别器,体现在结果上就是开始生成噪声。
如果判别器损失持续明显上升,表示其无法学习怎么识别生成器,体现在结果上就是生成器可能会生成一致的,无意义的但是能欺骗判别器的图像(比如直接输出训练集中的样本)。
边栏推荐
猜你喜欢
随机推荐
MySQL 流程控制
【C语言】函数栈帧的创建和销毁详解
Flutter | 判断 Text 组件是否显示完
Laravel 中使用子查询
MySQL - 触发器
信息学奥赛一本通T1452:Keyboarding
El - tree set using setCheckedNodessetCheckedKeys default check nodes, and a new check through setChecked specified node
在线开启gtid偶发hang住的问题解决
数据库表结构文档 生成工具screw的使用
ViewModel 记录下 +
RHCSA第四天
9月考,如何选择靠谱正规的培训机构?
多线程可见
(十四)51单片机——LCD1602实现滚动效果
REST学习
【云原生--Kubernetes】kubectl命令详解
Haisi project summary
关于NOI 2022福建省选及省队组成的公告
DAC、ADC、FFT使用总结
uniapp 请求接口封装