自编码器/autoencoder

基本原理

请看入门级的AE和VAE源代码:pytorch实现mnist生成,loss=重构+KL
另一份关于VAE进行图像生成+图像定位/分割的源代码:[tensorflow, MNIST, 有对各个步骤的详细介绍]—ORSPaired-Comparisons_19-20/VAE_localization.ipynb

1、为了使模型具有生成能力,VAE 要求每个 p(Z|X) 都向正态分布看齐。
2、在 VAE 中,它的 Encoder 有两个,一个用来计算均值,一个用来计算方差
3、它(计算均值的encoder)本质上就是在我们常规的自编码器的基础上,对 encoder 的结果(在VAE中对应着计算均值的网络)加上了“高斯噪声”,使得结果 decoder 能够对噪声有鲁棒性;而那个额外的 KL loss(目的是让均值为 0,方差为 1),事实上就是相当于对 encoder 的一个正则项,希望 encoder 出来的东西均有零均值。
那另外一个 encoder(对应着计算方差的网络)的作用呢?它是用来动态调节噪声的强度的。
4、如何设计条件VAE

在这里插入图片描述

如何理解K-L散度(相对熵)

VAE的公式推理中应用了KL散度。KL散度变化过程中有点看不懂:
在这里插入图片描述

如文章《如何理解K-L散度(相对熵)》所述,事实上是因为KL散度有两种表达形式:
在这里插入图片描述

应用

医学图像无监督异常检测(分割)

异常检测(anomaly/ outlier detection)领域还有那些值得研究的问题?

尽管supervised deep learning取得了不错的成绩。医学图像数据有三个特征,使得肿瘤检测(tumor detection)非常适用于无监督异常检测(UAD):
1、医学数据的稀有性。这里指的是有精确标注的医学数据的稀有性——获取像素点级别的精确标注是昂贵的,因为这要求专业的放射科医生去勾画,这与普通自然图像随便雇个人就能打标注不同。
2、医学数据的不平衡性。这包括两个层次,一是image level,正常的、不包含肿瘤的医学图像数量往往多于不正常的;二是pixel level,一张已知包含肺结节的肺部CT(256256)可能只有非常小的区域是肺结节(55)。
3、肿瘤表征的多样性。医学病灶往往是多样的,肿瘤往往大小不一、形状不一、位置不一、纹理特征不一,从统计学的角度说,这些肿瘤的数据分布是不一致的。按照有监督学习的思路,则要求足够大的数据集去涵盖所有这些多样性,使模型可以学习到有效的特征表示(这也是为什么ImageNet在自然图像领域可以成功的原因之一)。但很可惜,在医学图像领域,受限于数据的稀缺性。
所幸,与病灶的多样性相对应的,是normality的有限性(constrained)。这里的有限性指,正常的医学图像,往往是有着相似的解剖结构与纹理特征的,如正常的大脑都具有一定的结构和纹理上的对称性。从统计学的角度,我们可以假设正常医学图像是服从一个constrained distribution,而anomalies,尽管他们各有各的分布,但都他们不能被fit到这个正常图像的分布中——这就是anomaly detection的假设!再所幸,这意味着我们可以利用 海量的、正常的、不需要标注的医学图像数据,来训练一个模型,去学习正常数据的分布,并用这个学习到的分布,去检测出无法被拟合进这个分布anomlies, i.e., tumor——这就是unsupervised anomaly detection的假设!

相关论文:

源码库

请看入门级的AE和VAE源代码:pytorch实现mnist生成,loss=重构+KL
PyTorch-VAE
generative-models
the official PyTorch package for the discrete VAE used for DALL·E.
A CNN Variational Autoencoder (CNN-VAE) implemented in PyTorch

VAE时序数据处理
  • VAE-for-Anomaly-Detection
    简介:MLP_VAE, Anomaly Detection, LSTM_VAE, Multivariate Time-Series Anomaly Detection,IndRNN_VAE, High_Frequency sensor Anomaly Detection,Tensorflow

  • Unsupervised-Online-Deep-Learning-Framework-for-Anomaly-Detection-in-Time-Series
    简介:两中时序数据异常检测方法
    (1)online方法
    In the online settings, the time series data are divided into fixed-sized segments, and each segment is seen as an exmple:
    (1.1)Multilayer Perceptron(MLP): predict the next elements based on the previous segment
    (1.2)1 D Convolutional Auto-encoder: reconstruct the given segment as input
    (1.3)Variational 1D Convolutional Auto-encoder: reconstruct the given segment as input
    (2)seq2seq方法
    In the seq2seq settings, following sequence to sequence models are employed to do the so-called iterative inference, that is to say, predict only one step ahead in an iteration, and with the predicted point added to the input, move to the next iteration:
    (2.1)Wavenet
    (2.2)LSTM

  • VAE_Clustering

  • 一个提供web服务的基于VAE的时序处理代码:glance
    简介:实现了1DVAE,2DVAE,聚类等

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值