GAN相关知识

GAN训练tricks

  • generator的最后一层一般使用tanh激活函数,这样可以使训练更加稳定。但是我在实际用的时候,使用sigmoid和tanh的效果是差不多的;
  • 需要注意:discriminator的最后一层的输出的激活函数选择tanh,会导致cuda trigger问题,因此,一般来说,discriminator会选择sigmoid函数作为激活函数
  • 在实际训练的时候,G的loss在不断地下降,而D的loss在上升,这不是说网络性能不好,是正常的,只要两者loss最后收敛到一个比较稳定的值附近就可以。
  • G的学习率通常来说比D的学习率大一个数量级就会好很多。

PatchGAN (FCN)

当生成的图片过大时,可能生成的图片中只有局部区域存在伪影,而其余部分生成质量很好,此时若让判别器对整张图片进行判断,那么一个单一的数值可能无法良好地描述这张图片的质量。 PatchGAN 把一张完整的待鉴定图片利用滑动窗口裁剪成 70x70 大小的小图片。接着将这些图片依次输入判别器进行鉴定。最后将判别器对多张小图的评分求和,作为最终评分。

我的看法:这种结构和 FCN 全卷积网络 Fully Convolutional Network 不谋而合,若在 FCN 感受野达到 70x70 的那一层进行均值池化,则其效果与 patchGAN 是类似的,甚至用 FCN 更好。

BN为什么使用mini-batch?

主要是由于目前主流的梯度更新方式是mini-batch gradient decent,小批的梯度下降,这种方法把数据分为若干个批,按批来更新参数,这样,一个批中的一组数据共同决定了本次梯度的方向,下降起来就不容易跑偏,减少了随机性。另一方面因为批的样本数与整个数据集相比小了很多,计算量也不是很大。

为什么BN层一般用在线性层和卷积层后面,而不是放在非线性单元后

因为非线性单元的输出分布形状会在训练过程中变化,归一化无法消除它的方差偏移,相反的,全连接和卷积层的输出一般是一个对称,非稀疏的一个分布,更加类似高斯分布,对他们进行归一化会产生更加稳定的分布。

相关推荐
IT_陈寒3 分钟前
Redis实战精要:5种高频使用场景与性能优化全解析|得物技术
前端·人工智能·后端
Coder_Boy_12 分钟前
【人工智能应用技术】-基础实战-小程序应用(基于springAI+百度语音技术)智能语音控制-单片机交互代码
java·人工智能·后端·嵌入式硬件
deephub14 分钟前
Scikit-Learn 1.8引入 Array API,支持 PyTorch 与 CuPy 张量的原生 GPU 加速
人工智能·pytorch·python·机器学习·scikit-learn
KG_LLM图谱增强大模型15 分钟前
因果知识图谱增强大模型重构生命历程风险路径和慢病防控新范式:从妊娠期糖尿病到痴呆症的研究突破
人工智能·重构·知识图谱
万俟淋曦22 分钟前
【论文速递】2025年第37周(Sep-07-13)(Robotics/Embodied AI/LLM)
人工智能·ai·机器人·大模型·论文·robotics·具身智能
free-elcmacom25 分钟前
机器学习高阶教程<11>当数据开始“折叠”:流形学习与深度神经网络如何发现世界的隐藏维度
人工智能·python·神经网络·学习·算法·机器学习·dnn
阿杰学AI27 分钟前
AI核心知识61——大语言模型之Embedding (简洁且通俗易懂版)
人工智能·机器学习·ai·语言模型·自然语言处理·embedding·词向量
RockHopper202537 分钟前
一种面向服务LLM应用系统的显式世界模型架构原理
人工智能·llm·世界模型·显式模型
tap.AI39 分钟前
(一)初识 Stable Diffusion 3.5 —— 下一代多模态架构详解
人工智能·stable diffusion
Master_oid41 分钟前
机器学习26:增强式学习(Deep Reinforcement Learn)①
人工智能·学习·机器学习