======Software (libero) di simulazione reti neurali====== > Tornare alla pagina iniziale, per conoscere altri [[neurali:software di simulazione reti]] ======PyBrain====== - **Inattivo** dal giugno 2014 (o anche da prima?) - Mailing list **inaccessibile** senza iscrizione a Google Gruppi - pacchetto debian - c'è un buon tutorail, utile per imparare cosa è una rete neurale e come funziona ==== Doc ==== https://web.archive.org/web/20100106050159/http://github.com/pybrain/pybrain ====Download==== git clone ... ====XOR==== Il //quickstart// della documentazione mostra come creare una semplice rete per approssimare una funzione XOR https://web.archive.org/web/20230115194325/http://pybrain.org/docs/ ====Dipendenze==== python-scipy python-matplotlib ====Altri Pacchetti Consigliati==== LIBSVM RL-Glue ODE(0.8) PyOde(1.2) PIL (Python Imaging Library) PyOpenGL(3.0) tk/tkinter PyCDF SCons =====Descrizione===== PyBrain permette di costruire reti mettendo insieme dei //modules// insieme alle //Connections//: i primi (detti anche layer) contengono i nodi o percettroni, i secondi stabiliscono legami tra i nodi e contengono i pesi. È necessaria la presenza dei seguenti tipi di moduli: * di input * di output * hidden * error (opzionale) I nodi all'interno della rete sono caratterizzati da una //funzione di attivazione// (di trasferimento?), (utilizzata solo nella fase di apprendimento?), delle seguenti tipologie: * sigmoid (default) * linear (non effettua nessuna trasformazione) * softmax (nei problemi di [[neurali:pybrain classificazioni con FFN|classificazione]]) * Tanh (tangente iperbolica) * altro? (vedere [[neurali:percettrone#funzioni_di_attivazione_non_lineari]]) Di solito la struttura dei layer di una rete è ordinata tramite //Connections// seguendo un modello di architettura //[[neurali:FeedForward Neural Network]]// (**FNN**), ma aggiungendo almeno un modulo di retroazione si può ottenere una architettura //[[neurali:Recurrent Neural Network]]// (**RNN**), che si distingue per la presenza di un ulteriore modulo che guarda indietro nel tempo (memoria). ===FNN=== Si utilizza un apprendimento "**machine learning**" detto anche "supervisioned learning", che ottimizza i pesi delle connessioni usando un //dataset// e il metodo //trainer// Il metodo __trainer__ potrebbe essere di tipo //BackpropTrainer()// ===RNN=== Si utilizza un apprendimento "**reinforced learning**" usando un //environment// e un //optimization task//. L'ambiente o __environment__ potrebbe essere un labirinto (maze) Il costruttore delle connection (deve essere applicato su ogni modulo/layer) può essere di tipo: * FullConnection() * da finire? =====Tutorial===== * [[neurali:pybrain help|help]] python * tutorial * [[neurali:pybrain classificazioni con FFN|classificazioni]] * [[neurali:pybrain costruire una rete|costruire una rete]] neurale * [[neurali:pybrain recurrent neural network|RNN]] con pybrain * [[neurali:pybrain supervisioned learning]]