Description
Ce dépôt GitHub, `karpathy/pytorch-made`, propose une implémentation concise de MADE (Masked Autoencoder Density Estimation) utilisant PyTorch. Le concept central de MADE est de transformer un auto-encodeur standard en un modèle de densité autorégressif. Ceci est réalisé en masquant stratégiquement les connexions au sein d'un Perceptron Multi-Couches (MLP) et en ordonnant les dimensions d'entrée. De manière cruciale, le modèle garantit que chaque dimension de sortie ne dépend que des dimensions d'entrée qui apparaissent plus tôt dans l'ordre défini.
Lire la suite
Similaire à d'autres modèles autorégressifs comme char-rnn et pixel cnns, MADE facilite une évaluation très efficace des vraisemblances, ne nécessitant qu'une seule passe avant dans le réseau. Cependant, le processus d'échantillonnage de nouveaux points de données est linéaire par rapport au nombre de dimensions. L'implémentation du papier original, bien que fonctionnelle, était notée pour sa verbosité et sa dépendance à Theano. Cette version PyTorch vise la simplicité et la clarté, avec la logique principale contenue dans environ 150 lignes de code.
Le dépôt comprend des exemples démontrant comment utiliser le modèle MADE, en particulier avec le jeu de données MNIST binarisé. Les utilisateurs peuvent reproduire les résultats du papier original, tels que l'entraînement d'un MLP à 1 couche pour obtenir une perte d'entropie croisée binaire de 94,5. Les exemples illustrent également comment entraîner des ensembles de modèles plus importants, en tirant parti du partage de poids au sein d'un seul MLP et en moyennant les prédictions au moment du test pour améliorer les performances, atteignant une perte de test de 79,3 avec 10 ordonnancements.
La classe principale, `MADE`, est implémentée dans `made.py` et hérite de `nn.Module` de PyTorch, ce qui la rend facile à intégrer dans des architectures de réseaux neuronaux plus larges. Le processus d'instanciation implique la spécification des dimensions d'entrée et de sortie, des tailles de couches cachées et du nombre de masques à utiliser. Le paramètre de dimension de sortie est flexible, permettant diverses distributions de sortie telles que des prédictions gaussiennes ou softmax segmentées. Le cas le plus simple, comme démontré avec des prédictions binaires pour MNIST, utilise un seul paramètre de sortie par dimension d'entrée.
- CatégorieModèles d'IA et LLM
- Modèle tarifaireOpen source
- DéploiementCloud, Auto-hébergé
- PlateformesWeb
Fonctionnalités principales de PyTorch MADE
Implémentation de Masked Autoencoder Density Estimation (MADE)
Construit avec PyTorch pour une intégration facile
Permet la modélisation de densité autorégressive
Évaluation efficace des vraisemblances via une seule passe avant
Complexité d'échantillonnage linéaire par rapport aux dimensions
Comprend des exemples pour le jeu de données MNIST binarisé
Prend en charge l'entraînement d'ensembles de modèles
Couche de sortie flexible pour diverses distributions
Code concis (~150 lignes pour la logique principale)
Masquage des connexions MLP pour l'autorégression
Ordonnancement des dimensions d'entrée pour les dépendances conditionnelles
Premiers pas avec PyTorch MADE
Accéder au modèle : Cloner le dépôt GitHub.
Configurer l'environnement : Installer PyTorch et les autres dépendances.
Intégrer via API : Instancier la classe `MADE` depuis `made.py`.
Configurer le modèle : Spécifier les dimensions d'entrée/sortie, les couches cachées et le nombre de masques.
Entraîner le modèle : Utiliser le script `run.py` avec le jeu de données et les paramètres spécifiés.
Évaluer la vraisemblance : Effectuer une seule passe avant.
Échantillonner les données : Exécuter le processus d'échantillonnage linéairement avec les dimensions.
Cas d'utilisation de PyTorch MADE
- Estimation de Densité
- Modélisation Autorégressive
- Génération d'Images
- Modélisation Probabiliste
- Recherche en Apprentissage Automatique
- Compression de Données








