如何解释生成对抗网络中判别器的损失和生成器的损失?

2024-01-20

我正在阅读人们对 DCGAN 的实现,尤其是this one https://github.com/carpedm20/DCGAN-tensorflow在张量流中。

在该实现中,作者画出了判别器和生成器的损失,如下所示(图片来自https://github.com/carpedm20/DCGAN-tensorflow https://github.com/carpedm20/DCGAN-tensorflow):

鉴别器和生成器的损失似乎都不遵循任何模式。与一般神经网络不同,其损失随着训练迭代的增加而减少。如何解释训练 GAN 时的损失?


不幸的是,就像你对 GAN 所说的那样,损失是非常不直观的。大多数情况下,生成器和鉴别器相互竞争,因此一个的改进意味着另一个的损失更高,直到另一个更好地学习接收到的损失,这会搞砸其竞争对手,等等。

Now one thing that should happen often enough (depending on your data and initialisation) is that both discriminator and generator losses are converging to some permanent numbers, like this: (it's ok for loss to bounce around a bit - it's just the evidence of the model trying to improve itself)

这种损失收敛通常意味着 GAN 模型找到了一些最佳值,但它无法进一步改进,这也意味着它已经学习得足够好了。 (另请注意,数字本身通常并不能提供太多信息。)

以下是一些旁注,希望对您有所帮助:

  • 如果损失没有很好地收敛,并不一定意味着模型没有学到任何东西 - 检查生成的示例,有时它们足够好。或者,可以尝试更改学习率和其他参数。
  • 如果模型收敛良好,仍然检查生成的示例 - 有时生成器会发现判别器无法与真实数据区分开的一个/几个示例。问题是它总是给出这几个,而不创建任何新的东西,这称为模式崩溃。通常为数据引入一些多样性会有所帮助。
  • 由于普通 GAN 相当不稳定,我建议使用某些版本 DCGAN 模型 https://github.com/carpedm20/DCGAN-tensorflow,因为它们包含一些特征,例如卷积 层和批量归一化,这应该有助于 收敛的稳定性。 (上图是 DCGAN 而不是 vanilla GAN 的结果)
  • 这是一些常识,但仍然是:就像大多数神经网络结构调整模型一样,即更改其参数或/和架构以满足您的某些需求/数据可以改进模型或搞砸它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何解释生成对抗网络中判别器的损失和生成器的损失? 的相关文章

随机推荐

  • TypeScript 函数定义中的嵌套泛型

    我正在尝试为依赖于操作类型的 redux 操作创建类型安全的处理程序 例如 任何操作都可以描述为 type ActionType
  • 如何在使用 range() 函数从列表中删除项目时迭代列表? [复制]

    这个问题在这里已经有答案了 这是我在尝试学习 python 编程时遇到的最常见问题 问题是 当我尝试使用 range 函数迭代列表以检查列表中的给定项目是否满足给定条件 如果满足则删除它 它总是会给出 IndexError 那么 是否有一种
  • Python Sockets:如何在同一 wifi 上的两台计算机之间进行连接

    我有两台相邻的笔记本电脑 想在它们之间发送消息 我发现当客户端和服务器位于同一台计算机上时代码可以工作 但当它们分开时它就不起作用 SERVER import socket def Main host localhost port 5000
  • VBA复杂的Getter、Setter语法

    您好 我对 VBA 相当陌生 我需要创建一个具有相对复杂的 Getter 和 Setter 的对象 为了做到这一点 我不断地检查MSDN https msdn microsoft com en us library zzh9ha57 asp
  • 最多可连接 45 台设备的多点连接框架

    我希望使用多点连接框架 并且感谢任何有关如何最好地进行的经验之谈 我需要在 教练 设备和最多 45 个 球员 设备之间建立连接 它们都将位于同一空间 但无法预测 wifi 可用性或连接情况 教练设备需要每秒向所有玩家设备发送一条指令 一个小
  • 使用 AES 加密文件、使用 RSA 加密密钥 - 我走在正确的轨道上吗?

    概述 我正在尝试设计一个应用程序来加密文件以安全地发送蜗牛邮件 大量数据 我计划使用 Net 中的 AES RijndaelManaged 加密来最初加密文件 使用随机生成的密钥RNGCryptoServiceProvider 然后我使用
  • 使用特定队列调用dispatch_async时的符号断点

    我正在调试项目中涉及中央调度的问题 在调试过程中 如果有一种在工作被分派到特定队列时收到通知的方法 将会非常有帮助 有没有办法设置符号断点dispatch async有一个条件可以检查调度队列参数是否与我有权访问的其他队列相同 以下是设置条
  • 在类库(.NET 标准)中找不到位图类

    我想制作一个类库 NET Standard 并且我正在使用 System Drawing 但我收到错误 CS0246 C 找不到类型或命名空间名称 Bitmap 您是否缺少 using 指令或程序集引用 我正在使用 NET Standard
  • 函数计算已在真/假表达式中使用,该表达式用作表过滤表达式,这是不允许的

    我需要检查 ssas 表格模型中某个度量的当月和当年值 但由于类型不匹配 我无法执行此操作 为此 我创建了一个使用此 dax 查询的度量 CurrMonthYear CONCATENATE CONCATENATE concatenate y
  • 设置表格单元格内容的最大高度

    我有一张桌子 它应该始终占据屏幕高度的一定百分比 大多数行的高度都是固定的 但我有一行应该拉伸以填充可用空间 如果该行中单元格的内容溢出所需的高度 我希望使用溢出 隐藏来剪辑内容 不幸的是 表和行不遵守 max height 属性 这是 W
  • 从 A-Z 排序 div

    我有一个聊天网页 每个成员都有一个 DIV DIV 的外观如下 div div class chatmember 10001 div div class chatmember 10008 div div class chatmember 1
  • scipy 中的 kmeans 和 kmeans2 有什么区别?

    我是机器学习的新手 想知道 scipy 中 kmeans 和 kmeans2 之间的区别 根据文档 它们都使用 k means 算法 但是如何选择它们呢 根据文档 kmeans2 似乎是标准的 k 均值算法 并且运行直到收敛到局部最优 并且
  • SQL SELECT * FROM XXX WHERE 数组中的列名

    我正在编写一些 SQL 代码 我熟悉语法 SELECT FROM myTable WHERE myColumn in 1 2 3 假设我正在编写一些 C 代码 我想在其中使用我使用过的 C 数组 1 2 3 我怎么做 您可以动态构建 SQL
  • 当活动被破坏时,GPS图标不会消失吗?

    作为一个尝试 GPS 东西的 Android 新手 我设法将这段代码组合在一起 它的工作原理就像我期望的那样 除了一件事 GPS 图标永远不会消失 如何让GPS图标在Activity被破坏时消失 我有 locationManager rem
  • 在 Ruby 中如何找到机器上的空闲物理内存?

    我想知道系统上有多少可用物理内存 不包括任何交换区 有没有办法在 Ruby 中获取这些信息 如果您使用 Linux 您通常使用 free 命令来查找系统上的物理内存 即 RAM 详细信息 output x free 输出将类似于以下字符串
  • 如何使用 boto3 仅检索 S3 中的 last_modified 密钥

    我只想使用 boto3 从 S3 存储桶中检索特定前缀中的 last modified 密钥 Get Today s date today datetime date today Get Objects date s3 boto3 reso
  • Angular8 i18n 用于占位符标签文本

    如何在 ngx mat select search palceholderLabel 中添加 i18n div class form group col md 6 mb lg 5 mb 4 div
  • 确保 MongoDb findAndModify 中独占读取的方法?

    我有一个 MongoDB 集合 用作作业队列 多个进程从中读取记录 使用findAndModify FindAndModify搜索记录 其中activefield 为 false 将其设置为 true 这样其他进程就不会读取同一条记录 问题
  • Excel Range 中的一维数组

    我目前正在使用以下代码填充我的数组 Securities Option Base 1 Securities Array Worksheets 3 Range A8 A SymbolCount Value 这会生成一个二维数组 其中每个地址都
  • 如何解释生成对抗网络中判别器的损失和生成器的损失?

    我正在阅读人们对 DCGAN 的实现 尤其是this one https github com carpedm20 DCGAN tensorflow在张量流中 在该实现中 作者画出了判别器和生成器的损失 如下所示 图片来自https git