Entraîner un système basé sur la théorie de l'évolution est-il plus rapide que pour un système basé sur de l'apprentissage profond ?

a marqué ce sujet comme résolu.
Auteur du sujet

Bonjour,

Existe-t-il au moins un secteur de l’informatique dans lequel il serait envisageable d’arriver à concevoir un générateur de quelque chose dont la phase d’entraînement serait plus rapide à faire avec un système basé sur la théorie de l’évolution que du deep-learning - voire mme du machine learning au sens plus large ?

Merci !

+0 -0

Bonsoir,

Tu dois parler d’algorithmie génétique car la théorie de l’évolution n’a pas vraiment de sens sinon ici, il existe des cas assez connu qui mêlent du Deep learning et ce que l’on appelle l’apprentissage par renforcement (branche proche de l’algorithmie génétique) . Tu as par exemple Alpha Star qui utilise beaucoup d’AR (apprentissage par renforcement) couplé avec du deep leaning comme des RNNs. Si tu es curieux voici la structure du réseau derrière AlphaStar. La motivation initiale n’est ici pas un gain de temps mais surtout plus pour des raisons d’efficacité car entrainer avec de l’apprentissage profond uniquement demanderait beaucoup trop de données pour que ça soit envisageable. Pour de la génération d’image tu utilises déjà énormément d’exemple et au plus la tache est complexe au plus tu auras besoin d’exemple.

+2 -0

Bonjour, excellente question ! :)

Je rajouterai que l’on utilise du Deep Learning principalement pour entraîner une machine à détecter des patterns (formes) spécifiques difficilement distinguables en codant un simple algorithme. Il peut être complété par un algorithme génétique pour choisir le modèle le plus efficace selon les taux de réussites (Voir "La sagesse des forêts" de Science4all - attention ça ne parle pas d’algorithme génétique mais de l’approche général). L’une des solutions n’implique pas l’autre mais elles ne sont pas du tout opposées.

Après l’apprentissage par renforcement est bien plus large, ça intègre aussi des méthodes par changements d’états. Ça n’implique pas nécessairement un algorithme génétique. Voir la série de vidéos de Thibault Neveu

Sinon pour répondre à la question précisément, oui il existe bien des cas où l’usage d’un algorithme génétique peut se suffire à lui même. Par exemple si tu souhaites comparer des gênes entre eux, mettons le gène égoïste (si t’as la réf. c’est parfait !) et son contraire impliquant l’altruisme, il te suffit de simuler plusieurs populations et de sélectionner la meilleure - celle qui impliquerait par exemple la meilleure extraction de ressources. Par besoin de Deep Learning, puis-ce que la simulation donne un résultat analysable instantanément (le nombre de ressources collectées).

Édité par Yarflam

Tant de choses, tant de vies, tant de possibilités.

+1 -0
Auteur du sujet

Tout à fait, le terme anglais est : "Evolutionary Algorithms", donc je traduisais cela en "Algorithmes Évolutionnaires". Mais on parle bien d’"Algorithmes Génétiques" je pense.

Merci pour vos réponses.

J’aurais dû préciser le fond de ma question : je souhaite explorer la génération de vidéos, d’images et de sons. J’ai déjà développé un SRGAN à partir de plusieurs papiers de recherches, j’ai pu l’entraîner sur une seule image faute de ressources matérielles… Il ne me sert à rien :( m’enfin soit.

Je ne compte pas acquérir davantage de ressources matérielles. Donc je cherche des alternatives au deep-learning ou machine-learning en matière de génération de données multimédia (vidéos, images, sons). J’avais entendu parler des algorithmes génétiques, et je voulais savoir si ces derniers nécessitaient beaucoup d’images d’entraînement, et si la durée d’ajustement des poids (si "poids" il y a) prenait autant de temps que pour mon programme.

Je voudrais aussi savoir s’il y a d’autres concepts que le machine-/deep-learning et que les algorithmes génétiques qui pourraient m’intéresser dans la génération de contenus multimédia.

Notez que ces contenus multimédia n’ont pas besoin d’être réalistes, je ne compte pas générer des visages, ou des musiques très cohérentes. Au mieux ce que j’aimerais réaliser ce sont des paysages presque vides (au pire, des paysages abstraits sans queue ni tête), ou encore des musiques cohérentes sans nécessité d’être mélodieuses (au pire, une suite de sons à peu près cohérente).

+0 -0

J’avais entendu parler des algorithmes génétiques, et je voulais savoir si ces derniers nécessitaient beaucoup d’images d’entraînement, et si la durée d’ajustement des poids (si "poids" il y a) prenait autant de temps que pour mon programme.

Aucun poids ou images … un algorithme génétique évalue des modèles parmi une population en fonction d’une sélection particulière (appelé fonction fitness) et altère cette sélection pour renouveler l’expérience un nombre satisfaisant de fois. Le but étant de choisir le modèle qui semble le plus adapté parmi les possibles (à toi de définir ce qui est possible et ce que tu évalues).

Ce que tu recherches ce sont des algorithmes de génération procédurale. Il en existe plein d’approches, en particulier pour de la génération de map dans les jeux type Roguelike. L’idée c’est d’avoir une fonction qui prend en entrée une valeur aléatoire (la grainde = seed) et en sortie une donnée disposant d’une certaine harmonie / homogénéité. On code en réalité un générateur de patterns. Ce n’est en revanche pas adapté pour des patterns plus complexes, on est obligé dans ce cas d’utiliser du Deep Learning.

Édité par Yarflam

Tant de choses, tant de vies, tant de possibilités.

+0 -0

Il y a des champs où l’utilisation d’algorithmes typés «génétiques» (avec des sélections parmi des populations, et des notions de «mélange des bons éléments de la population», ainsi que des doses d’aléatoire) est utilisé conjointement à des méthodes typées «réseaux de neurones». Par exemple l’algorithme NEAT utilise des notions d’algorithmique génétique dans l’optique de trouver une bonne topologie pour le réseau de neurone couplé. C’est un type d’algorithme qui a été pas trop mal utilisé pour créer des IAs jouant à des jeux vidéos. Typiquement c’est ce qui est utilisé dans cette vidéo qui a pas mal tourné à l’époque: https://www.youtube.com/watch?v=qv6UVOQ0F44.

Je ne pense pas que ça permette d’atteindre ce qui se fait en apprentissage par renforcement aujourd’hui, qui est globalement passé du côté «profond» des réseaux de neurones, mais ça permettait tout de même d’avoir des performances intéressantes, tout en maintenant une architecture de réseau assez simple (et donc assez légère), puisque l’optimisation porte aussi sur l’architecture en elle-même avec NEAT. Je ne suis en revanche pas trop au courant de méthodes axées algorithmes génétiques et appliquées à l’imagerie, mais ça doit sûrement exister.

Ensuite (bien que je n’aie pas exactement compris ton besoin exact, je fais rapidement un survol de ce qui me vient à l’esprit sur le moment), bien que la génération / traitement d’images ou vidéos est aujourd’hui plutôt portée par les utilisations de réseaux profonds et les approches adversairiales (surtout pour les résultats les plus «impressionnants»), il y a encore pas mal de travaux qui proposent des choses non basée sur l’apprentissage et restant néanmoins intéressantes.

Je pense par exemple à la méthode EbSynth, qui date de l’an dernier (vidéo de démo, papier), que je trouve assez impressionante, et qui, si mes souvenirs sont bons et que je ne dis pas de bêtises n’utilise pas d’apprentissage en son sein (mais est reste assez axé sur une interaction avec l’utilisateur-artiste).

Toujours récemment, il y a les méthodes à base de transport-optimal qui sont assez à la mode en imagerie, parfois couplée avec du machine-learning traditionnel, parfois non. Par exemple pour du transport d’histogramme, transfert de couleurs (au hasard des résultats comme ceci pour des images, ou ceci pour des videos).

Ensuite, il y a encore pas mal de trucs plus anciens (à savoir il n’y a pas si longtemps, mais juste avant que les réseaux de neurones ne deviennent trop prépondérants) qui restent pertinents, entre autres le Poisson Processing, les segmentations à base de Champs de Markov, toutes les questions super-étudiées d'inpainting, la génération de texture… Enfin, l’imagerie est un domaine assez ancien, donc tu peux trouver un paquet de choses à faire qui n’utilisent pas d’approche «apprentissage profond», et ce pour la plupart des questions qui sont encore d’actualité aujourd’hui. Globalement je dirai que pour la génération de visages, les réseaux profonds ont vraiment apporté des choses super impressionnantes, mais pour un paquet d’autres questions, on avait déjà des solutions plus ou moins satisfaisantes avant d’utiliser des réseaux de neurones.

De manière générale, tu peux te faire des bons tours d’horizon du domaine en regardant par exemple la liste des articles publiés à SIGGRAPH chaque année, où tu as parmi ce qui se fait de mieux, et tu peux voir qu’il n’y a pas que du deep-learning, et vraiment pleins de domaines auxquels toucher: https://kesen.realtimerendering.com/sig2019.html.

Ensuite, un autre point auquel il faut faire attention, c’est que ne pas utiliser de méthodes à base d’apprentissage (dans lesquelles la majorité du travail en terme de calculs est souvent fait pendant l’apprentissage) ne résout pas nécessairement la question du calcul, vu que certaines restent assez lourdes à mettre en place, et déportent le calcul au moment de l’utilisation sur chaque image / projet. Comme toujours, c’est affaire de compromis… ;)

Édité par Næ

+3 -0
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