自编码器/autoencoder

基本原理

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

  • 半小时理解变分自编码器(1、对变分自编码器为什么在隐空间要进行概率分布约束(正则化)进行了详细直观的阐述:保证隐空间的连续性和完整性,就能使生成空间具有连续性和可解释性。2、对VAE的损失函数设计进行了全面阐述:重构误差+隐空间的正则化项,并对正则化项进行了分解阐述)

  • 一文理解变分自编码器(VAE)(第一二节对自编码器、变分自编码器的原理的差异介绍非常直观,尤其是概率分布图和数据点之间的差别)

  • 变分自编码器介绍、推导及实现(有一张VAE的神经网络架构图,很直观)
    自编码器/autoencoder_第1张图片

  • 变分自编码器VAE:原来是这么一回事 | 附开源代码

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

自编码器/autoencoder_第2张图片

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

VAE的公式推理中应用了KL散度。KL散度变化过程中有点看不懂:
自编码器/autoencoder_第3张图片

如文章《如何理解K-L散度(相对熵)》所述,事实上是因为KL散度有两种表达形式:
自编码器/autoencoder_第4张图片

应用

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

异常检测(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的假设!

相关论文:

  • MICCAI 2019: D. Zimmerer, F. Isensee, J. Petersen, S. Kohl, K. Maier-Hein, “Unsupervised Anomaly Localization Using Variational Auto-Encoders,” In MICCAI, 2019, Lecture Notes in Computer Science, vol. 11767.
    源码: https://github.com/MIC-DKFZ/vae-anomaly-experiments

  • 2018-Deep Autoencoding Models for Unsupervised Anomaly Segmentation in Brain MR Images
    源码:https://github.com/creatorcen/Unsupervised_Anomaly_Detection_Brain_MRI

  • MIDL 2018: X. Chen, and E. Konukoglu, “Unsupervised Detection of Lesions in Brain MRI using constrained adversarial auto-encoders,” In MIDL Conference book, 2018.

  • 综述:X. Chen, N. Pawlowski, M. Rajchl, B. Glocker, E. Konukoglu, “Deep generative models in the real-world: an open challenge from medical imaging,” arXiv preprint arXiv:1806.05452

  • VAE异常检测论文复现——Anomaly Detection for Skin Disease Images Using Variational Autoencoder

  • UAD 在医学图像中的代表作是AnoGAN:T. Schlegl, P. Seeböck, S. M. Waldstein, U. Schmidt-Erfurth, and G. Langs, “Unsupervised anomaly detection with generative adversarial networks to guide marker discovery,” In International Conference on Information Processing in Medical Imaging, 2017, pp. 146-157.

  • 论文:Improving Unsupervised Defect Segmentation by Applying Structural Similarity to Autoencoders
    源码:AutoEncoder with SSIM loss(TensorFlow,有test.py)
    其中,采用SSIM来度量重构图像与原始图像的相似性,而不是普通的逐像素之间的均方差。SSIM能顾及当前像素与周边局部的关系,并且更适合人眼的感官
    参考:图像质量评估指标(2)结构相似度SSIM
    图像质量评估指标(3) 特征相似度FSIM
    FSIM: A Feature Similarity Index for Image Quality Assessment

  • 论文:Sub-Image Anomaly Detection with Deep Pyramid Correspondences
    源码: Sub-Image Anomaly Detection with Deep Pyramid Correspondences (SPADE) in PyTorch(main.py可运行test)

  • 论文:Anomaly localization by modeling perceptual features
    源码:FAVAE-anomaly-detection-localization-master(pytorch,有test.py)

源码库

请看入门级的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,聚类等

你可能感兴趣的:(机器学习,自编码器,VAE,autoencoder)