Le deep learning est un sujet important dans le domaine de l'intelligence artificielle et attire l'attention depuis un certain temps. Il a attiré beaucoup d'attention en raison de percées dépassant les capacités humaines dans des domaines tels que la vision par ordinateur (Computer Vision) et les jeux (Alpha GO). Depuis la dernière enquête, l’intérêt pour l’apprentissage profond a considérablement augmenté.
Voici ce que Google Trends nous montre :
Cet article est un bon article non technique si vous êtes intéressé par ce sujet d'introduction. Si vous souhaitez en savoir plus sur les dernières tendances en matière d'apprentissage profond, cet article est un résumé complet.
Ici, notre objectif est de proposer un parcours d'apprentissage aux débutants et à ceux qui souhaitent explorer davantage l'apprentissage en profondeur. Alors, êtes-vous prêt à vous lancer dans un voyage à la conquête du deep learning ? Prenons la route.
Étape 0 : Préparez-vous à l'expédition
Il est recommandé de comprendre les connaissances de base de l'apprentissage automatique avant d'entrer dans le domaine de l'apprentissage approfondi. « Parcours d'apprentissage vers l'apprentissage automatique » est une ressource complète pour vous aider à démarrer dans le domaine.
Si vous souhaitez une version plus courte, jetez un œil ci-dessous :
Mathématiques de base, Ressource 1 : "Mathématiques | Khan Academy" (en particulier le calcul, la probabilité et l'algèbre linéaire)
Bases de Python, ressources : "Introduction à l'informatique", cours EDX
Bases des statistiques, ressources : "Introduction aux statistiques", cours d'Udacity
Bases du Machine Learning, ressources : "Introduction à Machine Learning", cours d'Udacity
Durée : 2 à 6 mois recommandée
Étape 1 : Configurer votre machine
Avant de passer à l'étape suivante, assurez-vous d'avoir matériel de support. La recommandation générale devrait être au moins :
Un GPU assez bon (4 Go), de préférence celui de Nvidia.
Un CPU suffisant (comme Intel Core i3 est OK, mais Intel Pentium ne l'est pas)
4 Go de mémoire ou selon l'ensemble de données.
Si vous n'êtes toujours pas sûr, jetez un œil à ce guide du matériel
PS : Si vous êtes un joueur inconditionnel (et pas seulement un joueur de Candy Crush bien sûr !), vous vous avez probablement déjà le matériel dont vous avez besoin.
Si vous ne disposez pas du matériel requis, vous pouvez acheter ou louer un Amazon Web Service (AWS). Voici un bon guide d'utilisation d'AWS pour l'apprentissage en profondeur.
Remarque : Il n'est pas nécessaire d'installer une bibliothèque d'apprentissage en profondeur à ce stade. Cela se fait à l'étape 3.
Étape 2 : Essayez-la
Maintenant que vous disposez de suffisamment de connaissances préliminaires, vous pouvez en apprendre davantage sur l'apprentissage profond.
Selon vos préférences personnelles, vous pouvez suivre :
Blog : (Ressource 1 : "Bases du Deep Learning" Ressource 2 : "Guide du hacker sur les réseaux de neurones")
Vidéo : "Deep Learning Simplified"
Manuel : "Réseaux de neurones et Deep Learning"
En plus de ces prérequis, vous devez également connaître les bibliothèques de deep learning populaires et les langages qui les exécutent . Voici une liste (non exhaustive) (voir la page wiki pour une liste plus complète) :
Caffe
DeepLearning4j
Tensorflow
Theano
Torch
Certaines autres bibliothèques célèbres incluent :
Moka
neon
H2O
MXNet
Keras
Lasagne
Nolearn
Voici une liste de bibliothèques d'apprentissage profond classées selon la langue
Il est recommandé de lire le cours cs231n de Stanford 12 : Aperçu populaire des bibliothèques de Deep Learning
Durée : 1 à 3 semaines recommandées
Étape 3 : Choisissez votre propre chemin d'aventure
Vient maintenant la partie amusante ! L’apprentissage profond a été appliqué dans divers domaines et a donné des résultats de pointe. Pour accéder à ce champ, vous, lecteur, devez choisir un chemin qui vous convient. Cela devrait être une expérience pratique afin que vous acquériez une base appropriée en plus de votre compréhension actuelle.
Remarque : Chaque parcours comprend un blog d'introduction, un projet pratique, la bibliothèque du programme d'apprentissage en profondeur et des cours auxiliaires requis pour le projet. Commencez par comprendre l'introduction, puis installez les bibliothèques requises et commencez à travailler sur votre projet. Si vous rencontrez des difficultés, profitez des cours pertinents pour vous aider.
Vision par ordinateur avec apprentissage profond
Introduction : "DL pour la vision par ordinateur" Blog sur la vision par ordinateur
Projet : "Détection de points clés du visage" Tutoriel sur la détection de points clés du visage
Bibliothèque si requise : Nolearn
Cours associés : "cs231n : Reconnaissance visuelle de réseaux neuronaux convolutifs"
Apprentissage profond pour le traitement du langage naturel
Introduction à l'introduction : "DeepLearning, PNL et représentations" (Blog "Deep Learning, Natural Language Processing and Representation")
Projet : "Deep Learning Chatbot" :
"Première partie"
"Deuxième partie"
Bibliothèques requises : tensorflow
Cours associés : "cs224d : Application de l'apprentissage profond au traitement du langage naturel"
Apprentissage profond pour la reconnaissance vocale/audio
Mise en route : Actualités « Deep Talk : Lessons Learned from Deep Learning » et vidéo correspondante.
Projet : "Générer de la musique avec Magenta (tensorflow)"
Bibliothèques requises : Magenta,
Cours associés : "Deep Learning (Printemps 2016), cilvr Lab @ New York
Apprentissage par renforcement en profondeur
Introduction et projet : "Apprentissage par renforcement en profondeur : jeu de tennis de table à partir de pixels"
Bibliothèques requises : Aucune exigence mais vous avez besoin d'une salle de sport openAI pour tester. votre modèle
Cours associés : "cs294 : Deep Reinforcement Learning"
Durée : 1-2 mois recommandés
Étape 4 : Deep Learning
est désormais (presque) capable de gagner une place au Temple de la renommée du Deep Learning ! Le chemin à parcourir est long et profond (jeu de mots), et est largement inexploré à l'heure actuelle, à mesure que vous vous familiarisez avec cette nouvelle compétence et l'utilisez. Voici quelques conseils pour améliorer vos compétences.
Choisissez une voie différente et répétez les étapes ci-dessus
Non mentionné ci-dessus (Exemples : deep learning pour le trading, deep learning pour optimiser l'efficacité énergétique)
Utilisez vos compétences nouvellement acquises pour créer quelque chose (rappelez-vous qu'un grand pouvoir implique de grandes responsabilités, )
Testez vos compétences d'apprentissage en profondeur (comme Kaggle)
Participer à l'apprentissage en profondeur communautés (telles que Google Groupes)
Suivez les derniers résultats de recherche et de chercheurs (telles que "RE.WORK DL Summit". ")
Heure : Suggestion - pas de limite supérieure !
Parlons plus précisément de l'utilisation de python pour développer ou apprendre le machine learning, un module important du deep learning. Il faut dire que c'est un module indispensable
1. Préparation précoce, il faut connaître plus ou moins python ! module d'opérations scientifiques, de tri de données et de résultats d'images. Ces trois éléments sont indispensables : numpy, pandas, matplotlib.
2. Préparation avancée, en termes d'apprentissage automatique, scikit learn est un module qui regroupe de nombreuses méthodes d'apprentissage automatique. prend en charge une variété de méthodes d'apprentissage automatique.
3. Il est également avancé dans les réseaux de neurones, qui a apporté de grandes contributions, a été développé par Google et a embauché de nombreux développeurs Theano. développement de réseaux de neurones que Tensorflow, et si vous pensez à Google, la vitesse des mises à jour sera certainement la même. Attendez-vous à cela
4. et facilement, Keras est un très bon module. Sa couche sous-jacente est Tensorflow et Theano, il peut donc être utilisé sur Windows, MacOS et Linux.
5. carrière personnelle en apprentissage automatique, je les utilise principalement.
Afin de faciliter l'apprentissage de chacun et de promouvoir le pouvoir du peuple chinois dans le domaine de l'apprentissage automatique, j'ai créé mon propre ensemble de vidéos d'enseignement du chinois scikit learn, Theano, Keras et tensorflow, une série d'introduction à l'apprentissage automatique. La réponse en Chine n’a pas été formidable, mais de nombreuses personnes l’ont regardé sur YouTube. J'espère que tout le monde soutiendra le pouvoir du peuple chinois.
Résumé de la bibliothèque d'apprentissage automatique Python et de la bibliothèque d'apprentissage profond
1 Scikit-learn (fortement recommandé)
Scikit-learn est. basé sur Scipy est un module Python conçu pour l'apprentissage automatique. Il propose une variété d'algorithmes de classification, de régression et de clustering, notamment des machines vectorielles de support, la régression logistique, des classificateurs Bayes naïfs, des forêts aléatoires, des algorithmes de boosting de gradient et de clustering et DBSCAN. Et également conçu les bibliothèques numériques et scientifiques Python Numpy et Scipy
2. Keras (deep learning)
Keras est un framework d'apprentissage profond basé sur Theano , son design fait référence à Torch, écrit en langage Python, et est une bibliothèque de réseaux neuronaux hautement modulaire qui prend en charge le GPU et le CPU.
3. Lasagnes (apprentissage profond)
Non seulement un délicieux plat italien, mais aussi une bibliothèque d'apprentissage profond avec des fonctions similaires à celles de Keras, mais son design est quelque peu différent d'eux.
4.Pylearn2
Pylearn est un programme de bibliothèque basé sur Theano qui simplifie la recherche en apprentissage automatique. Il regroupe de nombreux modèles et algorithmes de formation couramment utilisés dans la recherche sur l’apprentissage profond et l’intelligence artificielle dans un seul package expérimental, tel que la descente de gradient stochastique.
5.NuPIC
NuPIC est une plateforme d'intelligence artificielle utilisant l'algorithme d'apprentissage HTM comme outil. HTM est une méthode de calcul précise pour le cortex. Le cœur de HTM est un algorithme d’apprentissage continu basé sur le temps et un modèle spatio-temporel de stockage et de rappel. NuPIC convient à une grande variété de problèmes, notamment la détection et la prédiction d'anomalies à partir de sources de données en streaming.
6. Nilearn
Nilearn est un module Python qui peut rapidement apprendre statistiquement des données de neuroimagerie. Il utilise la boîte à outils scikit-learn en langage Python et certaines applications de modélisation prédictive, de classification, de décodage et d'analyse de connectivité pour effectuer des statistiques multivariées.
7.PyBrain
Pybrain est l'abréviation de l'apprentissage par renforcement, de l'intelligence artificielle et de la bibliothèque de réseaux neuronaux basée sur le langage Python. Son objectif est de fournir des algorithmes d'apprentissage automatique flexibles, faciles à utiliser et puissants et d'effectuer des tests dans une variété d'environnements prédéfinis pour comparer vos algorithmes.
8.Pattern
Pattern est un module d'exploration de réseau en langage Python. Il fournit des outils pour l'exploration de données, le traitement du langage naturel, l'analyse de réseau et l'apprentissage automatique. Il prend en charge les modèles spatiaux vectoriels, le clustering, les machines vectorielles et les perceptrons et utilise la méthode de classification KNN pour la classification.
9.Fuel
Fuel fournit des données pour votre modèle d'apprentissage automatique. Il dispose d'une interface de partage d'ensembles de données tels que MNIST, CIFAR-10 (ensemble de données d'images), Google's One Billion Words (texte). Vous l'utilisez pour remplacer vos propres données de diverses manières.
10.Bob
Bob est un outil gratuit de traitement du signal et d'apprentissage automatique. Sa boîte à outils est écrite en Python et C. Elle est conçue pour être plus efficace et réduire le temps de développement. Elle est composée d'un grand nombre de progiciels pour le traitement des outils d'imagerie, le traitement audio et vidéo, l'apprentissage automatique et la reconnaissance de formes.
11.Skdata
Skdata est un programme de bibliothèque pour l'apprentissage automatique et les ensembles de données statistiques. Ce module fournit une utilisation standard de Python pour les problèmes de jouets, la vision par ordinateur populaire et les ensembles de données en langage naturel.
12.MILK
MILK est une boîte à outils d'apprentissage automatique en langage Python. Il utilise principalement des méthodes de classification supervisée parmi les nombreuses classifications disponibles telles que SVMS, K-NN, forêts aléatoires et arbres de décision. Il effectue également la sélection des fonctionnalités. Ces classificateurs sont combinés de nombreuses manières pour former différents systèmes de classification tels que l'apprentissage non supervisé, la propagation de l'or par affinité et le clustering K-means pris en charge par MILK.
13. IEPY
IEPY est un outil d'extraction d'informations open source axé sur l'extraction de relations. Il s’adresse principalement aux utilisateurs qui ont besoin d’extraire des informations à partir de grands ensembles de données et aux scientifiques qui souhaitent essayer de nouveaux algorithmes.
14.Quepy
Quepy est un framework Python qui interroge dans le langage de requête de base de données en modifiant les questions en langage naturel. Il peut être simplement défini comme différents types de problèmes liés aux requêtes en langage naturel et aux bases de données. Ainsi, vous pouvez créer votre propre système qui alimente en langage naturel votre base de données sans codage.
Quepy prend désormais en charge les langages de requête Sparql et MQL. Et il est prévu de l'étendre à d'autres langages de requête de bases de données.
15.Hebel
Hebel est un programme de bibliothèque pour l'apprentissage en profondeur des réseaux de neurones en langage Python. Il utilise PyCUDA pour l'accélération GPU et CUDA. Il s'agit du type d'outil le plus important pour les modèles de réseaux neuronaux et peut fournir des fonctions d'activation pour un certain nombre de fonctions d'activité différentes, telles que la dynamique, la dynamique de Nesterov, la perte de signal et les méthodes d'arrêt.
16.mlxtend
Il s'agit d'un programme de bibliothèque composé d'outils et d'extensions utiles pour les tâches quotidiennes de science des données.
17.nolearn
Ce package contient un grand nombre de modules utilitaires qui peuvent vous aider à effectuer des tâches d'apprentissage automatique. Un grand nombre de ces modules fonctionnent avec scikit-learn, et d'autres sont souvent plus utiles.
18.Ramp
Ramp est un programme de bibliothèque qui développe des solutions pour accélérer le prototypage en apprentissage automatique dans le langage Python. Il s'agit d'un framework enfichable léger basé sur Pandas pour l'apprentissage automatique. Il fournit une fonction d'exploration de syntaxe déclarative simple pour les outils d'apprentissage automatique et statistiques existants dans le langage Python (tels que scikit-learn, rpy2, etc.). et efficacement.
19.Feature Forge
Cette série d'outils crée et teste des fonctions d'apprentissage automatique via une API compatible avec scikit-learn.
Cette bibliothèque fournit un ensemble d'outils qui seront utiles dans de nombreux programmes d'apprentissage automatique. Lorsque vous utiliserez cet outil scikit-learn, vous sentirez que vous avez été grandement aidé. (Bien que cela ne fonctionne que si vous avez des algorithmes différents.)
20. REP
REP consiste à mener de manière harmonieuse et reproductible Un environnement fourni par le mouvement des données conducteur.
Il dispose d'un wrapper de classificateur unifié pour fournir une variété d'opérations, telles que TMVA, Sklearn, XGBoost, uBoost, etc. Et il peut entraîner des classificateurs de manière parallèle sur une population. Il fournit également une intrigue interactive.
21. Exemples de machines d'apprentissage Python
Une collection de logiciels simples construits avec l'apprentissage automatique d'Amazon.
22.Python-ELM
Il s'agit d'une implémentation d'un machine d'apprentissage extrême basée sur scikit-learn en langage Python.
23.gensim
Implémentation du modèle de sujet Python
Sémantique statistique évolutive
Analyser les documents en texte brut pour la structure sémantique
Récupérer sémantiquement documents similaires