Wednesday, October 19, 2005

Utilisation de cartes 3D pour accélérer le traitement des réseaux neuronaux

Certain type de réseau neural utilise des neurones ayant des valeurs intrinsèques encodées en float. Un très grand nombre d'opération doit être effectuer sur les valeurs de chaque neurone. Ces calculs sont massivement paralèlle et ont une intensité arithmétique élevée. Toutes les charactéristiques sont réunies pour permettre d'utiliser efficacement la puissance d'une carte 3D. Ces cartes sont parfaites pour faire des opérations sur de grande matrice puisqu'elles ont beaucoup de pipelines.

En faisant un peu de recherche, j'ai trouvé un article qui discute de ce sujet : http://www.citeulike.org/user/geomblog/article/168802

Tuesday, October 11, 2005

Optimization de l'encodage vidéo avec une carte 3D

Il serait particulièrement intéressant d'utiliser la puissance de calcul de la carte 3D pour accélérer l'encodage de vidéo. C'est une opération facilement parallélisable qui demande beaucoup de calcul et une grande bande passante mémoire. Toutes les conditions sont réunis pour que ça vaille la peine.

Saturday, October 08, 2005

Utilisation de cartes graphiques comme platfome de calcul

Les cartes graphiques ayant des pipeline programmable sont depuis un certain temps intéressantes pour faire d'autre type de calcul que du traitement d'image. Surtout que la dernière génération de cartes n'a plus de limite de longueur d'éxécution de code ce qui permet de faire des calculs plutôt complexe. La carte qui a le plus de puissance de calcul présentement est la X1800 XT d'ATI avec une capacité de calcul théoriqe de 83 GFlops pour une précision de 32 bit un peu en dessous du standard du ieee. De plus, une graphqiue a une très grande bande passante vers sa mémoire (environ 48 GB/s) et une très basse latence pour accéder à celle-ci. Considérant que le prix suggérer de vente de ce produit est de 585 $can, cette solution devient intéressant pour faire des calculs scientifiques à bas prix. Cependant, cette platforme serait quand même limité à des calculs parallélisable à cause de la nature du GPU, les opérations de ce type de processeur traite plusieurs données par instruction.



L'université de Standford a déjà fait de la recherche dans l'utilisation de cartes graphiques pour faire des calculs scientifique. Ils ont étendu le language C/C++ pour le spécialiser dans l'utilisation de flux de données. http://graphics.stanford.edu/projects/brookgpu/index.html.
Un chercheur de Standford a utilisé cette platforme pour optimisé la comparaison de protéine ou de partie de protéine avec de large base de donnée : http://graphics.stanford.edu/papers/clawhmmer/hmmer.pdf



Avec l'apparition de cartes-mères ayant jusqu'à 4 port pci express 8x (http://www.tomshardware.com/motherboard/20051004/index.html), il devient possible de créer des workstations avec une très grande puissance de calculs. Avec 4 cartes X1800 XT, on pourrait avoir accès à environ 382 GFlops pour environ 4000$ pour un ordinateur complet.

Tuesday, October 04, 2005

Youth Corruption

The surest way to corrupt a youth is to instruct him to hold in higher esteem those who think alike than those who think differently.

Friedrich Nietzsche

Wednesday, May 25, 2005

scheduling en hardware pour les processeurs supportant le hyperthreading

Les processeurs pentium 4 de Intel devrait implenté un scheduling qui prendra en compte l'historique de l'accès à la mémoire et l'historique de l'utilisation des pipelines afin de maximiser les accès à la mémoire et pour remplir le plus possible les pipelines. On pourrait alors éviter plus souvent l'apparition de bulle dans le pipeline ou, encore, utiliser au maximum le bus mémoire. Cependant, il serait plus difficile d'implenter ce concept dans les processeurs multi-core puisque la bande passante vers la mémoire est partagé inégalement dans le temps. Il faudrait alors partager tout les historiques entre les cores et aussi une logique qui gérerait le hyperthreading sur chaque core.

Wednesday, April 27, 2005

Favoriser l'apparition de fonction dans la programmation évolutionnaire

La majorité du code génétique humain est du code dormant. Il reste là par "hasard". Cependant, il a aussi une utilité. C'est de permettre le réaparition de caractéristiques qui pouvaient être utile avant, qui sont devenu inutile avec le temps, mais qui redevienne utile par la suite. Ce même principle devrait être appliquer à la programmation évolutionnaire. Par exemple, pour faire des programmes qui serve à reconnaître des objets, on devrait utiliser le même bassin de fonction puisqu'il y a plus de chance que ce code soit utile que du code généré au hasard.

Je crois qu'il faudrait faire évoluer des fonctions "simplificatrices" puis ensuite faire évoluer d'autres fonctions ou des programmes à partir de ces fonctions.

Tuesday, April 19, 2005

Routage anonyme sur l'internet

On pourrait créer un réseau P2P qui servirait à cacher la provenance de paquet. Les paquets aurait plusieurs données supplémentaire dans leur header : le nombre de fois que le paquet doit être routé au hasard, la destination, un id d'envoyant. Il devra avoir un handshake pour faire correspondre l'id d'envoyant avec l'ip de l'autre hôte.

Sunday, April 17, 2005

Real RNG

Il serait intéressant de créer un générateur de nombres aléatoires physique. On pourrait utiliser le bruit sur la bande infrarouge dans une chambre noir pour amasser du hasard. On fait f(t)-f(t-1) pour extraire le hasard (?). On fait passer les valeurs amassées dans un PRNG pour redistribuer le hasard sur tout les bits.

Thursday, April 14, 2005

Mais où est Charlie

Un réseau neuronal pourrait servir à trouver un objet dans une scène. Il faudrait l'entraîner sur une petite image (en nb de pixel) . On recherche dans une grande image une petite zone qui fait scorer haut le réseau neuronal.

Tuesday, April 12, 2005

Utilisation de réseau neuronal pour dans les cartes biométriques

Un réseau neural pourrait être utilisé pour stocker le pattern de l'iris de l'oeil. On ne pourrait pas retrouver l'image original. Du même coup, on pourra identifier facilement la personne en lisant son oeil même si l'image est bruyante.

Sunday, April 10, 2005

Reconnaissance de la voix

Je devrais créer un logiciel qui permettra de lire sur les lèvres. On peut faire correspondre une certaine forme de la bouche à une sylable en particulier. Cependant, la position de la langue (invisible à la caméra) influe aussi sur le son produit. Cette technique pourrait améliorer la reconnaissance vocale dans un milieux où le niveau sonore est élevé.

Thursday, April 07, 2005

Reconnaissance d'objet par la reconnaissance de forme : diviser pour reigner

Soit une image placer dans un plan x,y. L'approche que je vais décrire vient de ma croyance que l'on doit simplifier l'entré (enlever le bruit) pour qu'un réseau neuronal soit effectif. L'idée est d'essayer de détecter des formes (cercle, ellipse, droite, etc...) dans les l'images. On note leur caractéristique et leur position en x,y. Ensuite on met en entré de réseaux neuronaux les formes qui ont le plus haut score, leurs caractéristiques et leurs positions. Ces réseaux neuronaux auront préalablement été entraîné à reconnaître des objets.

à continuer...

Thursday, March 31, 2005

Coop de service Internet

Ce serait une bonne idée de sous-loué une connection à Internet à l'aide d'un routeur sans-fil que j'installerait sur le toît de ma maison. Chaque client aurait un routeur répétiteur installer sur leur toît qui répéterait le signal sur une autre bande, ce qui leur permettrait d'accéder à l'internet par le réseau sans-fil dans leur maison. Cela permettrait aussi aux voisins plus éloigner de la base de se connecter par l'intermédiaire du répétiteur.

Tuesday, March 29, 2005

Réseau neuronal pour la détection de dialecte

S'il est possible d'utiliser un réseau neuronal pour détecter le langage d'appartenance d'un mot, il serait encore plus intéressant d'en utiliser un pour détecter la provenance d'un mot i.e. le langage ancestral.

Utiliser un réseau neuronal pour déterminer si un mot appartient à une langue

Il serait possible d'utiliser un réseau neuronal pour déterminer si un mot appartient à une langue ou non. Présentement, je connais pas les façons traditionnelles qui sont utilisées pour déterminer la langue d'un texte. Si la performance des réseaux neuronaux est acceptable, il serait intéressant de poursuivre cette avenue.

BlackJack et réseau neuronal

Pour expérimenter avec les réseaux neuronaux, j'ai créé un programme qui apprend à jouer au BlackJack. Après seulement 1000 à 1500 parties, le réseau neuronal gagne entre 49 et 54% des mains, ce qui correspond à la performance d'un joueur humain qui joue parfaitement. Le réseau neuronal a donc été capable d'appprendre les règles du BlackJack, ou plutôt, il a appris s'il devait tirer une carte selon les valeurs qui lui sont présentées. La performance des réseaux neuronaux m'impressionent beaucoup. C'est évident que je vais continuer à faire de la recherche dans ce domaine.

Ce champ d'étude promet de se développer grandement dans les prochaines années. Chaque personnes à une grande puissance de calcul à sa disposition. Il sera bientôt possible de créer des programmes par brute-force en choisissant ce que l'on veut qu'il fasse.

Sunday, March 20, 2005

Apprendre l'égyptien

Ça fait quelques temps que je me dis que je devrais apprendre une troisième langue. Après avoir vu ce site, je me dis que je devrais apprendre l'égyptien. La grammaire est simple et souvent les pictogramme s'explique d'eux même. Bien que ce n'est pas très utile, ça serait extrèmement cool et g33k d'apprendre une langue morte.

Friday, March 18, 2005

La science derrière les chansons à succès

Après avoir vu un site internet qui prétend pouvoir prédire si une chanson pourra devenir un succès, j'ai encore moins d'estime pour les producteurs et les artistes Pop. Leur but premier est de plaire au plus de monde possible, je crois que c'est une perversion de ce que la musique devrait vraiment être.

Du même coup, ça m'a donné l'idée de créer un système comparable qui utiliserait ma cote sur différentes chansons afin de prédire si je vais aimer une chanson que je n'ai pas encore écoutée. Imaginez! je n'aurais même plus besoin de me promener sur Internet pour rechercher de la nouvelle musique, un logiciel pourrait le faire pour moi. À première vue, je devrait utiliser un réseau neuronal pour analyser l'information qui devra être traité. Je crois qu'il y aura corrélation entre le FFT de la musique dans différente partie de la chanson, entre le bpm, entre la longueur de la chanson et sa cote sur 10.

Thursday, March 17, 2005

Alice's Adventures in Wonderland

Alice's Adventures in Wonderland

C'est la version original de Alice au pays des merveilles. Je ne l'ai jamais lu. Ce livre m'intrigue par ces profondes métaphores. Au file des années, j'ai remarqué des dizaines de références à cette oeuvre, j'ai lu plusieurs extraits et j'ai même regardé à plusieurs reprises les dessins animés. Il faut absolument que je lise ce livre.

Intelligence artificielle

Si on modélise une bonne approximation de la structure de l’intelligence humaine, je crois qu’il y aura une forte chance qu’une intelligence émerge.

(entré,sens)(traitement de l’information, transformation en présence ou non d’un concept, d’une caractéristique)[…]

Structure fonctionnelle, séparé en fonction

Réseaux neuronaux à plusieurs sorties et intelligence artificielle

//on devra faire des tests pour découvrir les caractéristiques qui sont les plus faciles à détecter par l’homme.

//l’intelligence humaine utilise un « id », un mot pour créer des concepts.

//{L’émergence de l’intelligence} aura lieu si un réseau neuronal est capable de contrôler les algorithmes de qualité de façon à ce qu’il trouve les bons concepts, les concepts utiles à résoudre des problèmes ou utiles à [l’intelligence](il faut trouver un réseau neuronal qui sera capable de donner une valeur à un concept à partir de son utilité, utilité : s’il a aider à résoudre un problème)

Pour créer une intelligence à l’aide de réseaux neuronaux, on doit utiliser plusieurs algorithmes opérant sur différentes partie du réseau afin de déterminer la valeur de chacun. Comme dans plusieurs autres applications, la nature est une grande source de connaissance. La qualité recherchée pour chaque sous-réseau devra correspondre à une fonction que le cerveau effectue. //Par exemple, le sens de la vue a une partie du cerveau qui analyse les formes géométriques et les compare.

(D’un côté, on aurait l’image en entré) (L’entré du réseau neuronal pour traiter les formes pourrait être d’autres réseaux neuronaux serait capable détecter certaine caractéristiques des formes ex. certaine forme de courbes, coin carré, symétrie) (ensuite on pourrait, les classé en plus grand groupe)(répété)(on arrive a un certain nombre de concepts, nombre de sortie qui auront une valeur de 0 ou 1)

Les fonctions d’activation des réseaux doivent permettrent d’emmagasiner la « bonne information » en bloquant la modification et l’utilisation de certain neurone et d’une petite partie du réseau.

paquets d'idées

-créer une machine pour compter le flow de circulation sur une route

-site web donant le sens de chanson. Les visiteurs écriraient s'ils le désir leur oppinion sur le sens des paroles. Il y aurait un système de classement des oppinons par rating des utilisateurs. Les ads by google montrerait des annonces ayant rapport au sens des paroles. Ce qui, je crois, inciterait les éventuels visiteurs à cliquer sur les banières. Malgré que les sens des chansons ne fait pas nécessairement référence à une compagnie ou à un produit commercial.

-Écrire un programme pour calculer les nbs premiers en assembleur.

-Créer un compileur C coupler avec un émulateur qui permettront d'observer tout les détails de l'exécution d'un programme à des fins éducationelles.

-La confiance entre deux personnes est la base de l'échange. Elle permet à l'un de donner avant l'autre, des s'échanger produits ou de la monnaie. C'est la base du commerce. Puisque dans une société, à première vue, on peut se faire confiance, il est possible à deux inconnus de s'échanger des biens ou des valeurs, c'est qui permettra le respect des deux bouts de l'engagement.

-L'encaissement des chèques de prêt et bourse sont maintenant encaissés dans un organisme en gaspésie. C'est une action politique qui stimule l'économie en crise d'une région éloignée. C'est aussi une subvention à des entreprises privées, les banques et la caisse. Ces compagnies n'ont plus à assumer le coût en personnel et de "paprasse".

-Qu'est-ce que l'amour? L'amour est une relation de confiance. La différence entre l'amour et l'amitié, c'est qu'on descend toute nos barrières psychologique envers notre amoureuse. On met dans une position vulnérable. C'est la réciprocité de cette vulnérabilité qui permet un si grand bonheur, mais en même temps une si grande douleur ; on peut toucher directement l'âme de l'autre.

-L'open source et le développement technologique du tier monde. L'open source c'est des logiciels gratuits comparables à d'autre logiciels commercials. Ce serait très avantageux pour les pays en développement d'utilisé l'open-source car cela minimise grandement les coûts de recherches et de développement. Des millions d'heures de travail de bénévole autour de la planète pourraient être utilisées pour le développement durable de pays moins bien nantis. Aussi, les logiciels open source peuvent, en général, fonctionner sur du matériel très hétérogène ce qui s'adapterait bien à la réalité de petites entreprises

-Un code moral est à l'individu ce qu'est la loi par rapport à une entreprise. Les entreprises n'agissent pas de façon moral, donc les lois n'enseigne pas au entreprise à être moral.

-Créer un programme qui trouverait des nombres premiers de forme rare. Ce serait plus facile de trouver le plus grand nombre premier d'un genre qui est peu étudié.

-la loi de l'offre et de la demande a été découverte en 1830

-Idée: vendre des kits pour faire du réseautage sans-fil sur de longue distance

Premier Blog

Ceci est mon premier blog. Je n'écrit pas ce blog pour qu'il soit lu. Je l'écrit pour garder un historique de mes idées et de mes songes. Pour l'instant, j'ai beaucoup de notes éparpillées sur plusieurs ordinateurs. C'est aussi une façon pour moi d'organiser mes idées et de rien oublier.

LP
http://www.geocities.com/yolesphotos