在线变分自编码器

数据挖掘 机器学习 无监督学习
2022-02-19 07:03:16

在训练 VAE 时,通常使用重新参数化技巧从潜在分布中抽取一个样本,该技巧在 VAE 的解码器/生成器一半中使用相当大的 minibatch 大小(>100)。我假设这个小批量大小允许网络“平滑”错误并允许我们避免从潜在空间中重复采样。

但是,我对在线场景感兴趣,您在流数据到达时对 VAE 进行训练,因此批量大小为 1。在这种情况下,VAE 可能需要很长时间才能收敛,因为错误非常不稳​​定.

有什么办法可以在实践中避免这个问题?我不确定如果我必须从潜在分布中反复采样然后取这些样本(或其他东西)的平均值——除了明显的性能问题之外会发生什么。另一种选择是等待足够的样本到达,以便我可以批量训练它们,但即使在这种情况下,我也无法等待 100 多个样本到达。

1个回答

数据片段一个接一个到达的事实并没有定义小批量大小。您可以拥有一个大小为 N 的缓冲区(使用 FIFO 或任何其他适合所需统计属性的驱逐策略),并在每次您想要更新自动编码器时对大小为 M 的小批量进行采样。

根据缓冲区驱逐策略和采样策略,这也可能有助于避免局部自相关。

注意:这个答案最初是对 OP 问题的评论。