AI ninja project [day 22] 变分自动编码器 Variational Autoencoder

如果讲了自动编码器(AE),
却不介绍变分自动编码器(VAE),
感觉有点太可惜了。
听到生成演算法可能都会想到生成对抗网路GAN,
但是却比较少人知道VAE也可以用来生成物件。

如果想看看VAE背後的原理的话,
可以自行调查看看,
跟自动编码器的差异是,
在编码层时将每一个特徵向量取平均值及标准差,以常态分布生成压缩资讯。

参考页面:
https://www.tensorflow.org/probability/examples/Probabilistic_Layers_VAE?hl=zh_tw

colab:
https://colab.research.google.com/github/tensorflow/probability/blob/main/tensorflow_probability/examples/jupyter_notebooks/Probabilistic_Layers_VAE.ipynb?hl=zh_tw#scrollTo=_jMPwz8r9pYX

首先是引入套件,比较特别的是引入tensorflow_probability这个套件,
可以帮我们生成常态分布计算层:
https://ithelp.ithome.com.tw/upload/images/20210922/201226780qK55EvpFX.png

载入手写数字资料集,
划分训练集及测试集:
https://ithelp.ithome.com.tw/upload/images/20210922/201226780SG0jfXAa4.png

利用输入图片及压缩资讯的特徵数目来搭建模型的编码器,
跟AE重点上的不同在於编码器的最後一层:
https://ithelp.ithome.com.tw/upload/images/20210922/2012267843K8YimoW8.png

模型解码器的部分:
https://ithelp.ithome.com.tw/upload/images/20210922/20122678vGpNOh7KxI.png

设计损失函数,以及以adam当作优化器进行训练:
https://ithelp.ithome.com.tw/upload/images/20210922/20122678qAcSnls7y7.png

将十张测试集资料放入模型,并作图查看:
https://ithelp.ithome.com.tw/upload/images/20210922/20122678821YD2C4Xh.png

https://ithelp.ithome.com.tw/upload/images/20210922/201226780Dt3Mtq8Ql.png

随机生成十张手写图片:
https://ithelp.ithome.com.tw/upload/images/20210922/20122678LP7SwmM0UA.png

https://ithelp.ithome.com.tw/upload/images/20210922/20122678ydcADkfFHD.png

如果想看不同生成模式的差异(mean、mode、random),
可以参考这篇文章:
https://towardsdatascience.com/6-different-ways-of-implementing-vae-with-tensorflow-2-and-tensorflow-probability-9fe34a8ab981

延伸阅读

使用magenta的Multitrack MusicVAE来创作音乐:
https://colab.research.google.com/github/magenta/magenta-demos/blob/master/colab-notebooks/Multitrack_MusicVAE.ipynb


<<:  Day 10 : Postgres 操作

>>:  Day20-pytorch(3)设置model、使用pytorch设置loss function及updata参数

DAY 18 Big Data 5Vs – Variety(速度) EMR (1)

Amazon Elastic MapReduce(EMR)是可以在EC2 instance 或 Am...

[DAY7]从0开始装k8s(2)-k0s

k0s k0s是Mirantis推出的轻量化Kubernetes发行版,Mirantis有一个k8s...

WEB API

DOM Document Object Model 文档物件模型 DOM的简历 职业类别:接口 职称...

[前端暴龙机,Vue2.x 进化 Vue3 ] Day23.正式进化-Vue3 起手式

ゴキゲンな蝶になって きらめく风に乗って 今すぐキミに会いに行こう 余计な事なんて忘れた方がマシさ...

[Day 15]RDBMS / NoSQL

资料库管理系统(database management system,简称 DBMS),是一套作为应...