Pubblicati modulo e classe per le reti neurali a back propagation.

Ho appena eseguito il primo commit su questo repository di un modulo C++, e una classe in Hybris che lo wrappa, atti a creare, manipolare, gestire ed ovviamente utilizzare delle reti neurali a back propagation.

Ma cosa è una rete neurale ?

Wikipedia ci dice :

Tradizionalmente il termine rete neurale (o rete neuronale) viene utilizzato come riferimento ad una rete o ad un circuito di neuroni biologici, tuttavia ne è affermato l'uso anche in matematica applicata con riferimento alle reti neurali artificiali, modelli matematici composti di "neuroni" artificiali. L'espressione può acquisire pertanto due significati distinti:

   1. Le reti neurali biologiche: sono costituite dai neuroni biologici, cellule viventi tipiche degli animali connesse tra loro o connesse nel sistema nervoso periferico o nel sistema nervoso centrale. Nel campo delle neuroscienze, sono spesso identificati come gruppi di neuroni che svolgono una determinata funzione fisiologica nelle analisi di laboratorio.
   2. Le reti neurali artificiali: sono modelli matematici che rappresentano l'interconnessione tra elementi definiti neuroni artificiali, ossia costrutti matematici che in qualche misura imitano le proprietà dei neuroni viventi. Questi modelli matematici possono essere utilizzati sia per ottenere una comprensione delle reti neurali biologiche, ma ancor di più per risolvere problemi ingegneristici di intelligenza artificiale come quelli che si pongono in diversi ambiti tecnologici (in elettronica, informatica, simulazione, e altre discipline).

Ovviamente si parla del secondo caso .

Ci sono stati molti studi in proposito, molti passi avanti, ma l'algoritmo di back propagation è da sempre ritenuto il più adatto per iniziare questa branca dell'intelligenza artificiale, poichè, nonostante possa sembrare il contrario, è il più semplice ed intuitivo tra quelli esistenti.

Nel repository, è presente quindi un modulo C++ (nnet.cpp) che va compilato ed installato tramite il Makefile, una classe Hybris (nnetwork.hy) che verrà installata insieme al modulo nella directory di default delle librerie di Hybris ed un file di esempio che mostra quanto sia facile utilizzare il sistema.

Il tutto è documentato seguendo lo standard doxygen, nenchè non ho ancora implementato un filtro per generare documentazione html/rtf/pdf partendo da un sorgente Hybris, tuttavia risulta comunque uno standard chiaro per commentare il codice al fine di redistribuirlo ad altre persone.

Come sempre, per il download e l'installazione :

git clone git://github.com/evilsocket/hybris-nnet.git
cd hybris-nnet
make
sudo make install


Launchpad logo