Projet sur le Denoising Auto-Encoder

Le but de ce projet est d'explorer des variations d'un des algorithmes les plus performants récemment proposés, appelé {\em Denoising Auto-Encoder}. Il s'agit d'un algorithme permettant de construire des {\em architectures profondes}, qui sont capables de représenter efficacement des fonctions complexes, là où les méthodes non-paramétriques à noyau sont fondamentalement limitées. L'algorithme est utilisé pour pré-initialiser les couches internes d'un réseau de neurones profond, pour des tâches de classification ou de régression. Voir l'article de la conférence ICML ci-bas pour les détails de l'algorithme. L'idée de base est d'apprendre une transformation (de la forme $h=(x)\tanh(b + W x)$, comme une couche de réseau de neurone) de l'entrée $x$ de la couche, en sorte de pouvoir reconstruire $x$ (approximativement) à partir de $h(C(x))$, où $C(x)$ est une forme aléatoirement corrompue de $x$. Dans l'article d'ICML la seule forme de corruption essayée est très simple: $C_i(x)=x_i ou 0$, pour $i=1\ldots n$. Certaines entrées sont mises à 0 et d'autres sont copiées telles quelles. La fraction des entrées corrompues est un hyper-paramètre $\mu$ (typiquement $\mu=0.25$). Le but du projet est de comparer les résultats obtenus avec différents choix de processus de corruption $C$.

La comparaison devrait se faire en terme de l'erreur de prédiction (en test) du réseau de neurones supervisé obtenu à la fin de l'apprentissage.

Voici les différents $C$ à comparer:

Références

Article d'ICML