La descente de gradient (stochastique) | Intelligence artificielle 42

preview_player
Показать описание
On parle du plus important algorithme d'apprentissage des IA d'aujourd'hui (et sans doute du futur) : la descente de gradient stochastique.

La formule du savoir (mon livre) :
A Roadmap for the Value-Loading Problem

Moi en podcast avec Mr Phi :

Рекомендации по теме
Комментарии
Автор

Content que tu ré-abordes enfin les sujets plus techniques. Je commençait à trouver que la série tirait en longueur.

x_krma
Автор

Grâce à ta vidéo j'ai enfin trouvé la réponse a la grande question de la vie, de l'univers et du reste!

naonedtroll
Автор

Excellent! Ta vidéo m'a permis de comprendre pourquoi je devais utiliser la root mean square error pour comparer des méthodes de forecast pendant mon stage. (C'est pas le but de la vidéo mais c'est ce que j'en retiens!) Merci encore de partager toutes ces connaissances! Au passage, ta chaîne m'a bcp encouragée à me lancer dans des études de stats :)

TheSymboles
Автор

Ça serait tellement plus simple si on avait une puissance de calcul infinie

DIMENSIN
Автор

Pour débuter, mieux vaut utiliser keras qui est une surcouche de tensorflow. Et python reste maître dans ce domaine même si le langage R est aussi pas mal utilisé. Pour info, je bosse sur les réseaux de neurones depuis quelques mois et sans avoir trop de compétences mathématiques on arrive quand même à capter le principe et sortir des trucs assez étonnants. Après, force est de constater que oui... Les maths sont nécessaires quand on veut aller plus loin. Et ta chaîne m'a énormément aidé à reprendre le pli. Merci à toi. PS je prépare une chaîne pour la vulgarisation informatique... Ça prend du temps mais je vais y arriver, j'essaie de faire un truc qualitatif. Et j'y parlerai de réseau de neurones un jour 😁

PatriceFERLET
Автор

pour les developpeur, il y a pyTorch aussi, typiquement un reseau de neurones c'est quasiment que du calcul matriciel

xxiemeciel
Автор

C'est surprenant comme ses "machines" se rapprochent de plus en plus des humains . En effet avec la descente de gradient stochastique, on en revient avec notre système d'éducation où les élèves doivent comprendre un certains nombre de donnés élémentaire (math, langues, chimie, ...). Pour arriver à des systèmes plus complexes et plus précis. Au fond, on ne fais que recopier le modèle de la nature. Peut être qu'un jour, une machine nous expliquera comment les êtres humains fonctionne. Merci pour cette vidéo très claire ^^ (désolé pour l'orthographe)

avcools
Автор

Encore une super vidéo! Bravo d'avoir parlé de Thibault Neveu qui apprend vraiment bien le code en IA :)
Si on compare vraiment les réseaux de neurones informatiques à ceux biologiques, on remarque une différence majeur: les neurones font une sommation des signaux qui leur arrivent, mais cependant ils ne leurs mettent pas de coefficients ni de poids. La richesse du réseau tient donc beaucoup de sa structure. Ne pourrait on pas appliquer cela à l'informatique en ne changeant pas au fur et à mesure les paramètres du réseau, mais sa structure?

aymericmelt
Автор

Super résumé pour inintelligence artificielle

aliouldkradda
Автор

Pour programmer, il suffit de suivre le cours de Stanford sur le machine learning, les 2 ou 3 chapitres sur les réseaux de neurones, avec Matlab ou Octave. Sinon on trouve aussi quelques tuto en Python qui n'utilisent pas TensorFlow, pour apprendre le fonctionnement

antoine-lwvg
Автор

Le problème du gradient, c'est qu'il permet de chercher des minimum locaux. Avec de la malchance, le gradient peut se retrouver coincé dans une "cuvette", surtout si les pas de l'algorithme sont petits (plus les pas sont petits, plus il y a de risque de se retrouver coincé autour d'un minimum local qui n'est pas forcément bon du point de vue global).

Si on connait mal la topologie de l'espace des paramètres, est-ce que ça ne serait pas une bonne idée de combiner les méthodes. Etape 1, du Monte Carlo grosse maille pour ensemencer l'espace des paramètres de manière globale (on jette les algos de la génération 0 au hasard dans l'espace des paramètres). Puis étape 2 on fait se reproduire les algo via évolution génétique des algos primordiaux, pour faire émerger les mode d'exploration adaptés à chaque zone (certains gènes propices au gradient, d'autre à la marche aléatoire, d'autre à une marche en spirale, etc.) en récompensant ceux qui font des bonnes descentes. Et enfin, quand ils ont peuplé l'espace (en se concentrant autour des zones propices à être un minimum), une étape 3 où on fait exporer très localement à l'aide d'un gradient stochastique chaque zone intéressante pour finir par garder le (ou les) minimum(s) les plus intéressants.

Автор

Pour compléter ta réponse à la question de Gamer1213M : je suis dans une boîte d'info où, entre autres, on manipule des réseaux de neurones : ceux qui s'en occupent utilisent en effet du Python.

entropia
Автор

Super vidéo encore !
J'essaie de recréer un réseau de neurones en Java à partir de 0 et je rencontre un problème...
Vu que notre réseau apprend par "set" de données, quelles valeurs d'inputs un neurone doit utiliser pour calculer sont gradient et modifier ses coefficients ? Le réseau doit-il utiliser un des exemples du set de données pour que chaque neurones se règle, ou également une moyenne comme pour l'erreur, ou encore autre chose ?..
Merci si quelqu'un peut m'éclairer :)

antoinegiordano
Автор

Est-ce qu'on ne peut pas tomber sur des minimums locaux et est-ce qu'il existe des méthodes pour le voir et l'éviter ?
Et autre question, mais qui sera probablement abordé dans le prochain épisode, qu'est-ce que c'est la fonction de perte ?

joelbecane
Автор

PyTorch/TensofrFlow avec binding Pyton qui doivent représenter 95% des développement Deep. Sinon MatconvNet pour un binding Matlab. Toutes ces boites sont pluggées avec CudaNN pour l’accélération GPU dans tous les cas.

sebydocky
Автор

Super vidéo ! Mais avec la descente de gradient, le réseau de neurones ne risque-t-il pas de tomber sur un minimum local stable, qui empêcherait de trouver le minimum global ?

apeiron-logos
Автор

Pour coder un réseau de neurones, on peut écrire une librairie dans n'importe quel langage. Au final, on est juste en train de calculer une composition de non-linéarité et de multiplication et addition de matrices donc le concept de base est assez simple. Cependant pour débuter, Tensorflow est un très bon pari, si vous voulez une libraire encore plus haut niveau (donc plus facile d'utilisation car built on top of Tensorflow) c'est Keras. PS: les API les plus développées pour ces libraires sont en Python
Aussi, pour les algorithmes génétiques (et plus généralement l'Evolutionary Computing) on n'a pas obligatoirement une population constitué d'IAs mais peu aussi être un nuage de points pour lesquels on va évaluer leur valeurs par une fonction qu'on doit optimiser dans le cadre de Black-Box Optimization entre autres.

MinecraftOtaku
Автор

À noter que les versions modernes d'algorithmes génétiques pour problèmes numériques ont convergées (indépendamment, et sans doute même avant) vers le même type de schéma que la descente de gradient stochastique. Ont commence même à avoir des frameworks commun de réflexion via des outils de… géométrie différentielle.

johann
Автор

Pour apprendre le machine learning il n'y a pas que TensorFlow, il y a aussi SciKit-Learn:
Désolé pour le coup de pub ;)

christopherwurtz
Автор

Aaah, passionnant ça ! On arrive à des questions vraiment brûlantes ! À propos, je m'interroge : la descente de gradient stochastique est tout sauf révolutionnaire, ça existe depuis des décennies. Depuis, personne n'a rien trouvé de plus performant ? Et aussi, est-ce que tous les mathématiciens qui se lancent dans l'IA (il y en a littéralement des tonnes) se condamnent à faire de la recherche incrémentale sur une technique aussi vieille que le gradient stochastique ? Je veux dire, depuis le temps que les gens étudient ça, ça doit être incroyablement difficile de découvrir de nouveaux résultats pertinents sur le sujet non ? J'ai l'impression que le domaine est un peu saturé, niveau recherche... Ne reste-t-il que les questions ultra difficiles sur lesquelles les plus grands se sont cassé les dents, ou bien y a-t-il encore des domaines en friche pour toute la génération de mathématiciens qui déferle dans le domaine de l'IA ?

SMH