网易首页 > 网易号 > 正文 申请入驻

在表格数据集上训练变分自编码器 (VAE)示例

0
分享至

变分自编码器 (VAE) 是在图像数据应用中被提出,但是VAE不仅可以应用在图像中。在这篇文章中,我们将简单介绍什么是VAE,以及解释“为什么”变分自编码器是可以应用在数值类型的数据上,最后使用Numerai数据集展示“如何”训练它。

Numerai数据集数据集包含全球股市数十年的历史数据,在Numerai的锦标赛中,使用这个数据集来进行股票的投资收益预测和加密币NMR的收益预测。

一般来说 VAE 可以进行异常检测、去噪和生成合成数据。

异常检测

异常检测可以关于识别显着偏离大多数数据和不符合明确定义的正常行为概念的样本。 在 Numerai 数据集中这些异常可能是存在财务异常时期,检测到这些时期会为我们的预测提供额外的信息。

去噪

去噪是从信号中去除噪声的过程。 我们可以应用 VAE 对大多数偏离的特征进行降噪。 去噪转换噪声特征,一般情况下我们会将异常检测出的样本标记为噪声样本。

生成合成数据

使用 VAE,我们可以从正态分布中采样并将其传递给解码器以获得新的样本。

哪为什么选择变分自编码器呢?

自编码器由两个主要部分组成:

1)将输入映射为潜在空间的编码器

2)使用潜在空间重构输入的解码器

潜在空间在原论文中也被称为表示变量或潜在变量。那么为什么称为变分呢?将潜在表示的分布强制转换到一个已知的分布(如高斯分布),因为典型的自编码器不能控制潜在空间的分布而(VAE)提供了一种概率的方式来描述潜在空间中的观察。因此我们构建的编码器不是输出单个值来描述每个潜在空间的属性,而是用编码器来描述每个潜在属性的概率分布。在本文中我们使用了最原始的VAE,我们称之为vanilla VAE(以下称为原始VAE)

编码器由一个或多个全连接的层组成,其中最后一层输出正态分布的均值和方差。均值和方差值用于从相应的正态分布中采样,采样将作为输入到解码器。解码器由也是由一个或多个完全连接的层组成,并输出编码器输入的重建版本。下图展示了VAE的架构:

与普通自动编码器不同,VAE编码器模型将输出潜伏空间中每个维度的分布特征参数,而不是潜在空间的值。编码器将输出两个向量,反映潜在状态分布的均值和方差,因为我们假设先验具有正态分布。 然后,解码器模型将通过从这些定义的分布中采样来构建一个潜在向量,之后它将为解码器的输入重建原始输入。

普通 VAE 的损失函数中有两个项:1)重建误差和 2)KL 散度:

普通 VAE 中使用的重建误差是均方误差 (MSE)。 MSE 损失试图使重构的信号与输入信号相似性。 KL 散度损失试图使代码的分布接近正态分布。 q(z|x) 是给定输入信号的代码分布,p(z) 是正态分布。 PyTorch 代码如下所示:

recons_loss = F.mse_loss(recons, input)
kld_loss = torch.mean(-0.5 * torch.sum(1 + log_var - mu ** 2 - log_var.exp(), dim = 1), dim = 0)

原始VAE 配置如下所示:

model_params:
name: 'NumeraiHistogram of KL divergence (left) and mean-squared reconstruction lossVAE'
in_channels: 1191
latent_dim: 32
data_params:
data_path: "/train.parquet"
train_batch_size: 4096
val_batch_size: 4096
num_workers: 8
exp_params:
LR: 0.005
weight_decay: 0.0
scheduler_gamma: 0.95
kld_weight: 0.00025
manual_seed: 1265
trainer_params:
gpus: [1]
max_epochs: 300
logging_params:
save_dir: "logs/"
name: "NumeraiVAE"

配置中的关键参数有:

in_channels:输入特征的数量

latent_dim:VAE 的潜在维度。

编码器/解码器包括线性层,然后是批量归一化和leakyReLU 激活。

编码器的模型定义:

# Build Encoder
modules = []
modules.append(
nn.Sequential(
nn.Linear(in_channels, latent_dim),
nn.BatchNorm1d(latent_dim),
nn.LeakyReLU(),
))
self.encoder = nn.Sequential(*modules)
self.fc_mu = nn.Linear(latent_dim, latent_dim)
self.fc_var = nn.Linear(latent_dim, latent_dim)

解码器的模型定义:

# Build Decoder
modules = []
self.decoder_input = nn.Linear(latent_dim, latent_dim)
modules.append(
nn.Sequential(
nn.Linear(latent_dim, in_channels),
nn.BatchNorm1d(in_channels),
nn.LeakyReLU()
))
self.decoder = nn.Sequential(*modules)

python3 run.py --config configs/numerai_vae.yaml

如果没有报错应该打印以下日志:

GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
======= Training NumeraiVAE =======
Global seed set to 1265
initializing distributed: GLOBAL_RANK: 0, MEMBER: 1/1
----------------------------------------------------------------------------------------------------
distributed_backend=nccl
All distributed processes registered. Starting with 1 processes
----------------------------------------------------------------------------------------------------
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0,1]| Name | Type | Params
-------------------------------------
0 | model | NumeraiVAE | 83.1 K
-------------------------------------
83.1 K Trainable params
0 Non-trainable params
83.1 K Total params
0.332 Total estimated model params size (MB)
Global seed set to 1265
Epoch 19: 100%|██████████████████████████████████████████████████████████████████████████| 592/592 [00:20<00:00, 28.49it/s, loss=0.0818, v_num=3]

如何使用 VAE 进行异常检测?

异常是具有高损失值的样本。 损失值可以是重建损失、KL散度损失或它们的组合。

Numerai 训练数据集上的 KL 散度的直方图

这是MSE损失的直方图。

下图是Numerai 训练数据集的 KL 散度和均方误差的可视化。该图训练后的 VAE 的潜在维度为 2,因此我们可以将其可视化。

如何用 VAE 去噪?

首先将带有噪声的输入传递给编码器以获取潜在空间。 然后将潜在空间传递给解码器以获得去噪后输入(重建输入)。

如何使用 VAE 生成合成数据?

由于解码器的输入遵循已知分布(即高斯分布),我们可以从高斯分布中采样并将值传递给解码器就可以获得新的合成数据。

https://avoid.overfit.cn/post/144af920f43240be9ed07f0a8e0d6051

作者:Amir Erfan Eshratifar

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
特朗普没想到:哈梅内伊虽然死了,但临终前的一项安排会这么厉害

特朗普没想到:哈梅内伊虽然死了,但临终前的一项安排会这么厉害

健身狂人
2026-03-01 13:53:47
深追踪|哈梅内伊遇袭身亡,留下三个问题待解

深追踪|哈梅内伊遇袭身亡,留下三个问题待解

国际在线
2026-03-01 15:34:05
陆军总司令遇难,最高领袖已被炸?伊朗报复,第一支援兵出现

陆军总司令遇难,最高领袖已被炸?伊朗报复,第一支援兵出现

吴欣纯Deborah
2026-03-01 12:28:11
经中央军委批准,全军今起制发启用

经中央军委批准,全军今起制发启用

日照日报
2026-03-01 14:39:13
伊朗紧急致电沙特、阿联酋、卡塔尔、科威特、巴林、伊拉克

伊朗紧急致电沙特、阿联酋、卡塔尔、科威特、巴林、伊拉克

财联社
2026-02-28 21:40:35
特朗普:美国正在“大规模”打击伊朗 消息人士:伊朗遇难者身份将令人震惊

特朗普:美国正在“大规模”打击伊朗 消息人士:伊朗遇难者身份将令人震惊

环球网资讯
2026-02-28 16:16:05
中国男篮晋级形势:逆转11分取连胜稳住前三 7月再胜一场锁出线

中国男篮晋级形势:逆转11分取连胜稳住前三 7月再胜一场锁出线

颜小白的篮球梦
2026-03-01 17:52:03
回顾:浙江幼师幼儿园潜伏22年,警察曝光真实身份,家长后怕不已

回顾:浙江幼师幼儿园潜伏22年,警察曝光真实身份,家长后怕不已

谈史论天地
2026-03-01 09:49:38
哈梅内伊身亡,布达诺夫:俄罗斯会接受美国为乌克兰提供的安全保证 | 狼叔看世界

哈梅内伊身亡,布达诺夫:俄罗斯会接受美国为乌克兰提供的安全保证 | 狼叔看世界

狼叔看世界
2026-03-01 11:40:52
扛不住了,江苏某大型建设集团全员息岗!

扛不住了,江苏某大型建设集团全员息岗!

黯泉
2026-02-28 22:39:41
连续2场逆转,中国男篮两连胜,李弘权9+11成奇兵 高诗岩防守拉满

连续2场逆转,中国男篮两连胜,李弘权9+11成奇兵 高诗岩防守拉满

替补席看球
2026-03-01 17:55:20
特朗普突然发文昭告全球,包括中国俄罗斯在内,这次一个都跑不掉

特朗普突然发文昭告全球,包括中国俄罗斯在内,这次一个都跑不掉

带你领略快乐真谛
2026-02-28 16:55:50
哈梅内伊开会时遭袭身亡,细节披露!美媒:伊朗防长等约40名官员在袭击中死亡!伊方:总统等将领导国家

哈梅内伊开会时遭袭身亡,细节披露!美媒:伊朗防长等约40名官员在袭击中死亡!伊方:总统等将领导国家

每日经济新闻
2026-03-01 12:09:04
真的天塌!拔乳牙竟把孩子2颗恒牙拔掉,盐城一口腔医生整出事故

真的天塌!拔乳牙竟把孩子2颗恒牙拔掉,盐城一口腔医生整出事故

火山詩话
2026-03-01 18:08:52
随着日本78-72险胜韩国、中国男篮战中国台北队,世预赛最新积分榜:B组太乱了!

随着日本78-72险胜韩国、中国男篮战中国台北队,世预赛最新积分榜:B组太乱了!

kio鱼
2026-03-01 16:33:14
网友预测明天早上10点半 deepseek 发布V4 模型,首次没给英伟达权限,选择与华为合作

网友预测明天早上10点半 deepseek 发布V4 模型,首次没给英伟达权限,选择与华为合作

风向观察
2026-03-01 17:11:32
美以是如何快速“斩首”哈梅内伊的?但伊朗政权没那么容易颠覆

美以是如何快速“斩首”哈梅内伊的?但伊朗政权没那么容易颠覆

今日马说
2026-03-01 11:28:25
550万一张机票,携程在发战争财?

550万一张机票,携程在发战争财?

不正确
2026-03-01 14:53:30
外媒称哈梅内伊在其工作场所遇害,为何没躲避?为何能精准定位?

外媒称哈梅内伊在其工作场所遇害,为何没躲避?为何能精准定位?

之乎者也小鱼儿
2026-03-01 11:44:00
不到24小时,美以对伊完成二次打击,俄媒警告:川普在逼中国下场

不到24小时,美以对伊完成二次打击,俄媒警告:川普在逼中国下场

东极妙严
2026-02-28 17:56:12
2026-03-01 18:51:00
deephub incentive-icons
deephub
CV NLP和数据挖掘知识
1934文章数 1456关注度
往期回顾 全部

科技要闻

小米超跑概念车全球首秀!杀入顶豪俱乐部

头条要闻

普京就哈梅内伊遇害表示哀悼:一次无耻杀害

头条要闻

普京就哈梅内伊遇害表示哀悼:一次无耻杀害

体育要闻

火箭输给热火:乌度卡又输斯波教练

娱乐要闻

《江山为聘》:吴谨言陈哲远燃炸朝堂

财经要闻

中东局势升级 如何影响A股、黄金和原油

汽车要闻

理想汽车2月交付26421辆 历史累计交付超159万辆

态度原创

旅游
亲子
本地
公开课
军事航空

旅游要闻

文旅新探|伊春铁力:三月雪未央 林都嬉冬长

亲子要闻

泉州孕妇跨省求医,港大深圳医院成功救治“先心病”双胞胎

本地新闻

津南好·四时总相宜

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

美国以色列联合袭击伊朗 实时战况

无障碍浏览 进入关怀版