作者是:Trix Cyrus
[试试这个], Waymap 漏洞扫描工具: 访问这里
[关注一下] TrixSec Github: 点这里
[加入我们的] TrixSec Telegram: 点击这里
(此处省略)
生成模型是机器学习中的一个迷人领域,能够生成与训练数据类似的新数据。在这篇文章里,我们将讨论两种受欢迎的生成模型:生成对抗网络(GAN)和变分自编码器(VAE)。这些模型可以用来生成逼真的图像、制作深度伪造视频,甚至作曲。
此处省略内容
生成模型旨在理解数据的分布,并生成与原数据相似的新数据点。与侧重于分类或预测的判别模型不同,生成模型生成全新的数据。
此处省略
生成对抗网络(GAN)是Ian Goodfellow在2014年提出的一种生成模型。GANs主要由两个神经网络构成。
这些网络是通过一个被称为对抗性训练的竞争过程来进行训练的。
……
变分自编码器(VAEs)也是一种生成模型。它们首先学习输入数据的压缩表示(通常称为潜在空间),然后通过从该潜在空间采样生成新数据。
VAE是变分自动编码器,与传统的自动编码器不同,它们是加入了概率性的采样过程,这使得潜在空间中的插值更加平滑,从而可以生成新的数据。
此处省略内容
pip install tensorflow keras numpy matplotlib # 安装TensorFlow、Keras、NumPy和Matplotlib
全屏查看 退出全屏
import tensorflow as tf from tensorflow.keras import layers import numpy as np import matplotlib.pyplot as plt
以下是代码的解释:
# 导入TensorFlow库 import tensorflow as tf # 从TensorFlow的keras模块中导入layers from tensorflow.keras import layers # 导入NumPy库 import numpy as np # 导入Matplotlib的pyplot模块 import matplotlib.pyplot as plt
全屏模式, 退出全屏
步骤三: 定义生成对抗网络组件
# 生成器 def build_generator(latent_dim): model = tf.keras.Sequential([ layers.Dense(256, activation='relu', input_dim=latent_dim), layers.BatchNormalization(), layers.LeakyReLU(0.2), layers.Dense(28 * 28 * 1, activation='sigmoid'), layers.Reshape((28, 28, 1)) ]) return model # 构建判别器 def build_discriminator(input_shape): model = tf.keras.Sequential([ layers.Flatten(input_shape=input_shape), layers.Dense(128, activation='relu'), layers.LeakyReLU(0.2), layers.Dense(1, activation='sigmoid') ]) return model
进入全屏模式 退出全屏
让这两个网络在对抗环境中训练。
## 编码器部分 latent_dim = 2 encoder_input = layers.Input(shape=(28, 28, 1)) x = layers.Flatten()(encoder_input) x = layers.Dense(128, activation='relu')(x) z_mean = layers.Dense(latent_dim, name='z_mean')(x) z_log_var = layers.Dense(latent_dim, name='z_log_var')(x) ## 解码器部分 decoder_input = layers.Input(shape=(latent_dim,)) x = layers.Dense(128, activation='relu')(decoder_input) x = layers.Dense(28 * 28, activation='sigmoid')(decoder_input) decoder_output = layers.Reshape((28, 28, 1))(x)
请点击这里进入全屏
请点击这里退出全屏
解码采样点以还原原始输入。
特征 | GANs | VAEs |
---|---|---|
训练 | 对抗性(生成器 vs. 判别器) | 重建(最小化损失值) |
输出质量 | 通常更逼真 | 通常更平滑,不够锐利的 |
潜在空间 | 没有明确的潜在空间 | 明确的潜在空间 |
VAE: 相比 GAN,VAE 的输出更模糊。
在药物研发和创意艺术领域的应用。
~Trixsec