Skip to content

Quelques conseils génériques

Conseils méthodologiques et théoriques

  • Je vous conseille de vous constituer un document personnel de cheatsheet dans lequel vous compilerez des cours résumés principes théoriques importants, morceaux de code, paramétrage de configurations, ... tout ce qui vous sera utile et que vous souhaitez retrouver rapidement. Vous pourrez vous inspirez de nombreux cheatsheet que vous pouvez trouver en ligne
  • Efforcez vous de faire un minimum de travail d'exploration de données pour vous aider à comprendre mieux vos données
  • En machine learning classique, je vous conseille d'apporter le plus grand soin à l'optimisation de vos paramètres et vos hyperparamètres, vos performances en dépendent ! Ils sont très nombreux dans le deep learning et il n'est pas toujours facile de savoir comment les optimiser. N'hésitez pas à vous renseigner et à me solliciter
  • Faites extrêmement attention à gérer les problèmes liés au sur apprentissage. Vous serez testé sur la capacité de vos modèles à généraliser leur performances sur de nouvelles données, vos performances seront mauvaises si vous ne gérez pas ce problème.
  • Explorez vos données afin de comprendre le plus possible les informations qu'elles contiennet
  • Faites plusieurs itérations de votre chaîne de traitement, et privilégiez des itérations courtes au début : cela vous permettra d'ajuster vos choix en fonction des résultats obtenus (essayez de comprendre les erreurs) N'hésitez pas à sous échantillonner vos données si elles sont volumineuses afin de faire les premières itérations ou tests
  • Gardez une trace de vos itérations dans un fichier de log (un tableau par exemple): documentez y a minima les hyperparamètres testés et les résultats obtenus
  • Sauvegardez vos modèles entrainés, en particulier en deep learning ou les entraînements sont longs

Conseils organisationnels pour vos projets

  • Pour vos projets d'équipes je vous recommande d'utiliser systématiquement des dêpots en ligne avec du contrôle de version (par exemple sur GitHub ou GitLab) pour facilitez votre travail en équipe et me permettre d'accéder plus facilement à votre travail (code, données, modèles).

  • Faites des commit réguliers du travail de chaque membre du groupe afin de synchroniser au mieux le travail d'équipe.

  • Dans les projets de groupe de plus de 3 personne, je vous recommande de désigner une personne qui jouera le rôle de chef de projet pour coordonner le travail d'équipe. La coordination et planification du travail est souvent un facteur important de réussite d'un projet !

  • Je vous encourage très fortement à enregistrer vos modèles à chaque entraînement (Scikit-learn, Tensorflow et PyTorch permettent de sauvegarder et charger très facilement et efficacement vos modèles). Vous pourrez ainsi les recharger et travailler de manière itérative en testant à chaque fois des petites modifications (faire varier les paramètres a hyper-paramètres, ajouter ou enrichir vos données, ...).

  • Répartissez vous le travail et les ressources computationnelles. Pour le deep learning en particulier, étant donné nos ressources computationnelles limitées et les temps de calcul pouvant être très long (un gros réseau peut s'entraîner pendant plusieurs heures), il est primordial que vous parallélisez au maximum les calculs que vous allez faire entre les différentes machines à votre disposition.

Vous pourrez ainsi répartir les entraînements entre vos machines locales (configurables pour utiliser le GPU) et des ressources de calcul GPU de services dans cloud : Google Colab, Google Cloud Platform, Amazon Web Services, Microsoft Azure, OVH, ...

  • Forcez vous à communiquer avec vos collaborateurs: sur la messagerie instantanée du cours, utiliser les commits et les issues de vos dépôt en ligne pour vous répartir le travail et vous synchroniser.

Conseils pour vos soutenances de projets

Voici quelques étapes que vous pouvez suivre pour préparer vos soutenances :

  • Présentez clairement votre probleme : le type de tâche, les spécificités de votre data set, ...
  • Expliquez quel a été votre stratégie pour aborder le problème
  • Présentez un bref résumé de votre exploration de données (de préférence sous forme de graphiques)
    votre data set est il de bonne qualité (valeurs erronnées, manquantes, outliers, ...) ?
    les observations par classes sont elles équilibrées ?
    comment vos données sont elles réparties ?
    pouvez vous identifier des relations entre les varibales ?

  • Présenter les étapes de prétraitements des données que vous avez faites

  • Expliquez la catégorie de modèle utilisé en expliquant grossièrement son fonctionnement
  • Montrez un résumé des résultats tests intéressants que vous avez pu faire et expliquez vos choix de modelisation : quels modèles finaux avez vous gardé ? pourquoi ?
  • Résumez les performances de votre modèle final sur le data set de test
  • Evoquez des pistes d'améliorations