Introduction au deep learning (2)

Les prérequis et l'outillage nécessaires

Laurent Rosenfeld

Nous poursuivons notre série basée sur des vidéos de Thiibault Neveu sur le deep learning commencée avec l'article Introduction au deep learning - Comprendre les bases de l'apprentissage profond.

Avant d'entrer dans le vif du sujet, nous allons examiner dans ce volet les prérequis nécessaires pour commencer ainsi que les outils logiciels dont nous aurons besoin.

Pour réagir au contenu de ce tutoriel, un espace de dialogue vous est proposé sur le forum. Commentez .

- Titre : Introduction au deep learning (2)

- Auteur : Laurent Rosenfeld

- Parution : 8 mai 2018

- Mise à jour : 8 mai 2018

- Public visé :

- Licence :

Sommaire

- 1. Introduction

- 2. Les connaissances prérequises

- 2-1. Programmation en Python

- 2-2. Connaissances mathématiques

- 2-2-1. La simple utilisation

- 2-2-2. Compréhension de base

- 2-2-3. Compréhension totale

- 2-2-4. En résumé

- 3. Mettre en place votre environnement

- 3-1. Installation d'Anaconda

- 3-1-1. Installation sous Linux

- 3-1-2. Installation sous Windows

- 3-1-3. Installation sous Mac

- 3-2. Création d'un environnement dédié

- 3-2-1. Sous Linux ou Mac

- 3-2-2. Sous Windows

- 4. Pour conclure

- 5. Note de la rédaction de Developpez.com

1 - Introduction

2 - Les connaissances prérequises

2-1 - Programmation en Python

Pour comprendre la suite de ce tutoriel, il est nécessaire de savoir programmer en général et de connaître au moins les bases du langage Python (voir la rubrique Python de ce site). Mais il n'est nullement nécessaire d'être un expert de la programmation en Python.

Si nous devons faire appel à des notions relativement avancées, nous les expliquerons avant de les utiliser. De même, quand nous aurons besoin d'utiliser des fonctions appartenant à des bibliothèques particulières ou inusuelles, nous les présenterons en temps voulu.

2-2 - Connaissances mathématiques

En ce qui concerne le niveau en mathématique, il n'y a pas besoin d'avoir un haut niveau pour pouvoir commencer. Un niveau lycée de mathématique suffit largement pour démarrer. Ne vous inquiétez pas si vous craignez de ne pas avoir le niveau ou si les mathématiques vous font peur, nous ne ferons pas de choses très poussées.

La question revient souvent : « Les mathématiques sont-elles nécessaires pour faire du deep learning ou de l'apprentissage profond ? » On répondra : oui et non. Il n'y a pas de oui ou de non tranché, tout va dépendre de ce que vous voulez en faire. Voyons cela.

2-2-1 - La simple utilisation

Si ce qui vous intéresse est une simple utilisation, et si vous savez que l'on utilise telle ou telle méthode pour résoudre un certain problème donné, alors vous n'avez pas besoin de savoir comment ces méthodes fonctionnent. Il existe aujourd'hui des bibliothèques bien faites, par exemple scikit-learn qui est une surcouche à TensorFlow. Elles sont faites pour l'utilisation, il suffit souvent de deux ou trois lignes de code pour mettre en œuvre la méthode d'apprentissage profond voulue. Vous pouvez donc vous lancer dans cette utilisation, sans faire de mathématiques, mais juste un peu de programmation.

2-2-2 - Compréhension de base

Cela dit, c'est un peu dommage de ne faire que de l'utilisation. Normalement, il serait préférable de faire de l'utilisation avec une compréhension de comment cela fonctionne.

C'est un autre niveau d'abstraction : on ne se contente pas d'utiliser, mais on sait aussi pourquoi ça fonctionne. Et pour comprendre cela, vous aurez besoin de faire un peu de mathématiques. Vous ne devrez pas écrire de pages d'équations et de formules, mais il faudra tout de même se plonger un peu dedans pour comprendre les concepts sous-jacents.

Dans ce cours, nous serons souvent à ce niveau : on abordera les concepts mathématiques de base, on essaiera de comprendre comment ils fonctionnent et on les appliquera dans le code.

2-2-3 - Compréhension totale

Nous essaierons aussi occasionnellement d'aborder la compréhension totale, mais on précisera que ces connaissances ne sont pas forcément obligatoires pour tout comprendre.

2-2-4 - En résumé

En résumé, pour vous lancer dans l'apprentissage profond, vous n'avez pas besoin d'un gros bagage de mathématiques, vous pouvez commencer à en faire avec un niveau minimum. Mais quand vous aurez bien avancé sur les concepts de l'apprentissage profond et sur les notions mathématiques de base qui les sous-tendent, vous devrez peut-être vous pencher un peu plus dans les mathématiques pour atteindre un niveau de compréhension élevé et, pourquoi pas ? faire de la recherche, mais vous n'avez pas besoin de faire de la recherche pour faire de l'apprentissage profond.

Vous avez juste besoin de savoir développer, d'être curieux et, surtout, d'avoir envie d'apprendre.

3 - Mettre en place votre environnement

Pour gérer les dépendances dans la suite du projet, nous allons utiliser un environnement Python qui s'appelle Anaconda. Nous allons montrer comment installer Anaconda. Dans notre cas, nous sommes sur une version Ubuntu de Linux, il se peut qu'il faille changer quelques petites choses avec une autre distribution Linux ou sous un autre OS, mais ça devrait être à peu près la même idée.

Sous Linux, vous avez probablement un Python installé. Ici, par exemple, nous avons un Python 2.7 (ce sera peut-être une autre version sur votre système) :

Cette version de Python, c'est celle du système, qui sert sans doute à certaines tâches d'administration, notamment les mises à jour logicielles. Donc, si on installe des dépendances sur ce Python, ça va les installer sur le système, et cela risque d'avoir des conséquences fâcheuses sur son fonctionnement. Pour éviter cela, nous allons encapsuler toutes les dépendances que nous allons installer à l'intérieur d'un conteneur indépendant grâce à Anaconda. Cela nous permettra aussi d'avoir des environnements de travail presque identiques, quel que soit le système d'exploitation.

3-1 - Installation d'Anaconda

Nous allons donc utiliser Anaconda, qui est un gestionnaire d'environnements, et nous allons créer un environnement dans lequel il y aura toutes les dépendances relatives au deep learning. Vous pourrez aussi, bien sûr, créer d'autres environnements dans lesquels vous aurez les dépendances relatives à d'autres projets. Anaconda permettra d'installer les dépendances dont vous aurez besoin et de les encapsuler dans un environnement isolé du reste.

Allez sur le site d'Anaconda et choisissez l'option Download Anaconda en haut à droite.

Vous choisissez ensuite votre OS (Windows, Linux, macOS) et sélectionnez la version 3.6 (ou une plus récente) de Python :

3-1-1 - Installation sous Linux

Ensuite, vous allez dans le répertoire de téléchargement. Sous Linux, changez éventuellement les droits et exécutez le shell d'installation (ou, sans changer les droits, exécutez la commande bash anaconda_....sh).

Répondez aux quelques questions posées, acceptez la licence et validez.

Maintenant, à condition d'avoir répondu oui à la dernière question proposant d'insérer Anaconda dans le .bashrc, si on ouvre un nouveau terminal et on lance Python, on voit que ce n'est plus le Python 2.7 du système, mais Python 3.6 / Anaconda, qui s'exécute :

3-1-2 - Installation sous Windows

Sous Windows, vous téléchargerez un fichier exécutable (.exe) qu'il suffit de lancer pour effectuer l'installation (vous trouverez des informations complémentaires sur cette page).

Rendez-vous dans le répertoire de téléchargement et double-cliquez sur le fichier exécutable téléchargé :

Une fois l'application installée, vous pouvez lancer le navigateur Anaconda :

La mise en place d'Anaconda sous Windows conduit également à l'installation d'une application appelée Anaconda Prompt, qui est une espèce de console Bash / Anaconda sous Windows. Celle-ci permet de taper à la ligne de commande les instructions de la section consacrée à la création d'un environnement dédié (voir l'exemple d'utilisation au §3.2.2 ci-dessous).

3-1-3 - Installation sous Mac

Sous Mac, vous pouvez installer un installateur graphique (.pkg) ou un shell d'installation à la ligne de commande ; voir les consignes d'installation sur cette page.

Utilisez la ligne de commande pour les instructions de la section suivante.

3-2 - Création d'un environnement dédié

Cette première étape ne suffit pas. Nous allons créer un environnement spécial pour l'apprentissage profond. Nous utilisons pour cela la commande conda create en utilisant l'option -n dl3 pour donner à cet environnement le nom dl3 (pour deep learning et Python 3). Ensuite, on active l'environnement avec la commande source activate dl3.

3-2-1 - Sous Linux ou Mac

Maintenant, si l'on tape Python, on constate que non seulement c'est bien Python 3.6 / Anaconda qui se lance, mais ce n'est pas le même Python que précédemment, mais le Python propre à l'environnement : le début de l'invite montre que l'on est dans l'environnement dl3 :

Si vous ouvrez un nouveau terminal, vous ne serez pas dans votre environnement. Il suffira lors de taper la commande source activate dl3 pour vous retrouver dans votre environnement dl3.

3-2-2 - Sous Windows

Sous Windows, il suffit de lancer les mêmes commandes à l'invite de l'Anaconda Prompt :

4 - Pour conclure

Nous sommes maintenant parés pour entrer dans le vif du sujet et commencer à étudier les bases de l'apprentissage profond. C'est ce que nous commencerons à faire dans le prochain volet de cette série.

5 - Note de la rédaction de Developpez.com

Ce texte a été rédigé par Laurent Rosenfeld à partir de deux vidéos de Thibault Neveu (Prérequis et Préparez votre environnement).

Nous tenons à remercier Iom, LittleWhite et dourouc05 pour les judicieuses suggestions et… f-leb pour la relecture orthographique de ce tutoriel.