IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Affichage des résultats du sondage: Quels sont les meilleurs langages de programmation pour l'IA ?

Votants
70. Vous ne pouvez pas participer à ce sondage.
  • Python

    39 55,71%
  • Java

    13 18,57%
  • C

    10 14,29%
  • C++

    32 45,71%
  • JavaScript

    5 7,14%
  • R

    8 11,43%
  • Lua

    4 5,71%
  • Julia

    3 4,29%
  • Swift

    0 0%
  • MATLAB

    0 0%
  • Scala

    0 0%
  • Autres (précisez dans les commentaires)

    6 8,57%
Sondage à choix multiple
Intelligence artificielle Discussion :

Sondage : quels sont les meilleurs langages de programmation pour l'IA ?


Sujet :

Intelligence artificielle

  1. #1
    Chroniqueuse Actualités
    Avatar de Blondelle Mélina
    Femme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2018
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2018
    Messages : 93
    Points : 2 294
    Points
    2 294
    Par défaut Sondage : quels sont les meilleurs langages de programmation pour l'IA ?
    Sondage : quels sont les meilleurs langages de programmation pour l'IA ?
    Quels sont vos critères ?

    De nombreux développeurs se lancent progressivement dans le développement d'applications pour l'IA. D'un programme sophistiqué à un autre programme sophistiqué, on peut repérer en arrière plan l'utilisation répétée des langages de programmation tels que : Python, Java (et ses frères Scala, Kotlin, Clojure), C/C++, JavaScript ou le langage R. Au-delà de ces 5 langages de programmation populaires pour l'IA, s'ajoutent d'autres langages comme Lua, Julia, et Swift.

    Nom : i.jpg
Affichages : 199185
Taille : 7,1 Ko

    Python

    Il existe suffisamment de bibliothèques disponibles en Python. NumPy pour les opérations de tenseurs. Pandas qui rend flexible l’importation des données de R à Python. Pour le traitement du langage naturel (NLP en anglais), les bibliothèques NLTK et SpaCy sont disponibles. Pour l'apprentissage automatique, il y a Scikit-learn. Et quand il s'agit de l'apprentissage profond, toutes les bibliothèques actuelles (TensorFlow, PyTorch, Chainer, Apache MXNet, Theano, etc.) sont effectivement des projets Python-first.
    Bref, la communauté Python travaille d’arrache-pied pour rendre l’utilisabilité du langage très flexible avec des bibliothèques bien fournies.

    Java et ses frères

    La famille de langages JVM (Java, Scala, Kotlin, Clojure, etc.) est aussi un excellent choix pour le développement d'applications IA. De nombreuses bibliothèques disponibles pour le traitement du langage naturel (CoreNLP), des opérations de tenseurs (ND4J) ou d'une pile d'apprentissage profond (DL4J : DeepLearning4J) accélérée par le processeur graphique. De plus, les développeurs bénéficient d'un accès facile aux grandes plateformes de données comme Apache Spark et Apache Hadoop.

    Scala

    Scala est récemment devenu un autre langage important pour l'analyse rapide des données. Il a gagné en popularité principalement en raison de la montée de Spark, un grand moteur de traitement de données de choix, qui est écrit en Scala et fournit ainsi une API native à Scala. Breeze est connue comme la principale bibliothèque pour Scala. Breeze fournit des manipulations rapides et efficaces avec des tableaux de données, et permet la mise en œuvre de nombreuses autres opérations, y compris les opérations matricielles et vectorielles, les probabilités et fonctions statistiques, l'optimisation, les opérations de traitement du signal, etc.

    C/C++

    Le choix du C/C ++ est peu probable lors du développement d'une application IA. Mais pour ceux qui travaillent dans un environnement intégré, et qu'ils ne peuvent pas payer le surcoût d'une machine virtuelle Java ou d'un interpréteur Python, C/C ++ est la solution. Lorsqu’on a besoin d'exploiter les dernières performances du système, il faut retourner dans le monde (terrifiant pour certains) des pointeurs. Mais, le C/C ++ moderne est agréable, car offre de multiples approches. Les développeurs peuvent soit plonger au bas de la pile, en utilisant des bibliothèques comme CUDA pour écrire leur programme qui s'exécute directement sur le GPU, ou ils peuvent utiliser TensorFlow ou Caffe pour accéder à des API de haut niveau flexibles.

    JavaScript

    Google avait publié TensorFlow.js, une bibliothèque accélérée par WebGL qui permet de former et d'exécuter des modèles d'apprentissage automatique dans le navigateur Web. Il inclut également l'API Keras et la possibilité de charger et d'utiliser des modèles qui ont été formés dans TensorFlow standard. Bien que JavaScript n'a pas actuellement le même accès aux bibliothèques d'apprentissage automatique que les autres langages cités plus haut, les développeurs ajouteront bientôt des réseaux de neurones à leurs pages Web avec presque la même aisance que s'ils ajoutaient une propriété CSS.
    TensorFlow.js est encore à ses débuts. Pour l'instant, cela fonctionne dans le navigateur, mais pas dans Node.js. Il n'implémente pas encore l'API TensorFlow complète.

    R

    R est le langage que les scientifiques de données aiment. Cependant, d'autres programmeurs trouvent R un peu confus quand ils le rencontrent pour la première fois, en raison de son approche centrée sur les données. Pour un groupe dédié de développeurs R, il peut être judicieux d'utiliser les intégrations avec TensorFlow, Keras ou H2O pour la recherche, le prototypage et l'expérimentation.

    Lua

    Il y a quelques années, Lua montait dans le monde de l'intelligence artificielle. Avec le framework Torch, Lua était l'un des langages les plus populaires pour le développement de l'apprentissage profond. Et il existe toujours beaucoup de travail d'apprentissage profond sur GitHub qui définissent les modèles avec Lua/Torch. Avec l'arrivée de frameworks tels que TensorFlow et PyTorch, l'utilisation de Lua a considérablement diminué.

    Julia

    Julia est un langage de programmation de haut niveau, performant et dynamique pour le calcul scientifique, avec une syntaxe familière aux utilisateurs d'autres environnements de développement similaires (MATLAB, R, Scilab, Python, etc.). Ce qui en fait un bon choix dans le monde mathématique de l'IA. Bien que ce ne soit pas très populaire en tant que choix de langue en ce moment. Les wrappers comme TensorFlow.jl et Mocha (fortement influencés par Caffe) offrent un bon support d'apprentissage profond.

    Swift

    Chris Lattner, créateur du compilateur LLVM et du langage de programmation Swift, a annoncé Swift pour TensorFlow. Swift pour TensorFlow permet d'importer des bibliothèques Python telles que NumPy et de les utiliser dans le code Swift presque comme avec n'importe quelle autre bibliothèque.

    MATLAB

    MATLAB rend les parties difficiles de l'apprentissage automatique faciles avec des applications « pointer-cliquer » pour former et comparer des modèles, des techniques avancées de traitement du signal et d'extraction de caractéristiques, sélection des fonctionnalités pour optimiser les performances d'un modèle, la possibilité d'utiliser le même code pour étendre le traitement aux big data et aux clusters, etc.

    Et vous ?

    Qu'en pensez-vous ?
    Quels sont les langages de programmation que vous estimez meilleurs pour l'IA ? Pourquoi ?

    Voir aussi :

    Quels sont les meilleurs langages de programmation en 2017 ? Et pourquoi ? Java, C# et C++ seraient-ils encore les préférés des développeurs ?
    Programmation : découvrez les sept raisons pour lesquelles vous devez apprendre le langage Python, selon myTectra
    Quels langages utilisez-vous pour le développement de systèmes embarqués ?

  2. #2
    Membre éclairé Avatar de Matthieu76
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2013
    Messages
    568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 568
    Points : 891
    Points
    891
    Par défaut
    Personnellement je développe ma propre librairie de réseaux de neurones en C++ mais si c'était à refaire j'utiliserais TensorFlow (en Python), ça m'aurais pris 100 fois moins de temps.
    D'ailleurs si des personnes veulent m'aider dans mon projet, vous êtes les bienvenus.

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Décembre 2011
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 68
    Points : 342
    Points
    342
    Par défaut
    L'IA c'est avant tout beaucoup beaucoup d'intégration, chez nous le langage de glue (java) c'est imposé comme premier choix, celui ci à des performances correcte et une large (la plus large) gamme de bibliothèques sur tous les sujets.

    Ensuite viennent les traditionnels Lisp et Prolog, en gros dès qu'il y a un besoin de réflexivité avec un gros besoin de puissance de raisonnement ils apparaissent, trop de bibliothèques incontournables en Lisp, et Prolog dispose des deux meilleurs bibliothèques de CSP (Eclipse Prolog et Swipl clpfd) -> incontournable.

    Quand on en vient au deeplearning, python(2.7) est encore la référence, même si les libs sont passés en python(3) récemment(TensorFlow, Keras), malgré tout Java(nd4j, dl4j, sparkml,...) et C++(Cudnn, Caffee, etc...) ont de beaux jours devant eux. R & Matlab restant confinés à des taches 'non intégré' soit pour de la prestation (interne ou non) d'analyses pour des articles de recherche.

    Sinon en général je vois du C & C++ avec parfois des SML (Ocaml); mention spécial pour Rust qui débarque tout juste.

    Quelqu'un à dit Excel ? Oui pour l'analyse des erreurs et la visualisation.


    Je ne vois même comment on peut faire une chronique sur l'IA en parlant de swift & javascript sans parler de Lisp et Prolog.... à croire que pour certains l'IA a commencé il y a 5 ans.

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    2 018
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2017
    Messages : 2 018
    Points : 6 315
    Points
    6 315
    Par défaut
    Quels sont les meilleurs langages de programmation pour l'IA ?

    La vraie question serait plutôt de savoir qui fait vraiment du développement d'applications IA ?

    En réalité, je pense que les intervenants du site developpez.com qui font de la vraie IA se comptent sur les doigts d'une main!

    Pour information:

    1. Automatiser un processus ou développez un algorithme d'apprentissage, ce n'est pas de l'IA

    2. L'IA n'est actuellement qu'un effet de mode qui a d'ailleurs pris longtemps à prendre, on en parlait déjà dans les années 70!

    Petite définition de l'IA du Dictionnaire de l'informatique (datant de 1975!) de André Le Garff:

    Le concept d’intelligence artificielle forte fait référence à une machine capable non seulement de produire un comportement intelligent, mais d’éprouver une impression d'une réelle conscience de soi, de « vrais sentiments » (quoi qu’on puisse mettre derrière ces mots), et « une compréhension de ses propres raisonnements »
    A la lecture de la définition de l'IA ci-dessus, je corrige... Il n'y a pas un seul participant de ce sondage à faire du développement en IA

    PS: Vu que l'on affuble à n'importe quel projet le titre de "IA", effectivement pourquoi ne pas mentionner comme langage Excel, voir même le nuage de fumée des amérindiens ou les concerts de "tam-tam" si présents dans les films hollywoodiens des années 30 de la série Tarzan...

  5. #5
    Expert confirmé Avatar de sergio_is_back
    Homme Profil pro
    Consultant informatique industrielle, développeur tout-terrain
    Inscrit en
    Juin 2004
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique industrielle, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 172
    Points : 5 966
    Points
    5 966
    Par défaut
    Citation Envoyé par Anselme45 Voir le message
    A la lecture de la définition de l'IA ci-dessus, je corrige... Il n'y a pas un seul participant de ce sondage à faire du développement en IA

    PS: Vu que l'on affuble à n'importe quel projet le titre de "IA", effectivement pourquoi ne pas mentionner comme langage Excel, voir même le nuage de fumée des amérindiens ou les concerts de "tam-tam" si présents dans les films hollywoodiens des années 30 de la série Tarzan...
    C'est vrai que les applications de l'IA proposées sont alléchantes : https://www.developpez.net/forums/d1.../#post10350362

    et https://www.developpez.com/actu/2137...-artificielle/

    Pour essayer de niquer la secrétaire du troisième ? Plutôt Java, Python, OCaml ?

  6. #6
    Membre émérite Avatar de onilink_
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    610
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 610
    Points : 2 497
    Points
    2 497
    Par défaut
    Citation Envoyé par Anselme45 Voir le message
    A la lecture de la définition de l'IA ci-dessus, je corrige... Il n'y a pas un seul participant de ce sondage à faire du développement en IA

    PS: Vu que l'on affuble à n'importe quel projet le titre de "IA", effectivement pourquoi ne pas mentionner comme langage Excel, voir même le nuage de fumée des amérindiens ou les concerts de "tam-tam" si présents dans les films hollywoodiens des années 30 de la série Tarzan...
    Normal, tu nous sors la définition d'IA forte. Ça a rien a voir avec le terme général d'IA utilisé en développement, dont la définition est plutôt:
    Citation Envoyé par wikipedia
    In computer science AI research is defined as the study of "intelligent agents": any device that perceives its environment and takes actions that maximize its chance of successfully achieving its goals.
    Et a ce niveau, on est bien plus a faire de l'IA que ce que tu peux dire.
    Faire un bot dans un jeu c'est de IA (à l'ancienne), faire de la reconnaissance d'objet c'est de l'IA.
    Automatiser des taches complexes qui nécessitent à la base un humain c'est faire de l'IA.

  7. #7
    Membre averti
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Décembre 2011
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 68
    Points : 342
    Points
    342
    Par défaut
    Citation Envoyé par Anselme45 Voir le message


    A la lecture de la définition de l'IA ci-dessus, je corrige... Il n'y a pas un seul participant de ce sondage à faire du développement en IA
    D'après la définition que tu as trouvé je fais de l'IA.

    Ps : après ce n'est pas encore cette IA qui me fait vivre car elle ne fonctionne pas encore. Mais on essaye.

  8. #8
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    2 018
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2017
    Messages : 2 018
    Points : 6 315
    Points
    6 315
    Par défaut
    Citation Envoyé par onilink_ Voir le message
    Et a ce niveau, on est bien plus a faire de l'IA que ce que tu peux dire.
    Faire un bot dans un jeu c'est de IA (à l'ancienne), faire de la reconnaissance d'objet c'est de l'IA.
    Automatiser des taches complexes qui nécessitent à la base un humain c'est faire de l'IA.
    Même si tu prends la définition la plus basique (celle du Larousse): L'intelligence artificielle (IA) est « l'ensemble de théories et de techniques mises en œuvre en vue de réaliser des machines capables de simuler l'intelligence », tes exemples ne sont pas de l'IA! Ou plutôt... Tout est intelligence artificielle, tellement la définition est floue: Cela veut dire quoi "simuler l'intelligence"? Si on t'écoute, un simple jeu de sudoku développé lors d'un travail pratique d'un cours d'introduction à l'informatique d'une heure est de l'IA!

    1. Faire un bot, faire de la reconnaissance d'objet ne nécessitent pas de faire appel à de l'IA! C'est juste un algo qui singe de l'IA... Tu peux faire un bot en listant une série de réponses type que tu déclenches en identifiant certains critères, tu peux reconnaître des objets en listant les caractéristiques identifiant un objet: Le fruit "orange" = couleur:orange / forme: ronde / surface: non lisse.

    2. "Automatiser des tâches complexes qui nécessitent à la base un humain" se fait depuis des décennies dans toutes les industries: cela se nomme de l'automation industrielle, cela se réalise à l'aide de capteurs de toute nature connectés à un API (Automate Programmable Industriel)... On y trouve pas le moindre bit d'IA...

  9. #9
    Membre émérite Avatar de onilink_
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    610
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 610
    Points : 2 497
    Points
    2 497
    Par défaut
    Citation Envoyé par Anselme45 Voir le message
    Même si tu prends la définition la plus basique (celle du Larousse): L'intelligence artificielle (IA) est « l'ensemble de théories et de techniques mises en œuvre en vue de réaliser des machines capables de simuler l'intelligence », tes exemples ne sont pas de l'IA!

    1. Faire un bot, faire de la reconnaissance d'objet ne nécessitent pas de faire appel à de l'IA! C'est juste un algo qui singe de l'IA... Tu peux faire un bot en listant une série de réponses type que tu déclenches en identifiant certains critères, tu peux reconnaître des objets en listant les caractéristiques identifiant un objet: Le fruit "orange" = couleur:orange / forme: ronde / surface: non lisse.
    Prouve moi que tu ne singe pas toi même de l'intelligence et on en reparlera.

    Citation Envoyé par Anselme45 Voir le message
    2. "Automatiser des tâches complexes qui nécessitent à la base un humain" se fait depuis des décennies dans toutes les industries: cela se nomme de l'automation industrielle, cela se réalise à l'aide de capteurs de toute nature connectés à un API (Automate Programmable Industriel)... On y trouve pas le moindre bit d'IA...
    Non, je ne parle pas de juste automatiser. Automatiser ça se fait même depuis que la mécanique existe. Et quand y a une pièce un peu décalée dans la chaîne de production, on voit d'ailleurs bien les dégâts.
    Je parle de choses qui nécessitent la supervision d'un humain, car il faut s'adapter.

    Par exemple lire ce qui est écrit sur tes chèques, l'adresse sur les enveloppes. C'est de l'IA. Ça s'adapte au style d'écriture, ça utilise les informations que ça connaît pour résoudre les situations que ça ne connaît pas.

    Edit (vu que j'ai quote un ancien message):
    Citation Envoyé par Anselme45 Voir le message
    Ou plutôt... Tout est intelligence artificielle, tellement la définition est floue: Cela veut dire quoi "simuler l'intelligence"? Si on t'écoute, un simple jeu de sudoku développé lors d'un travail pratique d'un cours d'introduction à l'informatique d'une heure est de l'IA!
    Oui si tu mélange IA et bruteforce on est pas sorti. En revanche je suis d'accord sur un point, la définition est floue, et ce n'est pas vraiment nouveau.
    Si on comprenait l'intelligence, on aurait pas autant de mal a la reproduire ou au moins a savoir ce qui est sensé la prouver ou non.

    Petit rappel historique: avant qu'un ordinateur ne batte le champion du monde d'échecs, savoir jouer aux échecs était considéré comme signe d'intelligence, propre a l'homme.
    Puis on s'est rendu compte qu'une bonne heuristique et de la puissance de calcul faisaient l'affaire.
    Il y a eu ensuite Go, qui était très difficile justement a cause de l'explosion du nombre de possibilités. Le bruteforce n'était plus envisageable.

    Puis y a la reconnaissance d'image, la capacité de créer à partir de rien... tout ça on a très bien montré qu'il était en fait possible de le faire faire à un ordinateur.

    Je crois que beaucoup de personnes prennent la définitions d'intelligence dans un sens trop anthropocentrique.

  10. #10
    Membre actif
    Homme Profil pro
    Fondateur Mélodium.tech
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Fondateur Mélodium.tech

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Points : 214
    Points
    214
    Par défaut
    Citation Envoyé par Blondelle Mélina Voir le message
    Le choix du C/C ++ est peu probable lors du développement d'une application IA.
    Cette est remarque très étonnante. Je travaille dans la recherche en apprentissage automatique, et il serait bien difficile de se passer de ce tandem.

    Pour l'évaluation des performances (en termes de résultats d'apprentissage), l'utilisation de Python pour effectuer les liaisons entre systèmes qui sont eux développés en C++ est courante, ou encore l'usage de Java sur toute la ligne. Mais une fois les bons vecteurs d'apprentissage en entrée et l'algorithme le plus apte déterminés, on passe très généralement à une implémentation C/C++ intégrale, surtout pour des questions de performance (d'autres langages compilables en code machine commencent aussi à montrer le bout de leur nez, tel que Go).
    Le problème est aussi de pouvoir exploiter les performances des calculateurs, et là à part C/C++ et Fortran à renforts de MPI et OpenMP, il n'y a pas grand chose de disponible.

  11. #11
    Membre averti
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Décembre 2011
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 68
    Points : 342
    Points
    342
    Par défaut
    Citation Envoyé par qvignaud Voir le message
    Le problème est aussi de pouvoir exploiter les performances des calculateurs, et là à part C/C++ et Fortran à renforts de MPI et OpenMP, il n'y a pas grand chose de disponible.
    Cuda, Cudnn (Nvidia) ; Mkl (Intel) mais là encore c'est du C/C++/Fortran.
    En IA les performances comptent; l'overclock est toujours d'actualité.

  12. #12
    Membre actif
    Homme Profil pro
    Fondateur Mélodium.tech
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Fondateur Mélodium.tech

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Points : 214
    Points
    214
    Par défaut
    Citation Envoyé par gallima Voir le message
    Cuda, Cudnn (Nvidia) ; Mkl (Intel)
    Oui tout à fait, et d'ailleurs ceux-ci font sens également pour une machine seule (ce qui parfois est déjà bien suffisant) !

  13. #13
    Membre éclairé Avatar de Matthieu76
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2013
    Messages
    568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 568
    Points : 891
    Points
    891
    Par défaut
    Citation Envoyé par gallima Voir le message
    En IA les performances comptent; l'overclock est toujours d'actualité.
    Oui, mais un bon algorithme prévaudra toujours par rapport au performance. Rappelez-vous que l'on a envoyer un homme sur la lune avec la puissance de calcul d'un calculatrice. De plus TensorFlow permet d'utiliser la puissance du GPU juste avec du Python sans aucune ligne venant d'un autre language.

  14. #14
    Membre averti
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Décembre 2011
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 68
    Points : 342
    Points
    342
    Par défaut
    Citation Envoyé par Matthieu76 Voir le message
    Oui, mais un bon algorithme prévaudra toujours par rapport au performance. Rappelez-vous que l'on a envoyer un homme sur la lune avec la puissance de calcul d'un calculatrice.
    Niveau algorithmique c'est vrai qu'on peut presque toujours faire mieux. Mais il arrive un moment où soit l'on dispose de preuves d’optimalités soit l'on montre que le temps de dev coûte beaucoup plus chère que des machines sur-boosté. Le modèle commercial des instances C5 chez Amazon est directement dans cet axe.

    Aller sur la lune c'était simple à coté des problèmes d'IA : tout les calculs de trajectoires pouvaient être fait à la main depuis la Terre longtemps à l'avance; et comme l'a montré la mission Apollo 13, des corrections à la main était faisable.

    Citation Envoyé par Matthieu76 Voir le message
    De plus TensorFlow permet d'utiliser la puissance du GPU juste avec du Python sans aucune ligne venant d'un autre language.
    Sans Cuda pas de TensorFlow rapide; le centre de la performance de cette lib est en Nvcc / C++, souvent la lib C++ dans tensorflow est pré-encapsulé pour ne pas effrayer les dev pythons, Ne parlons pas de numpy qui est elle aussi optimisé dans des langages low-level. La partie algorithme en deeplearning est rapidement dépassé par les besoins empiriques/expérimentaux pour trouver des modèles qui fonctionnent. La performance brute est indispensable et c'est elle qui a rendu possible le buzz actuel autour de l'IA.

    Aujourd’hui les systèmes de deep-learning consomment beaucoup plus de puissance de calcul pendant les développement que pendant l'exploitation.

  15. #15
    Membre actif
    Homme Profil pro
    Fondateur Mélodium.tech
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Fondateur Mélodium.tech

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Points : 214
    Points
    214
    Par défaut
    Citation Envoyé par Matthieu76 Voir le message
    Oui, mais un bon algorithme prévaudra toujours par rapport au performance.
    Loin de là !
    Souvent plusieurs algorithmes engendrent des résultats similaires, et dès lors on prend le moins gourmand en ressources temps/mémoire.

    Et encore, il arrive qu'un algorithme donne des f-mesures inférieures à un autre, mais qu'on le prenne quand même car suffisant pour ce que l'on veut en faire derrière, au vu des ressources réclamées par celui ayant les meilleurs scores. Pour beaucoup de situations les réseaux de neurones sont une usine à gaz comparés à d'autres algorithmes, beaucoup plus efficients.

  16. #16
    Membre actif
    Homme Profil pro
    Fondateur Mélodium.tech
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Fondateur Mélodium.tech

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Points : 214
    Points
    214
    Par défaut
    Citation Envoyé par gallima Voir le message
    Aujourd’hui les systèmes de deep-learning consomment beaucoup plus de puissance de calcul pendant les développement que pendant l'exploitation.
    L'établissement du modèle est effectivement souvent la tâche la plus lourde, une fois établi son exploitation est relativement triviale pour la plupart des machines.

  17. #17
    Membre éclairé Avatar de Matthieu76
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2013
    Messages
    568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 568
    Points : 891
    Points
    891
    Par défaut
    Je pense vraiment que les algorithmes d'apprentissage des réseaux de neurones sont actuellement peu performant et que l'on blinde la puissance de calculs pour palier ce manque d'efficacités. Même si je n'ai encore compris/étudier aucun article dépassant l'an 2000 j'ai l'impression que l'on a pas trop progresser depuis, on a juste 1000 fois plus de puissance de calculs. Après faudrait vraiment un expert dans le domaine pour pouvoir m'éclairer.

  18. #18
    Membre émérite Avatar de onilink_
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    610
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 610
    Points : 2 497
    Points
    2 497
    Par défaut
    Je sais pas si tu parles de la descente de gradient en elle même ou les méthodes d'apprentissage plus "haut niveau" qui se basent sur ça.
    La descente du gradient je doute qu'on trouve vraiment mieux, vu qu'y a pas 36000 façons de minimiser une fonction de manière efficace.
    En tant que tel c'est déjà plutôt rapide, mais forcement quand tu as un réseau gigantesque il faut tout autant de données et de calculs, et ça ne peux pas se faire d'un coup de baguette magique.

    Par contre au niveau des méthodes "haut niveau", il y a régulièrement des découvertes.
    Par exemple celle ci qui permet d’entraîner un réseau d'après ses "souvenirs", afin d'avoir besoin de moins de données:


    Y a des optimisations au niveau structurel aussi, qui sont les plus fréquentes.
    Par exemple certains problèmes comme le transfert de style on été grandement optimisé avec un auto encodeur.
    https://github.com/NVIDIA/FastPhotoStyle
    https://arxiv.org/pdf/1802.06474.pdf
    L'ancienne méthode pouvait prendre plusieurs dizaines de minutes alors que la nouvelle s'applique en temps réel pour un meilleur résultat (bon les comparaisons de temps sont au niveau de l'inférence par contre).

  19. #19
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 704
    Points : 188 983
    Points
    188 983
    Par défaut
    Citation Envoyé par onilink_ Voir le message
    La descente du gradient je doute qu'on trouve vraiment mieux, vu qu'y a pas 36000 façons de minimiser une fonction de manière efficace.
    Il y a aussi la grande famille des métaheuristiques, avec des choses comme la programmation génétique, qui semble donner de bons résultats, par exemple chez Uber (apprentissage par renforcement, mais ça s'applique toujours) : https://arxiv.org/pdf/1712.06567.pdf

  20. #20
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Matthieu76 Voir le message
    Je pense vraiment que les algorithmes d'apprentissage des réseaux de neurones sont actuellement peu performant et que l'on blinde la puissance de calculs pour palier ce manque d'efficacités. Même si je n'ai encore compris/étudier aucun article dépassant l'an 2000 j'ai l'impression que l'on a pas trop progresser depuis, on a juste 1000 fois plus de puissance de calculs.
    Effectivement, les réseaux convolutifs existaient déjà en 2000 mais il y a eu beaucoup d'améliorations depuis : drop-out, pooling, relu, automatic differentiation...
    http://rodrigob.github.io/are_we_the...s_results.html

Discussions similaires

  1. Quels sont les meilleurs langages de programmation en 2017 ? Et pourquoi ?
    Par Community Management dans le forum Langages de programmation
    Réponses: 119
    Dernier message: 29/09/2018, 11h45
  2. Sondage : quelles sont les meilleures polices de caractères pour la programmation ?
    Par Patrick Ruiz dans le forum Débats sur le développement - Le Best Of
    Réponses: 18
    Dernier message: 31/05/2018, 13h37
  3. Quels sont les meilleurs langages pour créer une application non-web (en local) ?
    Par Skeud007 dans le forum Langages de programmation
    Réponses: 11
    Dernier message: 31/08/2007, 17h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo