User Tools

Site Tools


neurali:introduzione

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
neurali:introduzione [2015/07/09 12:37] – [Utilizzi] profproneurali:introduzione [2020/06/08 22:20] – external edit 127.0.0.1
Line 1: Line 1:
 +^ [[neurali:indice|{{:neurali:indice.png?60}}]] ^ [[neurali:indice]] ^
 +====== Reti neurali (o neuronali) ======
  
 +Un sistema nervoso biologico è composto da un insieme di cellule nervose ([[neurali:neuroni]]) collegate tra di loro.
 +Le reti neurali cercano di simulare, con un modello matematico, il comportamento di un sistema biologico.
 +Le reti neurali di prima generazione riescono a realizzare solo delle funzioni matematiche.
 +
 +
 +
 +===== Reti neurali Artificiali (ANN) =====
 +In biologia i neuroni si possono classificare in //sensitivi// e //motori//.
 +Analogamente anche nelle reti neurali artificiali si ricevono dati di ingresso e producono dati di uscita.
 +Nella seguente figura i neuroni sensitivi che ricevono dati in ingresso sono colorati in azzurro, e i neuroni motori, che producono dati in output, in arancio.
 +Tuttavia, invece del termine //neurone//, si usa il termine //percettrone//.
 +
 +{{ :neurali:rete.png?200 |}}
 +
 +====Dimensioni====
 +Il numero di neuroni in input determina la dimensione dello spazio dei dati di input. Serve una ulteriore dimensione per ogni ulteriore grado di libertà dello spazio di input.
 +Lo stesso si può dire per la dimensione dell'output e dello spazio di output.
 +Per comprendere perché una rete può produrre in output un vettore invece che uno scalare, si veda come si risolvono i [[neurali:pybrain_classificazioni_con_ffn|problemi di classificazione]]
 +
 +
 +Semplificando un po' la realtà, si può dire che un neurone è una cellula composta da:
 +  * un corpo centrale (detto //soma//)
 +  * più linee (dette //dendriti//) che conducono i segnali elettrochimici verso il neurone 
 +  * una sola linea (detta //assone//) che conduce un segnale in uscita 
 +
 +{{ :neurali:neuron.png?200 |}}
 +
 +Il neurone ha limitate capacità di elaborazione, ma il //sistema// rete neurale può elaborare dati grazie all'**elevato numero di neuroni** e di **interconnessioni** tra neuroni.
 +Analogamente anche il percettrone ha diverse linee di input. L'output prodotto dal percettrone è il risultato di una [[neurali:percettrone#funzione di attivazione]] (lineare oppure non lineare)
 +
 +====Utilizzi====
 +Attualmente le reti neurali possono fornire soluzioni a problemi come il riconoscimento di forme, o simili, come il raggruppamento in categorie di oggetti. Quindi riescono ad applicare regole semplici anche per i problemi complessi, senza il bisogno di dover fornire esplicitamente queste regole, utilizzando solo un addestramento iniziale.
 +In breve, si usano quando non esiste un algoritmo noto.
 +
 +Alcune delle caratteristiche distintive delle reti neurali (artificiali) rispetto ai tradizionali sistemi di elaborazione automatica dei dati sono:
 +  * hanno una fase di **apprendimento** con dati di input appositamente preparati, diversa dalla fase di **produzione**
 +  * possono fornire un adeguato output anche quando si forniscono in input dati diversi da quelli della fase di apprendimento
 +
 +Possono risolvere diversi tipi di [[neurali:problemi e applicazioni]]
 +===== Apprendimento oppure Ottimizzazione? =====
 +
 +Durante la fase di [[neurali:addestramento|apprendimento (o addestramento)]] vengono sistemati sulle connessioni tra i neuroni ([[neurali:neuroni#sinapsi]]) dei pesi (numerici) che determinano e modificano l'output.
 +L'addestramento iniziale (con input prestabiliti) può essere ripetuto così a lungo da ottenere per questi input esattamente le risposte attese per input di cui sono noti gli output, ma questo potrebbe portare ad ottenere risposte errate per altri input ([[neurali:parametri di progettazione ann|overfitting]]).
 +
 +Per questo motivo, durante l'addestramento, si svolge una specie di **problema di ottimizzazione**: non si desidera fissare dei pesi che producono tutti i risultati attesi, ma quelli che minimizzano l'[[neurali:errore quadratico medio]] considerando l'intero gruppo di dati.
 +
 +==== Approfondimento ====
 +
 +metodi risolutivi del precedente problema di ottimizzazione:
 +  - standard optimization heuristics
 +    - simulated annealing
 +    - [[neurali:Algoritmo genetico]] [[http://en.wikipedia.org/wiki/Genetic_algorithms|Genetic algorithms]]
 +  - gradient descent algorithms
 +    - backpropagation (richiede di conoscere gli output desiderati) > apprendimento supervisionato
 +     - RPROP
 +    - quickprop
 +  - metodo dei minimi quadrati
 +  - regressione lineare
neurali/introduzione.txt · Last modified: 2023/06/09 09:04 by profpro