深度学习中的无监督学习:从 VAE 到 GAN 的探索
在深度学习领域,无监督学习是一个引人入胜的研究方向,尤其是在生成式建模方面。我们从自编码器压缩数据开始,逐步过渡到变分自编码器(VAE)和生成对抗网络(GAN)生成数据。接下来,我们将深入探讨 GAN 的原理、实现和应用。
生成对抗网络(GAN)概述
在扩散模型出现之前,GAN 是最流行和最强大的生成式模型。GAN 采用了一种对抗性的网络架构,由生成器和判别器组成。生成器负责将潜在表示转换为类似于训练数据输入的内容,而判别器则试图区分真实输入和生成输入,并为生成器提供反馈以改进其生成效果。
可以将生成器和判别器的关系类比为艺术伪造者和评论家。生成器就像艺术伪造者,试图伪造著名画作;判别器则像评论家,试图判断一幅画是否为赝品。评论家会向伪造者提供反馈信号,帮助伪造者改进下一次的作品,直到伪造者生成的艺术作品让评论家无法区分真伪。
实现生成手写数字的 GAN
为了更好地理解 GAN 的实际工作原理,我们将实现一个生成手写数字的 GAN。
1. 定义模块
首先,打开一个包含所需依赖的 Livebook,并在新单元格中定义一个新模块:
defmodule GAN do
import Nx.Defn
end
2. 实现判别器
判别器的目标是确定输入图像是来自真实训练数据还是生成器。这类似于一个简单的图像分类任务,因此判别器只需是一个足够强大的图像分类模型。以下是判别器的实现代码:
从VAE到GAN的无监督学习探索
超级会员免费看
订阅专栏 解锁全文
2171

被折叠的 条评论
为什么被折叠?



