Développement du machine learning - cours gratuit de l'École d'Analyse de Données, formation 4 semestres, Date: 2 décembre 2023.
Miscellanea / / December 06, 2023
Cette direction convient à ceux qui aiment programmer et créer des services et des applications pouvant être utilisés par des milliers et des millions de personnes.
Écrivez du code efficace, construisez et optimisez des systèmes basés sur les données industriellement efficaces.
Dans le développement de produits de haute technologie basés sur l'apprentissage automatique.
Chaque étudiant doit réussir au moins trois cours au cours du semestre. Par exemple, s'il y en a deux dans le programme principal, vous devez alors choisir l'un des cours spéciaux.
Les connaissances sont testées principalement par le biais de devoirs - les examens et les tests ne sont effectués que dans certaines matières.
Premier semestre
Obligatoire
Algorithmes et structures de données, partie 1
01Complexité et modèles informatiques. Analyse des valeurs comptables (début)
02Analyse des valeurs comptables (fin)
03Algorithmes de tri par fusion et de tri rapide
04Statistiques ordinales. Tas (début)
05Tas (fin)
06Hachage
07Rechercher des arbres (début)
08Rechercher des arbres (suite)
09Rechercher des arbres (fin). Système d'ensembles disjoints
10Problèmes de RMQ et LCA
11Structures de données pour la recherche géométrique
12Problème de connectivité dynamique dans un graphe non orienté
Formation linguistique C++, partie 1
C++ est un langage puissant avec un riche héritage. Pour ceux qui viennent de s'engager sur la voie de la maîtrise de cette langue, il est très facile de se perdre dans l'abondance de techniques et de techniques créées au cours des 30 dernières années. Le cours enseigne le "Modern C++" - un sous-ensemble moderne du langage (normes 11, 14 et 17). Une grande attention est accordée aux outils et aux bibliothèques - des éléments qui ne font pas partie du langage, mais sans lesquels il ne sera pas possible de construire un projet vaste et complexe.
01Introduction au C++.
02Constantes. Pointeurs et liens. Passer des arguments à une fonction.
03Cours.
04Gestion dynamique de la mémoire.
05Variables, pointeurs et références.
06Gestion mémoire, pointeurs intelligents, RAII.
07Bibliothèque de modèles standards.
08Héritage et fonctions virtuelles.
09Gestion des erreurs.
10Modèles de conception.
11Espaces de noms Sémantique de déplacement Transmission parfaite.
12Représentation des structures et des classes en mémoire. Alignement des données. Pointeurs vers les membres de la classe/méthodes. Modèles variés.
Apprentissage automatique, partie 1
01Concepts de base et exemples de problèmes appliqués
02Méthodes de classification métrique
03Méthodes de classification logique et arbres de décision
04Méthodes de classification linéaire des gradients
05Machine à vecteurs de support
06Régression linéaire multivariée
07Régression non linéaire et non paramétrique, fonctions de perte non standard
08Prévisions de séries chronologiques
09Méthodes de classification bayésienne
10Régression logistique
11Recherche de règles d'association
Deuxième mandat
Obligatoire
Apprentissage automatique, partie 2
01Méthodes de classification et de régression des réseaux neuronaux
02Méthodes compositionnelles de classification et de régression
03Critères de sélection des modèles et méthodes de sélection des fonctionnalités
04Classement
05Apprentissage par renforcement
06Apprendre sans professeur
07Problèmes avec une formation partielle
08Filtrage collaboratif
09Modélisation de sujets
Au choix
Algorithmes et structures de données, partie 2
01Bypass en largeur. Profondeur première traversée (début)
02 Analyse en profondeur (suite)
03 Analyse en profondeur (fin). 2 coupes
04Trouver les chemins les plus courts (début)
05Trouver les chemins les plus courts (suite)
06Arbres couvrant minimum
07Coupes minimales. Rechercher des sous-chaînes (début)
08Recherche de sous-chaînes (suite)
09Recherche de sous-chaînes (fin)
10Arbres de suffixes (début)
11Arbres de suffixes (fin). Tableaux de suffixes (début)
12Tableaux de suffixes (fin)
13Sous-chaînes communes les plus longues. Recherche approximative de sous-chaînes.
ou
Langage Python
01Bases du langage (partie 1)
02Bases du langage (partie 2)
03Programmation orientée objet
04Gestion des erreurs
05Conception et tests du code
06Travailler avec des chaînes
07Modèle de mémoire
08Programmation fonctionnelle
09Revue de la bibliothèque (partie 1)
10Revue de la bibliothèque (partie 2)
11Calcul parallèle en Python
12Travail avancé avec des objets
ou
Formation linguistique C++, partie 2
La deuxième partie du cours C++, qui couvre des sujets avancés et des capacités linguistiques.
01Programmation multithread. Synchronisation des threads à l'aide de mutex et de variables de condition.
02Variables atomiques. Modèle de mémoire C++. Exemples de structures de données sans verrouillage.
03Techniques avancées de méta-programmation en C++. Métafonctions, SFINAE, concepts.
04Programmation compétitive, interaction avec le réseau.
Architecture 05llvm. Travailler avec l'arbre d'analyse C++. Développement d'outils d'analyse de code C++.
Troisième semestre
Au choix
Traitement du langage naturel
« Le NLP (Natural Language Processing) est un sous-ensemble du domaine plus large de l’IA qui tente d’apprendre à un ordinateur à comprendre et à traiter des données brutes en langage naturel. La plupart des informations disponibles aujourd’hui ne sont pas des textes structurés. En tant qu’humains, bien sûr, il ne nous est pas difficile de les comprendre (s’ils sont dans notre langue maternelle), mais nous ne sommes pas capables de traiter autant de données qu’une machine pourrait le faire. Mais comment faire comprendre ces données à une machine et, en outre, en extraire certaines informations? Il y a plusieurs années, lors de l'ouverture de l'ACL (l'une des principales, sinon la plus importante conférence sur la PNL) dans son Discours présidentiel Marti Hearst a admis qu'elle ne pouvait plus donner aux étudiants son favori exercice. Prenant comme exemple HAL 9000 (un des exemples d’intelligence artificielle dans la science-fiction), elle a demandé aux étudiants ce que la machine pouvait faire comme HAL et ce qu’elle ne pouvait pas encore faire. Aujourd’hui, ce n’est plus un très bon exercice, puisque presque tout cela peut désormais être réalisé par un ordinateur. C'est incroyable à quelle vitesse le domaine se développe et tout ce que nous avons accompli. Dans le cours, nous essaierons de vous faire comprendre et ressentir ce qui se passe dans le monde. Quels problèmes sont résolus, comment cela se produit; comment certaines approches statistiques (auxquelles les cours de PNL étaient presque entièrement consacrés il y a quelques années) reçoivent une nouvelle vie et une nouvelle interprétation dans les réseaux de neurones, et lesquelles disparaissent progressivement. Nous montrerons que la PNL n'est pas un ensemble de paires (problème, solution), mais des idées générales qui pénètrent différents problèmes et reflètent un concept commun. Vous apprendrez également ce qui se passe dans la pratique et quand quelles approches sont les plus applicables. C'est ce que nous faisons, ce que nous aimons, et nous sommes prêts à le partager avec vous :)"
01 https://lena-voita.github.io/nlp_course.html
02 https://github.com/yandexdataschool/nlp_course
ou
Vision par ordinateur
"Le cours est consacré aux méthodes et algorithmes de vision par ordinateur, c'est-à-dire à l'extraction d'informations à partir d'images et de vidéos. Regardons les bases du traitement d'images, de la classification d'images, de la recherche d'images par contenu, de la reconnaissance faciale, de la segmentation d'images. Nous parlerons ensuite des algorithmes de traitement et d’analyse vidéo. La dernière partie du cours est consacrée à la reconstruction 3D. Pour la plupart des problèmes, nous discuterons des modèles de réseaux neuronaux existants. Au cours du cours, nous essayons de prêter attention uniquement aux méthodes les plus modernes actuellement utilisées pour résoudre les problèmes pratiques et de recherche. Le cours est en grande partie pratique plutôt que théorique. Par conséquent, tous les cours sont équipés de travaux pratiques et de devoirs qui vous permettent d'essayer la plupart des méthodes discutées dans la pratique. Le travail est effectué en Python en utilisant diverses bibliothèques."
01Imagerie numérique et correction tonale
02Bases du traitement d'images
03Assemblage d'images
04Classification des images et recherche d'images similaires
05Réseaux de neurones convolutifs pour la classification et la recherche d'images similaires
06Détection d'objet
07Segmentation sémantique
08Transfert de style et synthèse d'images
09Reconnaissance vidéo
10Reconstruction 3D éparse
11Reconstruction 3D dense
12Reconstruction à partir d'une image et de nuages de points, modèles paramétriques
ou
Méthodes bayésiennes en apprentissage automatique
01Approche bayésienne de la théorie des probabilités
02Inférence bayésienne analytique
03Sélection du modèle bayésien
04Détermination automatique de la pertinence
05 Méthode vectorielle de pertinence pour le problème de classification
06Modèles probabilistes à variables latentes
07Inférence bayésienne variationnelle
08Modèle bayésien de séparation de mélange de gaussiennes
09Méthodes de Monte Carlo avec chaînes de Markov
10Allocation latente de Dirichlet
11Processus gaussiens de régression et de classification
12Méthodes bayésiennes non paramétriques
Quatrième semestre
Obligatoire
Pratique de l'ingénierie ML
Le cours est un travail de projet sur le développement de projets ML en équipes.
Pratique de recherche en ML
Le cours représente un travail sur des projets de recherche en équipe dans le domaine de l'apprentissage automatique.
Cours spéciaux recommandés
L'apprentissage en profondeur
01Support de cours
Apprentissage par renforcement
01Support de cours
Voitures autonomes
Le cours couvre les composants essentiels de la technologie de conduite autonome: localisation, perception, prédiction, niveau comportemental et planification des mouvements. Pour chaque composante, les principales approches seront décrites. De plus, les étudiants se familiariseront avec les conditions actuelles du marché et les défis technologiques.
01Aperçu des principaux composants et capteurs d'un véhicule sans pilote. Niveaux d'autonomie. Conduit par cable. Les voitures autonomes en tant que produit commercial. Moyens d'évaluer les progrès dans la création de drones. Bases de localisation: GNSS, odométrie des roues, filtres bayésiens.
02Méthodes de localisation Lidar: ICP, CND, LOAM. Introduction au SLAM visuel en utilisant ORB-SLAM comme exemple. Énoncé du problème GraphSLAM. Réduire le problème GraphSLAM à une méthode des moindres carrés non linéaires. Sélection du bon paramétrage. Systèmes avec une structure spéciale dans GraphSLAM. Approche architecturale: frontend et backend.
03Tâche de reconnaissance dans une voiture autonome. Obstacles statiques et dynamiques. Capteurs pour le système de reconnaissance. Représentation d'obstacles statiques. Détection d'obstacles statiques par lidar (VSCAN, méthodes de réseaux de neurones). Utilisation du lidar en conjonction avec des images pour détecter des statiques (segmentation sémantique d'images, complétion en profondeur). Caméra stéréo et obtention de la profondeur d'une image. Monde Stixel.
04Représentation d'obstacles dynamiques dans une voiture autonome. Méthodes de réseaux de neurones pour détecter des objets en 2D. Détection basée sur la vue à vol d'oiseau de la représentation des nuages lidar. Utilisation du lidar avec des images pour détecter les obstacles dynamiques. Détection de voitures en 3D à partir d'images (montage de caissons 3D, modèles CAO). Détection dynamique d'obstacles basée sur le radar. Suivi d'objets.
05Modèles de conduite automobile: roue arrière, roue avant. Planification de trajectoire. Le concept d'espace de configuration. Méthodes graphiques pour construire des trajectoires. Trajectoires qui minimisent les à-coups. Méthodes d'optimisation pour la construction de trajectoires.
06Planification de vitesse dans un environnement dynamique. Planification ST. Prédire le comportement des autres usagers de la route
Méthodes neuro-bayésiennes
Le cours se concentre sur l'application des méthodes bayésiennes en apprentissage profond. Les conférences porteront sur l'utilisation de la modélisation probabiliste pour construire des modèles de données génératifs, l'utilisation de modèles concurrents réseaux pour l'inférence approximative, la modélisation de l'incertitude dans les paramètres des réseaux neuronaux et certains problèmes ouverts en profondeur entraînement.
01Inférence variationnelle stochastique
02Inférence variationnelle doublement stochastique
03Auto-encodeur variationnel, normalisant les flux pour l'inférence variationnelle
04Méthodes de réduction de la variance dans les modèles à variables latentes
05Estimation du rapport des densités de distribution, application à l'aide de l'exemple de \alpha-GAN
06Réseaux de neurones bayésiens
07Compression bayésienne des réseaux de neurones
08Inférence variationnelle semi-implicite