XD blog

blog page

machine learning


2018-03-03 onnx

onnx est un outil qui permet de convertir des modèles de deep learning venant de plusieurs librairies différentes dans un format commun. Cela d'une certaine façon de passer d'une librairie à l'autre mais aussi de pouvoir exécuter des prédictions sur un système différent de celui ayant servi à l'apprentissage. Ordinateur, tablettes, téléphones, objets connectés... C'est l'idée. Apprendre sur un ordinateur dédié à cette usage et optimisé pour cela et prédire sur une machine de moindre puissance mais plus adaptée. onnxmltools étend la liste des librairies à celle du machine learning classique, comme bien évidemment scikit-learn. Et il se trouve que j'y ai contribué.

Cela m'a permis de redécouvrir le site de chainer qui a récemment évolué et casser quelques-uns de mes tests vérifiant mes supports de cours. Le design est similaire à celui de pytorch mais la partie GPU a été placée dans un module séparé cupy qui s'apparente à un numpy pour GPU. Je garde malgré tout une préférence pour le premier même si l'installation sous Windows est encore assez confuse et repose soit sur votre propre compilation soit sur celle disponible ici : anaconda/peterjc123. cupy est disponible quant à lui sur le site Unofficial Windows Binaries for Python Extension Packages.

03/07 : les modèles convertis par ONNX deviendra très bientôt facilement utilisables sur Windows 10 : ONNX Models to be Runnable Natively on 100s of Millions of Windows Devices.

2018-02-17 Machine learning sans diagonale

La plupart de mes cours se font sous la forme de notebooks, plus ou moins indépendant, des exercices en pagaille qui manquent de cohérence et de continuité. Pour l'instant, ça s'appelle Petit voyage au pays du machine learning, ça n'est pas parfait mais ça a un début et une fin.

2017-12-21 Les vélib changent, les données aussi

JCdecaux arrêtera de fournir les données velib au 31 décembre. Le nouveau format des données suivrait le format General Bikeshare Feed Specification (GBFS). Il y a fort à craindre que quelques applications de vélib cessent de fonctionner pendant quelques temps. Je ne parle pas des applications pour les téléphones Windows qui ne seront probablement pas mise à jour.

2017-12-18 Intelligence artificielle : hope and despair

Le machine learning dans sa conception qui s'appuie sur des bases d'apprentissage et de test est une façon de synthétiser un savoir puis de le restituer. Ce savoir est une liste d'évènements passés, ce que l'on sait d'une manière plus ou moins structurée, il est restitué le plus souvent sous la forme d'une aide à la décision pour les décisions futures. Le machine learning ne fait rien d'autre que de dire, sur la base des éléments passés, qu'il se passerait probablement ceci pour ces nouveaux éléments. A vous de vous en servir au mieux.

Cela dit, cela dit, ... Je viens de voir l'épisode 7 de la saison 7 de The Good Wife sur l'intelligence artificielle (S7E7).


more...

2017-11-11 Hackaton ENSAE : 3ème édition

J'en dirais plus bientôt mais ces deux articles devraient vous mettre sur la voie : Emmaüs se lance dans le e-commerce solidaire, Label-emmaus.co veut être un « Leboncoin solidaire ». Le troisième hackathon de l'ENSAE aura lieu les 24 et 25 novembre. Il proposera trois sujets, un sujet deep learning, un machine learning, un dernier créatif, plus économique que les années précédentes. Trois sujets inspirés des problématiques rencontrées par Label Emmaüs qui a accepté de contribuer à l'événement. Ernst & Young sponsorise à nouveau l'événement, côté étudiants, Genius contribue de nouveau à l'organisation. En attendant les prochaines informations, il faudra vous contenter du résumé des deux précédentes éditions : Hackathon Microsoft / ENSAE / Croix-Rouge / DataForGood - 2015, Hackathon Ernst & Young / ENSAE / Croix-Rouge / Crésus - 2016.

2017-02-12 Corrélation de variables catégorielles

Parmi toutes les questions, ce n'est pas l'une de celle qu'on m'a posée cette année et pourtant j'ai vu beaucoup de corrélations entre variables catégorielles. C'est très difficile d'en tirer quoi que ce soit. Au lieu d'essayer de répondre à cette question, je me suis dit qu'il serait sans doute plus amusant d'essayer de traficoter une corrélation entre catégorie qui ait plus de sens. Je me suis dirigé alors vers l'idée d'une corrélation non linéaire et puis sur le fait que si deux variables sont liées alors peut-être qu'on peut prédire l'une à partir de l'autre... Bref, si vous êtes curieux, la suite est là : Corrélations non linéaires.

2016-09-20 Digging into a random forest

A few links. Help yourself. Interpreting random forests, Reading and interpreting random forest models, treeinterpreter.

2016-07-20 Python module: mlxtend

A module to follow mlxtend. Don't forget to read the blog of his author: sebastianraschka. Worth the detour.

2016-07-07 Machine Learning? What did you say?

Yesterday my sister asked : What is machine learning? And she quickly added please explain with terms I know.

Ok...

So I won't say this is just a bunch of optimization problems which apply on data to improve the efficiency of a company.

What should i say?

Should I apply the shaddock logic to my job: if I can't explain, I'm no use. Is it about quantifying people's intuition with data?

Well...

Machine Learning is everywhere but that won't help. In cars, in websites, in sales, but that won't help.

So I thought. Think about your job today, think about it in 20 years. A robot will probably do it. We always think a robot is a machine as if you could only automate physical jobs such as a mechanical arm. But the smaller robot is a program for computers. I press a button to update my blog: this is a robot. By extension, we could consider machine learning a kind of robot for statisticians. We don't try anymore to analyze the data, to model it. We just try to apply a black box which tells us if the data can be predicted. How? we care less.

Is that the end of the story?

The robot knows more and more and still can only solve problems we've seen. Not the last one. The new one. So the job is now to improve the robot so that I don't solve the same problem twice.

2016-04-20 Build xgboost on Windows (not the python module)

Here are the steps I followed:

If you want to build the wheel for Python, I suggest reading Build xgboost 0.4a30 for Python 3.4 and 3.5.

2016-04-15 Dissection of a neural network

A friend sent me this link: Tinker With a Neural Network. Quite fascinating to see the inside of a neural network, how the training changes by adding features, increasing the learning rate or switching the loss function, adding the number of layers or neurones. You can also read Work on the features or the model.

2016-03-19 A few interesting links about Python

A few links about regular expressions, machine learning, automation:

The last page gives a list of python modules about machine learning. Among mlxtend has a really nice and detailed documentation. It includes formulas.

2015-12-22 Deep Learning and others readings

I came accross the following article Evaluation of Deep Learning Toolkits which studies a short list of libraries for deep learning: Caffe, CNTK, TensorFlow, Theano, Torch, and various angles: modeling capability, interfaces, model deployment, performance, architecture, ecosystem, cross-platform. It gives a nice overview and helps choosing the library which fits your needs. Once your deep models has been trained, how to use it? This question should be the first one to be answered.

As machine learning and big data become more and more popular, people look for ways to simplify the implementation of complex chains of processings. Python is quite popular so here is one suggestion in that language for deep learning: Blocks and Fuel: Frameworks for deep learning (Bart van Merriënboer, Dzmitry Bahdanau, Vincent Dumoulin, Dmitriy Serdyuk, David Warde-Farley, Jan Chorowski, Yoshua Bengio). It introduces Fuel which models pipelines of data processing.

Finally, a nice tutorial on machine learning with Python: PyData Seattle 2015 Scikit-learn Tutorial. The author's blog is nice too: Pythonic Perambulations. See Out-of-Core Dataframes in Python: Dask and OpenStreetMap. Some modules are hidden in his blog posts such as gatspy which plots timeseries in many ways or supersmoother to smooth timeseries or line_profiler in Optimizing Python in the Real World: NumPy, Numba, and the NUFFT. Two other readings to conclude: Why Python is Slow: Looking Under the Hood and Frequentism and Bayesianism: A Practical Introduction still from the same source.

01/06/2015 Comparative Study of Caffe, Neon, Theano, and Torch for Deep Learning

2015-12-11 Machine learning automatique

Et si plutôt que d'essayer de caler le meilleur modèle sur votre jeu de données, vous esssayiez d'apprendre un modèle qui le fait pour vous... Il existe une conférence pour cela : AutoML workshop @ ICML'15 et un module auto-sklearn.

Et toujours awesome-machine-learning

2015-07-09 Machine Learning, framework, école 42

A few links around machine learning: a new Python module has been released machineLearningStanford. I quote the first sentance of file README.md: This module implements assignments of machine learning coursera Stanford by PYTHON.

A list of frameworks to do machine learning in many languages: awesome-machine-learning. Among them, some links to pieces of code for Kaggle competitions: Kaggle Competition Source Code.

A module to do deep learning in Python: keras.

Pour finir, une émission sur France 4 à propos de l'école 42 et son examen de passage : La Piscine. Un mois d'exercices aux consignes plutôt floues.


<-- -->

Xavier Dupré