Précédent   Forum du club des développeurs et IT Pro > Autres langages > Algorithmes > Intelligence artificielle
Intelligence artificielle Forum d'entraide sur l'intelligence artificielle. Avant de poster : Cours d'intelligence artificielle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 19/10/2012, 14h33   #1
M.Max
Nouveau Membre du Club
 
Avatar de M.Max
 
Homme
Inscription : décembre 2009
Messages : 87
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2009
Messages : 87
Points : 36
Points : 36
Par défaut Quel algo pour cette problématqiue ?

Hello everybody,

Je bosse sur une problématique de pattern matching (série temporelle), j'ai développé un algo qui a chaque nouveau signal renvoi une distance entre un pattern et un ensemble des x-derniers signaux. Cette fenêtre peut aller de 1000 à 4000 points.

Disons qu'à chaque nouvelle donnée x, je peux calculer une distance z pour l'ensemble des fenêtres (y) possibles (y E [1000;4000]).
Pour une fenêtre de 1000 points, l'ensemble que je vais comparer au pattern sera de X(n-1000) à Xn où Xn est le dernier signal que j'ai reçu.
Donc j'ai pour chaque x, 3000 couples (y,z).

Sur le papier tout va bien, je peux calculer tous mes (x,y,z). Lorsque z est sous un seuil déterminé, je peux sans trop de difficultés (c'est un autre sujet..) trouver les minimums locaux. J'obtiens ainsi à quels points x et pour quelles fenêtres y la distance est minimale entre mon pattern et mes données.

En pratique c'est plus compliqué, la quantité de calcul est telle qu'il me faudrait des mois pour obtenir cette matrice (x,y,z). Le code est optimisé et multithreadé.
Je veux donc rajouter une logique qui détermine quels sont les couples (x,y) pour lesquels z doit être calculé. Il me faut quadriller la matrice en diminuant le pas d'autant que z diminue pour obtenir plus de précision sur les minimums locaux. Il faut aussi prendre en compte que z varie d'autant plus vite que y est petit, et inversement...
Quelle direction dois-je prendre ? Connaissez-vous des algos/méthodes numériques qui me permettent de faire ça efficacement ?

Merci pour vos lumières

Modif : Je viens de me rendre compte que j'ai posté sous le forum IA, peut être que la racine du forum algo serait plus pertinente pour ce post
M.Max est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2012, 00h32   #2
Graffito
Expert Confirmé Sénior
 
Avatar de Graffito
 
Inscription : janvier 2006
Messages : 5 390
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 5 390
Points : 6 036
Points : 6 036
Citation:
une logique qui détermine quels sont les couples (x,y) pour lesquels z doit être calcul
On ne pourra envisager une telle logique que si les signaux traités ont des caractéristiques spécifiques.

Par exemple si le signal présente des minima ou des maxima en terme d'intensité ou de fréquence, il serait possible de réduire la(les) plage(s) des y traités en déduisant le décalage en y depuis la position de ces minima et maxima.

Ou alors, si on peut classer le signal dans des catégories distinctes on ne comparera que 2 signaux de la même catégorie ou de catégorie proche.
__________________
" Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson
Graffito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2012, 16h39   #3
M.Max
Nouveau Membre du Club
 
Avatar de M.Max
 
Homme
Inscription : décembre 2009
Messages : 87
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2009
Messages : 87
Points : 36
Points : 36
Citation:
Envoyé par Graffito Voir le message
On ne pourra envisager une telle logique que si les signaux traités ont des caractéristiques spécifiques.

Par exemple si le signal présente des minima ou des maxima en terme d'intensité ou de fréquence, il serait possible de réduire la(les) plage(s) des y traités en déduisant le décalage en y depuis la position de ces minima et maxima.

Ou alors, si on peut classer le signal dans des catégories distinctes on ne comparera que 2 signaux de la même catégorie ou de catégorie proche.
Merci de ta réponse. C'est pertinent mais je ne me suis pas tres bien exprimé.

En fait il s'agit seulement de réduire la quantité de calcul.

Donc ça peut être une règle qui dit :

1. tester un pas de 50 pour les fenêtres y. Soit on calcul pour y € {1000, 1050, 1100, ... , 3950, 4000}

2. Si le résultat z est inférieur à un seuil alors on affine. Donc si, par exemple, pour y =2550, z est inférieur à ce seuil, au lieu de passer à y=3000, je vais plutot calculer avec un pas de 10 soit pour 2560,2570,... jusqu'à ce que le résultat repasse au dessus de ce seuil, et là je reprends mon pas de 50. Ainsi j'aurais eu plus de finesse pour les minimums locaux.

Il s'agit de rendre plus dynamiques les règles ci-dessus. D'autant que des règles linéaires sont insuffisantes car le pas doit être plus fin lorsque y est petit (variance de z élevée) et inversement.

Des idées ?
M.Max est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2012, 19h57   #4
Aleph69
Membre Expert
 
Homme
Chercheur
Inscription : mars 2010
Messages : 1 143
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chercheur

Informations forums :
Inscription : mars 2010
Messages : 1 143
Points : 1 654
Points : 1 654
Bonjour,

si j'ai bien compris, ton problème revient à chercher des extrema d'une fonction f(x,y) à partir d'une grille (x,y) et tu te demandes comment raffiner intelligemment ta grille pour approcher ces extrema sans faire trop de calculs. A mon avis, l'approche n'est pas la bonne et il n'y a pas de méthode robuste pour faire cela car il faut d'abord être sûr que ta grille initiale est suffisamment fine pour capter tous les extrema, ce qui est particulièrement difficile à vérifier. De plus, dans beaucoup de cas, cette grille initiale est souvent déjà trop fine et les calculs correspondants lourds. Il faut voir si une autre approche est possible à partir des des données de ton problème. A l'aide d'une analyse, on peut peut-être deviner où sont ces extrema, ou les situer grossièrement à l'aide d'une méthode numérique de recherche de zéro.
Aleph69 est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 14h11.


 
 
 
 
Partenaires

Hébergement Web