Mes petits mangeurs ne mangent pas...

Quand l'intelligence part en cacahouète

a marqué ce sujet comme résolu.

En fait, c'est pas comme ça qu'on entraîne un réseau de neurones. J'imagine que ta méthode pourrait marcher, mais elle est loin d'être optimale.

Normalement, tu dois disposer d'un jeu de données afin d'entraîner ton réseau.

GaaH

C'est la façon la plus connue de faire, mais les algorithmes génétiques sont également utilisés pour entraîner des réseaux de neurones, en particulier lorsque l'on ne dispose pas de données d'entrainement exploitables. Bref, tu devrais te renseigner un peu.

Je n'ai pas dit le contraire, mais j'imagine que s'il veut complexifier le monde dans lequel évoluent ses mangeurs (par ex. de gérer les collisions entre mangeurs, fuir des prédateurs, etc), ça va devenir ingérable. Qui plus est, un algorithme évolutionnaire permet (en théorie) d'avoir une plus grande variété de stratégies pas forcement connues au départ.

Bref, je ne vois pas ce qui te dérange s'il veut essayer l'approche génétique sur son problème, alors que ça semble plutôt adapté.

@Yoch, je suis entrain de lire l'article qui tu m'as passé. J'ai compris que pour faire un croisement barycentriques, on choisi deux poids aléatoires dans le cerveau du papa et de la maman. Et je dois faire une combinaison linéaire. Dans la formule :

$p1′=α p1 + (1−α) p2$

$p2′=α p2 + (1−α) p1$

$p1$ et $p2$ sont les les vecteurs des deux poids tirés aléatoirement. $α$ est tiré aux hasard. On itère pour tout les poids, si j'ai bien compris.

+0 -0

D’après mon expérience avec les GA classiques (je n'en ai jamais fait pour des RN), un outil vraiment très utile pour debug est le graphe d’évolution du fitness, comme par exemple celui ci (simple exemple, rien ne dit que les tiens devraient avoir cette tete) :

Image utilisateur

Ça te permet de comprendre ce qui se passe, est-ce qu'il y a évolution ou pas, a quel rythme (trop rapide est mauvais), a partir de quand le processus ne progresse plus, etc.

Une fois que tu dispose d'un tel outil, il devient bien plus facile tester les différentes variantes que tu imagine. Avec un peu d'habitude, tu sauras interpréter l'influence des différents paramètres et ainsi essayer de les régler au mieux.

+0 -0

Déjà, es-tu sur que ton implémentation du RN est bien correcte ?

Je commence à avoir des semblants d'intelligence artificielle comme par exemple les mangeurs évitent les feux. Un graphe...

Tu peux tester sur des trucs faciles, comme le iris dataset par exemple. (je ne sais pas quel langage tu utilise, mais en python sklearn permet de l'importer en une ligne)

yoch

C'est quoi ? o_O J'ai tout codé en Swift et pour le graphic j'utilise Cocoa. Pour les graphes j'utilise matplotlib, je passe par les lignes de commandes pour faire passer les informations de swift à python.

Je ne connais quasiment rien a swift. En python, tu as scikit-learn pour tout ce qui touche au machine learning, et c'est plutôt bien foutu. Et il est possible de faire un RN pas trop inefficace en utilisant numpy.

Il existe des jeux de données très usités en classification supervisée, comme celui que je cite ci-dessus par exemple. Pratique pour tester un prototype, a toi de voir si ça te fait gagner du temps ou le contraire.

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