Journal
Ce journal contient 14 entrées.
The Unreasonable Effectiveness of Recurrent Neural Networks
Expérimentations avec des réseaux de neurones récurrents.
Voir aussi (excellent blog): http://colah.github.io/posts/2015-08-Understanding-LSTMs

Voir aussi (excellent blog): http://colah.github.io/posts/2015-08-Understanding-LSTMs
Colorful Image Colorization
Cette technique de recolorisation d'image donne des résultats impressionnants

The Infinite Drum Machine
Une expérience de classification automatique sur des fichiers audio représentant des sons du quotidien. L'algorithme ne reçoit aucune information à priori (non supervisé) hormis les fichiers audio. La technique utilisée dans cette expérience est t-SNE (t-Distributed Stochastic Neighbor Embedding), permettant de réduire un espace à n dimensions vers un espace plus petit (ici 3 dimensions: X, Y, et couleur).
Description de t-SNE: http://jmlr.org/papers/volume9/vandermaaten08a/vandermaaten08a.pdf

Description de t-SNE: http://jmlr.org/papers/volume9/vandermaaten08a/vandermaaten08a.pdf
Une introduction aux arbres de décision
Résumé :
Les arbres de décision sont l’une des structures de données majeures de l’apprentissage statistique. Leur fonctionnement repose sur des heuristiques qui, tout en satisfaisant l’intuition, donnent des résultats remarquables en pratique (notamment lorsqu’ils sont utilisés en « forêts aléatoires »). Leur structure arborescente les rend également lisibles par un être humain, contrairement à d’autres approches où le prédicteur construit est une « boîte noire ».
L’introduction que nous proposons ici décrit les bases de leur fonctionnement tout en apportant quelques justifications théoriques. Nous aborderons aussi (brièvement) l’extension aux Random Forests. On supposera le lecteur familier avec le contexte général de l’apprentissage supervisé.1

Les arbres de décision sont l’une des structures de données majeures de l’apprentissage statistique. Leur fonctionnement repose sur des heuristiques qui, tout en satisfaisant l’intuition, donnent des résultats remarquables en pratique (notamment lorsqu’ils sont utilisés en « forêts aléatoires »). Leur structure arborescente les rend également lisibles par un être humain, contrairement à d’autres approches où le prédicteur construit est une « boîte noire ».
L’introduction que nous proposons ici décrit les bases de leur fonctionnement tout en apportant quelques justifications théoriques. Nous aborderons aussi (brièvement) l’extension aux Random Forests. On supposera le lecteur familier avec le contexte général de l’apprentissage supervisé.1
DeepMind AlphaGo vs Lee Sedol: AlphaGo 4 – Lee Sedol 1
J'étais complètement passé à côté de ça. Beaucoup de spécialistes pensaient qu'une machine capable de battre les humains au Go était impossible, car le nombre de possibilités à explorer est plus grand que pour les échecs.
C'est une (petite) victoire pour moi, car j'avais anticipé cette possibilité dès que je m'étais intéressé aux techniques utilisées pour les jeux d'échecs. Concrètement, le Go n'est pas différent des échecs : il se résout par une exploration systématique. Bien entendu, le nombre de possibilité est très grand, mais il aura suffit de limiter l'exploration systématique aux solutions les plus prometteuses, grâce à des techniques d'apprentissage artificiel.
Les algorithmes mis en œuvre dans AlphaGo sont très anciens (plus de 20 ans) et il apparaît que le seul élément qui manquait jusqu'à lors était un investissement massif de temps et d'argent (ici Google) pour entraîner ces algorithmes avec des dizaines de milliers de parties. Ce n'est donc qu'un hasard du calendrier si c'est aujourd'hui qu'une IA remporte une victoire (écrasante il faut bien le dire) au jeu de Go.
De la même façon, il est possible d'affirmer, sans trop de risques, que TOUS les jeux à exploration systématique peuvent être attaqués avec le même type d'algorithmes.
Bref : Computer science, ruining everything since 1960 :)

C'est une (petite) victoire pour moi, car j'avais anticipé cette possibilité dès que je m'étais intéressé aux techniques utilisées pour les jeux d'échecs. Concrètement, le Go n'est pas différent des échecs : il se résout par une exploration systématique. Bien entendu, le nombre de possibilité est très grand, mais il aura suffit de limiter l'exploration systématique aux solutions les plus prometteuses, grâce à des techniques d'apprentissage artificiel.
Les algorithmes mis en œuvre dans AlphaGo sont très anciens (plus de 20 ans) et il apparaît que le seul élément qui manquait jusqu'à lors était un investissement massif de temps et d'argent (ici Google) pour entraîner ces algorithmes avec des dizaines de milliers de parties. Ce n'est donc qu'un hasard du calendrier si c'est aujourd'hui qu'une IA remporte une victoire (écrasante il faut bien le dire) au jeu de Go.
De la même façon, il est possible d'affirmer, sans trop de risques, que TOUS les jeux à exploration systématique peuvent être attaqués avec le même type d'algorithmes.
Bref : Computer science, ruining everything since 1960 :)
A Neural Algorithm of Artistic Style
Allez, ce soir c'est graphisme. Une méthode de machine learning (encore des réseaux neuronaux) permettant d'extraire le style d'une peinture et le reproduire sur des images quelconques.
L'article original : http://arxiv.org/abs/1508.06576

L'article original : http://arxiv.org/abs/1508.06576
Research Blog: Inceptionism: Going Deeper into Neural Networks
Que ce passe t'il lorsque l'on visualise ce qu'un réseau neuronal "apprend" ? Des images psychédéliques à souhait.

AlchemyVision Demo | AlchemyAPI
Ce système de reconnaissance d'images/extraction de tags est impressionnant.

A Neural Network in 11 lines of Python (Part 1) - i am trask
Introduction aux réseaux neuronaux, à partir de 11 lignes en Python.

Choosing the right estimator
Le plus difficile dans un problème d'apprentissage artificiel, c'est de trouver l'algorithme le plus adapté aux données que l'on possède.
Ce diagramme permet de s'y retrouver un peu, tout particulièrement si l'on utilise scikit-learn.

Ce diagramme permet de s'y retrouver un peu, tout particulièrement si l'on utilise scikit-learn.
A curated list of awesome Machine Learning frameworks, libraries and software
Une liste de librairies d'apprentissage artificiel, de traitement du langage naturel et de data mining. Pour divers langages : C/C++, Java, Python, etc.
Basics of Machine Learning
Des vidéos traitant des algorithmes et techniques d'apprentissage artificiel (machine learning) pour ajouter aussi ce lien, qui contient trentaine de vidéos sur le sujet :
"Naive Bayes, decision trees, zero-frequency, missing data, ID3 algorithm, information gain, overfitting, confidence intervals, nearest-neighbour method, Parzen windows, K-D trees, K-means, scree plot, gaussian mixtures, EM algorithm, dimensionality reduction, principal components, eigen-faces, agglomerative clustering, single-link vs. complete link, lance-williams algorithm"
Une autre liste ici : http://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/

"Naive Bayes, decision trees, zero-frequency, missing data, ID3 algorithm, information gain, overfitting, confidence intervals, nearest-neighbour method, Parzen windows, K-D trees, K-means, scree plot, gaussian mixtures, EM algorithm, dimensionality reduction, principal components, eigen-faces, agglomerative clustering, single-link vs. complete link, lance-williams algorithm"
Une autre liste ici : http://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/
Neural networks and deep learning
Les réseaux neuronaux ont connu une évolution difficile dans le domaine de l'intelligence artificielle (engouement, rejet, engouement, etc.). En très bref, il s'agit de réseaux formés par l'interconnexion d'entités appelées "perceptrons". Ces perceptrons miment grossièrement le fonctionnement d'un neurone en émettant un signal plus ou moins fort en fonction de leurs entrées.
Ils reviennent à la mode sous le nom de "deep learning". Je suis donc en train de lire ce livre en ligne sur le sujet. L'auteur maîtrise son sujet et parvient à l'expliquer (en anglais) dans sa globalité : il rentre de manière très progressive dans la formalisation mathématiques du problème puis dans les différents aspects fondamentaux :
- l'activation du réseau
- la descente de gradient
- l'algorithme de rétropropagation
- la régression softmax
- etc... (je n'ai pas encore fini de lire)
L'auteur utilise le cas de la reconnaissance de caractère comme fil rouge et illustre tout ceci avec des implémentations en Python.

Ils reviennent à la mode sous le nom de "deep learning". Je suis donc en train de lire ce livre en ligne sur le sujet. L'auteur maîtrise son sujet et parvient à l'expliquer (en anglais) dans sa globalité : il rentre de manière très progressive dans la formalisation mathématiques du problème puis dans les différents aspects fondamentaux :
- l'activation du réseau
- la descente de gradient
- l'algorithme de rétropropagation
- la régression softmax
- etc... (je n'ai pas encore fini de lire)
L'auteur utilise le cas de la reconnaissance de caractère comme fil rouge et illustre tout ceci avec des implémentations en Python.
Intelligence Artificielle II - Notes de Cours
Des cours divers et variés sur plusieurs concepts issus de la recherche en intelligence artificielle (RIP :p) : réseaux bayésiens, réseaux neuronaux, arbres de décision, programmation logique, programmation par contraintes, algorithmes génétiques, etc.).
Ce journal est basé sur Ginger, un gestionnaire de lien minimaliste développé dans le cadre d'un stage de perfectionnement. Pour plus d'informations, consulter le wiki consacré à mes projets personnels.