李宏毅2022ML第六周课程笔记

理解GAN:基本概念、思想与评估方法
本文介绍了生成对抗网络(GAN)的基本概念,包括生成器和鉴别器的作用。GAN通过相互竞争的训练过程,使生成器能生成与真实数据分布相近的样本。文章讨论了JS散度及其问题,并提及CycleGAN用于图像转换。此外,还概述了两种评估GAN模型的方法:InceptionScore和Fréchet Inception Distance。
部署运行你感兴趣的模型镜像

目录

李宏毅2022ML第六周课程笔记 GAN(生成对抗网络)

GAN的基本概念

GAN的基本思想

GAN的算法基本流程

训练目标

怎么判断两个数据集的分布接近程度?

能否使用其它散度呢?

JS散度存在的问题

Cycle GAN

怎么对于GAN模型进行评估?

1. Inception Score (IS)

2.Fréchet Inception Distance (FID)


李宏毅2022ML第六周课程笔记 GAN(生成对抗网络)

GAN的基本概念

       GAN全称为Generative Adversarial Network(生成对抗网络),其主要的目的是为了让训练机器让机器能够自主生成相对应类型的data,其中生成器generator就是GAN中进行生成相对应类似分布的网络,而鉴别器Discriminator就是判别生成器生成的data是否为真假的网络。

GAN的基本思想

       GAN的基本架构为一个generator和一个discriminator,生成器的任务是产生大量data,然后根据判别器的反馈不断更新自己,期望自己产生的数据不会被判别器判假,而判别器是不断训练自己的判断真伪的能力,两者相反相成,相成相反。

GAN的算法基本流程

       初始化生成器和判别器的参数,首先固定生成器的参数,不断产生图片喂给判别器,从而训练判别器的网络,之后固定判别器,更新生成器的网络。

训练目标

希望最终能够让我们的生成器输出的数据分布能和期望的数据分布越接近越好。

怎么判断两个数据集的分布接近程度?

       JS divergence:JS散度是对称的,其取值是0到1之间。如果两个分布P,Q离得很远,完全没有重叠的时候,那么KL散度值是没有意义的,而JS散度值是一个常数。

       KL散度:用来衡量两个分布之间的差异,等于一个交叉熵减去一个信息熵。

https://i-blog.csdnimg.cn/blog_migrate/320c443f71e2a333c7f30313c18b83f8.png

能否使用其它散度呢?

       可以选择你喜欢的使用,以下是一些参考。

JS散度存在的问题

       当两个分布足够接近时,不管此时再怎么变化,JS散度值为常数,梯度为0,无法更新。在图像所在的高维空间中,生成的图像分布和真实图像的分布可能是完全没有重叠的,比如在三维空间举一个例子,可以理解为两者的分布是三维空间中的两个面,那么他们重叠的部分几乎为零。

Cycle GAN

       基本原理:使用两个生成网络,将原图像生成两次,希望最后生成的结果和原始数据尽可能接近。

怎么对于GAN模型进行评估?

Evaluation of Generation:目前来说没有很系统的评价体系。

1. Inception Score (IS)

针对我们GAN生成的图片,我们套用一个预先训练好的Inception模型来获得概率分布p。我们希望我们的GAN生成接近真实的数据,同时也希望GAN生成多样的数据,所以我们希望概率分布p有着低entropy,评分公式为:

2.Fréchet Inception Distance (FID)

FID是在IS的基础上的改良版,计算 IS 时只考虑了生成样本,没有考虑真实数据,即 IS 无法反映真实数据和样本之间的距离,IS 判断数据真实性的依据,FID距离计算真实样本,生成样本在特征空间之间的距离。首先利用Inception网络来提取特征,然后使用高斯模型对特征空间进行建模,再去求解两个特征之间的距离,较低的FID意味着较高图片的质量和多样性,公式(越小越好):

 

您可能感兴趣的与本文相关的镜像

PyTorch 2.6

PyTorch 2.6

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

### 李宏毅2022年HW2课程资料及作业内容 关于李宏毅教授在2022年的机器学习课程中的第二次作业(HW2),可以从其公开的教学资源中获取相关内容。具体来说,该次作业通常涉及监督学习模型的应用实践以及特征工程的重要性[^1]。 #### 资料来源 - **课程主页**:可以访问NTU Machine Learning 2022 Spring的官方网站,在“Homework”部分找到具体的作业描述文件和相关数据集链接。 - **Kaggle竞赛页面**:类似于HW1,HW2也可能设置了一个基于Kaggle平台的比赛环境供学生提交预测结果并评估性能[^2]。 #### 技术要点概述 根据以往的经验总结,以下是可能涉及到的技术点: 1. 数据预处理阶段会强调如何清洗原始输入数据、缺失值填补策略的选择等问题; 2. 特征提取与转换方法讲解,比如通过多项式扩展增加非线性关系表达能力或者利用PCA降维技术减少冗余维度的影响; 3. 建立多种回归算法对比分析框架,如线性回归(Linear Regression),岭回归(Ridge Regression)和支持向量机(Support Vector Machines); ```python from sklearn.linear_model import Ridge ridge_reg = Ridge(alpha=1.0) ridge_reg.fit(X_train, y_train) y_pred_ridge = ridge_reg.predict(X_test) ``` 上述代码片段展示了如何使用Scikit-Learn库实现Ridge回归训练过程的一个简单例子。 #### 提交说明 即使过了官方规定的截止时间,学员依旧能够继续上传自己的解决方案至对应的Kaggle项目页来检验最终得分情况。不过要注意区分Public Leaderboard排名与Private Evaluation成绩之间的差异。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想的小鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值