Le connexionnisme est un terme technique pour un groupe de techniques liées. Ces techniques comprennent des notions comme les Réseaux de Neurones Artificiels, des Réseaux Sémantiques et quelques autres idées similaires. Dans cette section je me concentre essentiellement sur les réseaux de neurones (bien que je cherche aussi des ressources sur les autres techniques). Les réseaux neuronaux sont des programmes conçus pour simuler le fonctionnement du cerveau. Ils consistent en un réseau de petits nœuds basés sur les mathématiques, qui fonctionnent ensemble afin de former des schémas d'information. Ils ont un potentiel énorme et semblent actuellement rencontrer un grand succès dans le traitement de l'image et le contrôle de robots.
Ce sont des bibliothèques de code ou de classes à utiliser dans la programmation dans le domaine du connexionnisme. Elles ne sont pas destinés à être des applications autonomes, mais plus des applications pour construire vos propres applications.
Ce logiciel implémente les modèles Bayésiens flexibles pour des applications de régression et de classification qui sont basés sur les réseaux neuronaux à perception multi-couche ou sur les transformations Gaussiennes. L'implémentation utilise les méthodes de Monte Carlo de chaîne de Markov. Les modules logiciels qui sont compatibles avec l'échantillonnage des chaînes de Markov sont incluses dans la distribution, et peuvent être utiles à d'autres applications.
BELIEF (croyance) est une implémentation Common Lisp de la fusion et de l'algorithme de propagation de Dempster et Kong pour des Modèles de Fonction de Croyances Graphique et l'algorithme de Lauritzen et Spiegelhalter pour des Modèles Probabilistes Graphiques. Il comprend du code pour manipuler les modèles de Croyance graphiques comme les réseaux Bayésiens et les diagrammes de Relevance (un sous-ensemble des diagrammes d'Influence) en utilisant à la fois les fonctions de croyance et les probabilités comme des représentations basiques de l'incertitude. Il utilise la version de Shenoy et de Shafer de cet algorithme, donc l'une de ses caractéristiques uniques est le fait qu'il supporte à la fois les distributions de probabilité et les fonctions de croyance. Il possède aussi un support limité des modèles de second ordre (distributions de probabilité sur les paramètres).
Site web : arctrix.com/nas/python/bpnn.py
Un simple ANN à propagation arrière en Python.
Site web : www.isi.ee.ethz.ch/~haenggi/CNNsim.html
Un site plus récent : www.isi.ee.ethz.ch/~haenggi/CNNsim_adv_manual.html
Version Java : www.ce.unipr.it/research/pardis/CNN/cnn.html
Réseaux neuronaux cellulaires (CNN : Cellular Neural Networks) est un paradigme d'informatique parallèle massive défini dans des espaces discrets de dimension N.
Site web : strout.net/conical/
CONICAL est une bibliothèque de class en C++ pour construire des simulations communes à la neuroscience informatique. Actuellement, elles se concentrent sur la modélisation compartimentale, avec des caractéristiques proches de GENESIS et NEURON. Un modèle de NEURON est fait de compartiments, souvent avec une forme cylindrique. Quand ils sont assez petits, ces cylindres à possibilité d'extension peuvent approximer quasiment toutes les géométries. Les classes futures pourront accepter les cinématiques de réaction-diffusion et bien plus. Une caractéristique clef de CONICAL est sa compatibilité à travers les plates-formes, il a été entièrement codéveloppé et testé sous Unix, DOS et Mac OS.
Site web : www.voltar-confed.org/jneural/
L'architecture neuronale de Jet est un châssis C++ pour faire des projets de réseau neuronaux. Le but de ce projet était de faire une architecture neuronale rapide et flexible qui n'est pas limité à une sorte de réseau, et de s'assurer que l'utilisateur final pourra facilement écrire des applications utiles. De même, toute la documentation est facile d'accès.
Site web : joone.sourceforge.net
Joone est un châssis de réseau neuronal pour créer, entraîner et tester des réseaux neuronaux. Le but est de créer un environnement distribué pour des utilisateurs enthousiastes ou professionnels, basé à la fois sur JavaSpaces et sur les dernières technologies Java. Joone est composé d'un moteur central qui est le fulscrum de toute application qui existe déjà ou qui va être développé. Le moteur neuronal est modulaire, de taille réglable, multi-tâches et robuste. Tout le monde peut écrire de nouveaux modules pour implémenter de nouveaux algorithmes ou de nouvelles architectures à partir des simples composants distribués avec le moteur central. L'idée principale est de créer les bases pour promouvoir un million d'applications sur l'IA qui résolveront les problèmes autour du cœur de la structure.
Site FTP : ftp.cs.ucla.edu/pub/
Une classe Matrice C++ simple, rapide et efficace conçue pour les scientifiques et les ingénieurs. La classe Matrice est tout à fait adaptée à des applications avec des algorithmes mathématiques complexes. A titre d'exemple de l'utilité la classe Matrice, elle a été utilisé pour implémenter l'algorithme de rétropropagation de l'erreur pour un réseau neuronal artificiel à réaction positive multi-couche.
:TODO:
:TODO:
Site web : iridia.ulb.ac.be/pulcinella/Welcome.html
Pulcinella est écrit en Common Lisp, et semble être une bibliothèque de fonctions Lisp pour la créer, modifier et évaluer des systèmes valués. Alternativement, l'utilisateur peut choisir d'interagir avec Pulcinella via une interface graphique (disponible uniquement dans le CL Allegro). Pulcinella fournit les primitives pour construire et évaluer des modèles incertains en accord avec plusieurs calculs incertains, comprenant la théorie de la probabilité, la théorie de la possibilité, et la théorie des fonctions de croyance de Dempster-Shafer, et la théorie de la possibilité par Zadeh, Dubois et Prade. Un manuel est disponible sur demande.
Site web : www.sentinelchicken.org/projects/scnANNlib/
SCN Artificial Neural Network Library (Bibliothèque de réseau neuronal artificiel SCN) fournit un programmateur avec une API simple orientée objet pour construire des ANNs. Actuellement, la bibliothèque est compatible avec les réseaux non récursifs avec un nombre de couches arbitraires, chacune avec un nombre de nœuds arbitraires. Des installations existent pour s'entraîner avidement, et il existe des plans pour étendre gracieusement les fonctionnalités de la bibliothèque dans ses versions futures.
Cette entrée, un peu différemment des autres, est une référence à une collection de logiciels plutôt qu'à une seule application. Elle a été développée par le UTCS Neural Net Research Group (Groupe de recherche sur les réseaux neuronaux UTCS). Voici un résumé des logiciels disponibles :
Traitement du langage naturel
MIR — Prototypage rapide basé sur TCL/TK pour le traitement des phrases
SPEC — Analyse grammaticale des phrases complexes
DISCERN — Traitement d'histoires basées sur les scripts, comprenant :
PROC — Analyse grammaticale, génération, réponse à des questions
HFM — Organisation de la mémoire épisodique
DISLEX — Traitement lexical
DISCERN — Le modèle intégré complet
FGREPNET — Apprentissage des représentations distribuées
Auto-organisation
LISSOM — Carte auto-organisante avec des connections latérales.
FM — Cartes auto-organisantes génériques
Neuroévolution
Sous-populations disciplinées (ESP : Enforced Sub-Populations) pour les taches de décision séquentielle.
Equilibrage de pôle double non markoviens.
Neuroévolution adaptive et symbiotique (SANE : Symbiotic, Adaptive NeuroEvolution, prédécesseur d'ESP)
JavaSANE — Application Java pour appliquer SANE à de nouvelles tâches.
SANE-C — Version C, prédécesseur de JavaSANE.
Equilibrage de pôles — SANE de niveau neuronal sur la tâche d'équilibrage de pôle.
Programme de neuroévolution d'augmentation de topologies (NEAT : NeuroEvolution of Augmenting Topologies) pour l'évolution de réseau neuronaux utilisant une structure.
Site web : www.dontveter.com/nnsoft/nnsoft.html
Exemples de codes de réseaux neuronaux tirés du livre The Pattern Recognition Basics of AI. Ce sont des exemples simples de codes de ces divers réseaux neuronaux. Ils fonctionnent correctement comme un bon point de départ pour des expérimentations simples et pour apprendre à quoi ressemble le code derrière les simulateurs. Les types de réseaux disponibles sur le site (codés en C++) sont :
le paquetage Backprop
Les algorithmes du plus proche voisin
L'algorithme d'activation interactive
Les algorithmes des machines de Hopfield et de Boltzman
Le classificateur de schéma linéaire
ART I
La mémoire associative bi-directionnelle
Le réseau à rétropropagation et à réaction positive.