Skip to content

Commit

Permalink
277
Browse files Browse the repository at this point in the history
  • Loading branch information
matthewvowels1 committed Oct 7, 2019
1 parent 9c874bc commit 84e8d27
Show file tree
Hide file tree
Showing 6 changed files with 172 additions and 8 deletions.
Binary file added .DS_Store
Binary file not shown.
6 changes: 6 additions & 0 deletions .ipynb_checkpoints/delete-checkpoint.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"cells": [],
"metadata": {},
"nbformat": 4,
"nbformat_minor": 2
}
131 changes: 131 additions & 0 deletions .ipynb_checkpoints/ii_loss-checkpoint.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# create synthetic batch of z and ASSUME that there are 10 examples per class in a batch of 50\n",
"classes=5\n",
"examples_per_class = 10\n",
"batch_size = classes*examples_per_class\n",
"z_dim = 5\n",
"\n",
"# here rows are embeddings, columns are dimensions of the embedding\n",
"z_batch = np.random.randn(batch_size,z_dim)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# this is mu_j in the paper:\n",
"class_means = np.zeros((z_dim,classes)) \n",
"\n",
"for i in range(0,batch_size, examples_per_class):\n",
" \n",
" class_means[(int(i/examples_per_class))] = z_batch[i:i+examples_per_class].mean()\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"# I expect you can combine this loop that calculates intra_spread with the one for mu_j above easily enough, \n",
"# to save computation\n",
"\n",
"cum_diff_sq = 0\n",
"\n",
"for i in range(class_means.shape[0]):\n",
" \n",
" z = z_batch[i*examples_per_class:i*examples_per_class+examples_per_class] # extract per class data\n",
" mu = class_means[i] # extract class[i] mean\n",
" mu_diff = mu-z # calculate difference between the data and its corresponding class mean\n",
" # next calculate the per row squared L2 norm (i.e. dot product)\n",
" mu_diff_norm = np.asarray([np.dot(mu_diff[i].T, mu_diff[i]) for i in range(mu_diff.shape[0])])\n",
" cum_diff_sq += mu_diff_norm.sum() # sum these squared norms over examples AND over classes\n",
"\n",
"intra_spread = cum_diff_sq/batch_size # divide by total number of datapoints in batch\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"# for inter-spread you essentially need to find the min of all pairwise distances\n",
"# you might want to look into efficient ways to compute this (there might be a keras function already, mind)\n",
"# if you only have a few classes then maybe not a big deal.\n",
"\n",
"inter_separation = np.min([np.dot((class_means[i] - class_means[j]).T,(class_means[i] - class_means[j])) for i in range(class_means.shape[0]) for j in range(class_means.shape[0]) if i > j])\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"ii_loss = intra_spread - inter_separation"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
43 changes: 35 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,29 @@
# Awesome-VAEs
Awesome work on the VAE, disentanglement, representation learning, and generative models.

I gathered these resources (currently @ 263 papers) as literature for my PhD, and thought it may come in useful for others. This list includes works relevant to various topics relating to VAEs. Sometimes this spills over to topics e.g. adversarial training and GANs, general disentanglement, variational inference, flow-based models and auto-regressive models. Always keen to expand the list. I have also included an excel file which includes notes on each paper, as well as a breakdown of the topics covered in each paper.
I gathered these resources (currently @ 277 papers) as literature for my PhD, and thought it may come in useful for others. This list includes works relevant to various topics relating to VAEs. Sometimes this spills over to topics e.g. adversarial training and GANs, general disentanglement, variational inference, flow-based models and auto-regressive models. Always keen to expand the list. I have also included an excel file which includes notes on each paper, as well as a breakdown of the topics covered in each paper.

They are ordered by year (new to old). I provide a link to the paper as well as to the github repo where available.

## 2019

Hamiltonian generative networks. Toth, Rezende, Jaegle, Racaniere, Botev, Higgins https://128.84.21.199/pdf/1909.13789.pdf

LAVAE: Disentangling location and appearance. Dittadi, Winther https://arxiv.org/pdf/1909.11813.pdf

Interpretable models in probabilistic machine learning. Kim https://ora.ox.ac.uk/objects/uuid:b238ed7d-7155-4860-960e-6227c7d688fb/download_file?file_format=pdf&safe_filename=PhD_Thesis_of_University_of_Oxford.pdf&type_of_work=Thesis


Disentangling speech and non-speech components for building robust acoustic models from found data. Gurunath, Rallabandi, Black https://arxiv.org/pdf/1909.11727.pdf

Joint separation, dereverberation and classification of multiple sources using multichannel variational autoencoder with auxiliary classifier. Inoue, Kameoka, Li, Makino http://pub.dega-akustik.de/ICA2019/data/articles/000906.pdf

SuperVAE: Superpixelwise variational autoencoder for salient object detection. Li, Sun, Guo https://www.aaai.org/ojs/index.php/AAAI/article/view/4876

Implicit discriminator in variational autoencoder. Munjal, Paul, Krishnan https://arxiv.org/pdf/1909.13062.pdf

TransGaGa: Geometry-aware unsupervised image-to-image translation. Wu, Cao, Li, Qian, Loy http://openaccess.thecvf.com/content_CVPR_2019/papers/Wu_TransGaGa_Geometry-Aware_Unsupervised_Image-To-Image_Translation_CVPR_2019_paper.pdf

Variational attention using articulatory priors for generating code mixed speech using monolingual corpora. Rallabandi, Black. https://www.isca-speech.org/archive/Interspeech_2019/pdfs/1103.pdf

One-class collaborative filtering with the queryable variational autoencoder. Wu, Bouadjenek, Sanner. https://people.eng.unimelb.edu.au/mbouadjenek/papers/SIGIR_Short_2019.pdf
Expand All @@ -16,21 +33,21 @@ Predictive auxiliary variational autoencoder for representation learning of glob
Data augmentation using variational autoencoder for embedding based speaker verification. Wu, Wang, Qian, Yu https://zhanghaowu.me/assets/VAE_Data_Augmentation_proceeding.pdf

One-shot voice conversion with disentangled representations by leveraging phonetic posteriograms. Mohammadi, Kim. https://www.isca-speech.org/archive/Interspeech_2019/pdfs/1798.pdf


EEG-based adaptive driver-vehicle interface using variational autoencoder and PI-TSVM. Bi, Zhang, Lian https://www.researchgate.net/profile/Luzheng_Bi2/publication/335619300_EEG-Based_Adaptive_Driver-Vehicle_Interface_Using_Variational_Autoencoder_and_PI-TSVM/links/5d70bb234585151ee49e5a30/EEG-Based-Adaptive-Driver-Vehicle-Interface-Using-Variational-Autoencoder-and-PI-TSVM.pdf


Neural gaussian copula for variational autoencoder Wang, Wang https://arxiv.org/pdf/1909.03569.pdf


Enhancing VAEs for collaborative filtering: Flexible priors and gating mechanisms. Kim, Suh http://delivery.acm.org/10.1145/3350000/3347015/p403-kim.pdf?ip=86.162.136.199&id=3347015&acc=OPEN&key=4D4702B0C3E38B35%2E4D4702B0C3E38B35%2E4D4702B0C3E38B35%2E6D218144511F3437&__acm__=1568726810_89cfa7cbc7c1b0663405d4446f9fce85


Riemannian normalizing flow on variational wasserstein autoencoder for text modeling. Wang, Wang https://arxiv.org/pdf/1904.02399.pdf

Disentanglement with hyperspherical latent spaces using diffusion variational autoencoders. Rey https://openreview.net/pdf?id=SylFDSU6Sr

Learning deep representations by mutual information estimation and maximization. Hjelm, Fedorov, Lavoie-Marchildon, Grewal, Bachman, Trischler, Bengio https://arxiv.org/pdf/1808.06670.pdf https://github.com/rdevon/DIM


Novel tracking approach based on fully-unsupervised disentanglement of the geometrical factors of variation. Vladymyrov, Ariga https://arxiv.org/pdf/1909.04427.pdf


Real time trajectory prediction using conditional generative models. Gomez-Gonzalez, Prokudin, Scholkopf, Peters https://arxiv.org/pdf/1909.03895.pdf

Disentanglement challenge: from regularization to reconstruction. Qiao, Li, Cai https://openreview.net/pdf?id=ByecPrUaHH
Expand Down Expand Up @@ -203,6 +220,12 @@ Causal discovery with attention-based convolutional neural networks. Naura, Buc

## 2018

Bias and generalization in deep generative models: an empirical study. Zhao, Ren, Yuan, Song, Goodman, Ermon https://arxiv.org/pdf/1811.03259.pdf https://ermongroup.github.io/blog/bias-and-generalization-dgm/ https://github.com/ermongroup/BiasAndGeneralization/tree/master/Evaluate

On variational lower bounds of mutual information. Poole, Ozair, van den Oord, Alemi, Tucker http://bayesiandeeplearning.org/2018/papers/136.pdf

GAN - why it is so hard to train generative adversarial networks . Hui https://medium.com/@jonathan_hui/gan-why-it-is-so-hard-to-train-generative-advisory-networks-819a86b3750b

Counterfactuals uncover the modular structure of deep generative models. Besserve, Sun, Scholkopf. https://arxiv.org/pdf/1812.03253.pdf

Learning independent causal mechanisms. Parascandolo, Kilbertus, Rojas-Carulla, Scholkopf https://arxiv.org/pdf/1712.00961.pdf
Expand Down Expand Up @@ -351,7 +374,7 @@ Mutual information neural estimation. Belghazi, Baratin, Rajeswar, Ozair, Bengio

Explorations in homeomorphic variational auto-encoding. Falorsi, de Haan, Davidson, Cao, Weiler, Forre, Cohen. https://arxiv.org/pdf/1807.04689.pdf https://github.com/pimdh/lie-vae

On variational lower bounds of mutual information. Poole, Ozair, van den Oord, Alemi, Tucker http://bayesiandeeplearning.org/2018/papers/136.pdf
Hierarchical variational memory network for dialogue generation. Chen, Ren, Tang, Zhao, Yin http://delivery.acm.org/10.1145/3190000/3186077/p1653-chen.pdf?ip=86.162.136.199&id=3186077&acc=OPEN&key=4D4702B0C3E38B35%2E4D4702B0C3E38B35%2E4D4702B0C3E38B35%2E6D218144511F3437&__acm__=1569938843_c07ad21d173fc64a44a22fd6521140cb

## 2017

Expand Down Expand Up @@ -442,9 +465,13 @@ VEEGAN: Reducing mode collapse in GANs using implicit variational learning. Sriv

Discovering discrete latent topics with neural variational inference. Miao, Grefenstette, Blunsom https://arxiv.org/pdf/1706.00359.pdf

Variational approaches for auto-encoding generative adversarial networks. Rosca, Lakshminarayana, Warde-Farley, Mohamed https://arxiv.org/pdf/1706.04987.pdf


## 2016

Deep feature consistent variational autoencoder. Hou, Shen, Sun, Qiu https://arxiv.org/pdf/1610.00291.pdf https://github.com/sbavon/Deep-Feature-Consistent-Variational-AutoEncoder-in-Tensorflow

Neural variational inference for text processing. Miao, Yu, Grefenstette, Blunsom. https://arxiv.org/pdf/1511.06038.pdf

Domain-adversarial training of neural networks. Ganin, Ustinova, Ajakan, Germain, Larochelle, Laviolette, Marchand, Lempitsky https://arxiv.org/pdf/1505.07818.pdf
Expand Down
Binary file modified VAE_literature.xlsx
Binary file not shown.
Binary file added ~$VAE_literature.xlsx
Binary file not shown.

0 comments on commit 84e8d27

Please sign in to comment.