Machine/Deep Learning et Algorithmique ?

L'algorithmique s'applique-t-elle au Machine learning ? Comment se passe l'optimisation ?

a marqué ce sujet comme résolu.

Salut,

Je me renseigne par curiosité au Machine learning et au Deep learning depuis quelque temps. Il y a peu j’ai voulu voir à quoi ressemblait un processus de Deep ou Machine learning en Python (seul langage utilisé dans ce domaine que je connais).

Et à ma grande surprise ça ne ressemble à rien. C’est très bizarre et ça n’a rien à voir avec du code "normal".

Je vous laisse en lien un exemple trouvé sur Kaggle : https://www.kaggle.com/umbertogriffo/deep-learning-0-55326-for-now

Et du coup je me demande, est-ce que l’algorithmique normal comme je la connais (tri à bulle, tri fusion, tout ce qui touche à la récursivité etc…) est applicable au machine learning ou est-ce que ça n’a rien à voir. Ce qui pourrait expliquer comment des doctorants en maths arrive aussi rapidemment à s’en sortir dans ce domaine, sans jamais avoir codé auparavant.

Merci d’avance pour celles et ceux qui sauront m’éclairer un peu sur le sujet ;)

Salut !

Alors oui, mais pas dans le même sens que ce que tu vois. Ce que tu as vu correspond plus à des bases, qui sont utilisées soit en interne soit en surface du code. Les idées utilisées pour le ML sont différentes, parce que les algorithmes sont différents bien sur.

Maintenant pour la question sur les habitués aux maths, les bibliothèques comme TensorFlow permettent de rapidement mettre en code les idées derrière qui sont plus étudiées comme des maths, d’où peut être ton impression.

<troll> Mais en pratique, personne ne comprend rien au machine learning </troll>

+0 -0

Alors déjà non, python n’est pas le seul langage utilisé dans le domaine. Il a le vent en poupe mais ce n’est pas le seul. Prends l’exemple de CNTK: le cœur est en C++ (comme la plupart des bibli de Deep Learning en fait, c’est majoritairement basé sur CUDA et/ou openCL), mais n’offre que depuis peu une interface en python, mais aussi en C# et en java.

Sinon, pour ce qui est des algos, il y a des choses classiques, les réseaux de neurones eux sont un principe bien à part, mais une fois que tu sais dériver chaque couche (la backpropagation), les algos d’optimisation utilisés sont des algos assez standard d’optimisation de paramètres (descentes de gradient en tout genre, méthodes quasi-newtoniennes, …). C’est un peu plus poussé que des algos de tri, mais ça reste assez standard.

Enfin, pour ce qui est de l’aspect code, tout dépend de la bilbi utilisée. La plupar s’adressent à un publique assez matheux et pas forcément très axé prog, et s’efforcent donc de rendre les choses les moins "codée" possible, mais ça reste très variables d’un bilbi à une autre.

Ok merci pour vos réponses.

Par contre, quand je disais "Python est le seul langage que je connais", je voulais dire le seul langage qui : Soit utilisé dans le Machine Learning ET Que je connaisse (La syntaxe, le fonctionnement etc…). Mais j’avoue qu’en relisant ma phrase, ça portait à confusion ^^

J’ai une dernière petite question, est-ce que vous pensez qu’à l’avenir, le ML/DL se complexifiant on aura des ingénieurs spécialisés là dedans, qui ne serait donc pas des Data scientist et qui ne se chargeraient que de l’implémentation, de la manière la plus optimisé possible ?

Et si ça existe déjà, comment on appel ce métier car j’ai beau chercher sur internet (Français comme Anglais), je ne trouve rien de probant :/

Bah, ça existe déjà un peu: ceux qui codent les différents frameworks, mais ça représente assez peu de monde, et je pense pas que ça soit voué à une explosion en job, en tout cas beaucoup moins que le data scientist qui utilise ses frameworks.

Après, rien ne t’empêche en étant plutôt programmeur de faire du machine learning (comprendre, à la data scientist). Moi je suis purement programmeur, et j’ai réussi à imposer des réseaux de neurones dans ma boite pour faire de l’analyse d’image, parce que ça marche mieux que les méthodes précédentes et c’est beaucoup plus flexible, mais je reste programmeur avant tout, j’ai juste un peu la double casquette^^

Il n’y a pas d’intérêts directs à avoir des personnes dont le métier serait de "créer des ML/DL". Dans les labos de recherche, il y en a un peu, mais ce n’est pas l’objectif même la plupart du temps, mais ils développent ces méthodes pour résoudre leurs problèmes.

La plupart du temps, la seule chose intéressante pour les entreprises est leurs utilisations/implémentations. Et celle-ci est au cas par cas, et la plupart du temps soit les gens ont l’habitude et déterminent les paramètres par expérience, soit on bougeotte les trucs à droite à gauche jusqu’à avoir quelque chose qui apprend sans surapprendre.

Si on prend par exemple les réseaux de neurones, pour voir des gens en utiliser/faire presque tous les jours, ça fonctionne vraiment comme ça. Ils ne savent pas a quoi correspondent les valeurs dans les nœuds après l’apprentissage.

Après, si tu préfères la composante programmation, un réseau de neurones du genre perceptron multicouche est assez sympathique à faire. Ensuite il y a des bases en lignes pour tester ça :) (ex: la très culte base Iris)

+0 -0

J’ai une dernière petite question, est-ce que vous pensez qu’à l’avenir, le ML/DL se complexifiant on aura des ingénieurs spécialisés là dedans, qui ne serait donc pas des Data scientist et qui ne se chargeraient que de l’implémentation, de la manière la plus optimisé possible ?

AlexandreDeMoura

Je suis d’accord avec mes deux VDD. Des gens se spécialisent là-dedans, oui, mais ça n’en fait pas un métier, et la complexité grandissante ne va pas en faire un métier non plus.

Tu peux penser à ça comme les gens qui implémentent des bases de données ou des moteurs 3D pour les films d’animation ou l’industrie du jeu vidéo. C’est des équipes de recherches, des ingénieurs, etc. C’est des problèmes compliqués et difficiles. C’est pas un métier, "optimiseur d’implémentation de base de donnée", par exemple.

+0 -0

Ton premier lien est cassé, du coup j’ai pas pu voir ce que tu voulais dire par différent.

Sinon je ne suis bizarrement pas du tout d’accord avec mes VDD. Je pense au contraire qu’on aura dans un futur assez proche (10 ans) la même richesse dans la conception d’IA pour entreprise que pour la conception logicielle. Déjà dans la structure des réseaux de neurones il commence à y avoir des enchaînement de blocs qui ont un impact énorme sur les résultats. Je pense qu’il y aura des architectes de réseaux de neurones par exemple. Je me trompe peut être, mais ça me paraît sous estimer l’utilité des IA faibles dans le monde d’après demain.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte