Mis à jour le 14/05/2018
  • 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

Ce cours est en vidéo.

Vous pouvez obtenir un certificat de réussite à l'issue de ce cours.

J'ai tout compris !

Les limites du machine learning : No free lunch et intractability

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Vous vous en doutiez, la pratique de la data science est longue et laborieuse, car semée d'embûches. Mais j'espère que cela ne va pas vous arrêter pour autant ! Et comprendre dès maintenant les difficultés classiques, que vous allez forcément rencontrer si vous continuez à utiliser des techniques de machine learning, vous aidera à mieux aborder les problèmes qui surviendront.

Dans ce chapitre, je vous présente deux limites principales du machine learning :

  • une limite théorique sur la capacité d'un algorithme à résoudre différentes tâches

  • une limite pratique sur la capacité des ordinateurs à gérer la complexité des problèmes à traiter.

Le théorème "No Free Lunch"

Le théorème du "No Free Lunch" (qu'on pourrait traduire par : "pas de déjeuner gratuit") est la raison pour laquelle on va encore avoir besoin des data scientists pour un bon bout de temps ! 😀

En essence, ce théorème statue qu'aucun modèle et algorithme ne fonctionne bien pour tous les problèmes. En d'autres termes, si un algorithme de machine learning fonctionne bien sur un type de problème particulier, ça veut dire qu'il le paiera ailleurs, et sera donc moins performant en moyenne sur le reste des problèmes. 

En effet, un modèle étant une approximation de la réalité, il repose sur un certain nombre d'hypothèses de départ pour exister. Ces hypothèses sont dépendantes du contexte (i.e. du problème considéré). Les hypothèses étant différentes pour chaque type de problème, on doit considérer différents modèles pour différents problèmes.

C'est un peu une prise de tête inutile ton truc non ? 

Peut être un peu, mais c'est juste pour vous rappeler que personne ne trouvera un modèle "ultime" qui résoudra tout avec efficacité. Vous devrez bien toujours tester plusieurs modèles pour chaque problématique afin de trouver à chaque fois le modèle optimal en terme de précision, temps de calcul et complexité algorithmique. Il n'y aura jamais un algorithme magique (une golden rule) qui fonctionnera mieux que les autres.

Ce qu'il faut également retenir de cette règle, c'est que vous allez construire un modèle efficace basé sur vos hypothèses de départ. Il faut donc que ces hypothèses servent votre problématique. 

Exemple

Examinons de plus près les moteurs de recommandation de type "collaborative filtering" que j'ai présentés dans un chapitre précédent. L'hypothèse principale est qu'un utilisateur qui aime un film, va aimer un film similaire. C'est cette supposition préalable qui est à la base de cet algorithme. Imaginez un monde où vous avez des goûts répartis de manière aléatoire entre les différents films, sans lien entre eux... les recommandations ne fonctionneront pas ! Cet algorithme est donc utile et performant uniquement dans le cas où cette hypothèse est vérifiée.

Les problèmes insolubles

Appelée intractability en anglais, cette notion désigne les problèmes qui ne peuvent être résolus dans un temps raisonnable, qui explosent en terme de complexité algorithmique. 

Comme vous le savez maintenant, grand nombre d'algorithmes de machine learning cherchent en fait à converger vers l'optimum d'une fonction (maximum de vraisemblance, minimum d'erreur empirique, etc). Or, il est très fréquent que ce type de fonctions soit très difficile à calculer de manière exacte, dès lors qu'on a un grand nombre de variables à traiter. Les modèles de représentation utilisés dans les algorithmes sont approximés ou alors on renforce/relaxe des hypothèses de départ afin de s'assurer que l'algorithme va bien trouver une solution.

Merci mais à quoi ça va me servir de savoir ça en pratique ? 

Et bien le premier intérêt, c'est que quand vous verrez dans une documentation d'algorithme le terme intractable, vous saurez ce que ça signifie. 😉

Le second, c'est que vous savez à présent que bon nombre d'algorithmes ne convergent pas exactement vers la solution optimale pour cette raison. Vous pouvez donc comprendre pourquoi on utilise beaucoup d'approximations en machine learning et pourquoi on va relaxer certaines hypothèse pour éviter cette complexité supplémentaire, non nécessaire en pratique.

Enfin, même si les développeurs des différentes librairies de machine learning que vous utiliserez ont fait le maximum pour créer des outils performants et efficaces dans le maximum de circonstances, il arrivera que vos algorithmes soient malheureusement trop complexes pour être raisonnablement intéressants. Une première solution quand on est confronté à un algorithme qui met trop de temps à converger, c'est de simplifier le problème au maximum, en minimisant la perte d'information. On peut par exemple chercher à :

  • réduire le nombre de variables en entrée

  • réduire la taille du dataset au maximum

  • réduire la complexité des hypothèses de modélisation

En résumé

Dans ce chapitre, l'objectif était d'encadrer les problèmes posés lors de la construction d'un modèle par un data scientist en énonçant ces deux limites à garder en tête :

  • Il n'existe pas d'algorithme et modèle "ultime", applicable pour tous les problèmes. Vous devez donc aborder chaque nouveau problème avec un oeil neuf et veiller à tester plusieurs algorithmes afin de le résoudre, en formulant des hypothèses spécifiques à ce problème.

  • Il arrive souvent de se trouver confronter à des algorithmes et modèles très puissants... mais trop compliqués pour être utilisés directement. Pour éviter ces situations d'intractability, Il ne faut pas avoir peur d'effectuer des approximations qui permettent de gagner en efficacité. 

 

Exemple de certificat de réussite
Exemple de certificat de réussite