Natural Computing

 

 

 

 

 

 

 

 
Reti Neurali Artificiali

:: Argomenti Introduttivi

Le Reti Neurali Artificiali (RNA) compongono una vasta famiglia di sistemi di elaborazione particolarmente adatti a risolvere problemi non lineari.

Una funzione è lineare quando rispetta le seguenti condizioni:

1) f (c × x) = c × f (x)

2) f (x1 + x2) = f (x1) + f ( x2)

Un sistema è non lineare quando le funzioni che sottendono la sua fenomenologia non rispettano queste condizioni.

Quando il sistema oggetto di studio è caratterizzato da molte funzioni non lineari, tentare di ricostruire le regole che lo caratterizzano attraverso una Rete Neurale Artificiale può risultare non solo utile ma l'ultima via praticabile.

Una Rete Neurale Artificiale è in genere composta da tre elementi fondamentali:

  • Singoli Elementi che emulano il comportamento dinamico dei neuroni biologici
  • Diverse possibili Architetture di Connessione tra le singole unità
  • Regole o leggi dinamiche ricorsive per aggiornare le connessioni tra le unità

Adattando dinamicamente la forza delle connessioni tra le unità che la costituiscono una RNA ben progettata è in grado di scoprire le regole sfumate che sottendono il sistema studiato e di riprodurre quindi tutti i comportamenti che quel sistema è in grado di manifestare nel tempo.

La flessibilità degli algoritmi di apprendimento permette di integrare nel tempo le nuove informazioni disponibili e di aggiornare, in tempo reale, le leggi di relazione tra le variabili che sottendono la fenomenologia studiata. Quest'importante caratteristica dei Sistemi a Reti Neurali Artificiali consente un monitoraggio continuo delle dinamiche sottese ed un aggiornamento flessibile delle regole di volta in volta ricostruite.

Per avere una itroduzione più dettagliata, con una descrizione delle equazioni di convergenza dell'algoritmo Back Propagation, scarica l'articolo cliccando qui su "RNA" oppure entrando nella sezione Download del sito [ultima voce del menù principale].

:: AREE DI APPLICAZIONE DEI SISTEMI A RETI NEURALI ARTIFICIALI

Ci sono molte tipologie di problemi che possono essere affrontati con Le reti neurali. Possiamo accennare qui a due principali classi di problemi affrontabili con Sistemi a RNA:

1) Problemi Endogeni;

2) Problemi Esogeni.

La classe dei Problemi Endogeni è costituita da tutte quelle situazioni nelle quali, date N variabili, occorre scoprire la migliore matrice di connessione in grado di riprodurre le dinamiche tipiche del fenomeno indagato o di costruire scenari possibili ma non ancora realizzati. Esiste una vasta famiglia di RNA (RNA Auto Associate), estremamente ricca nelle topologie e nella scelta delle equazioni che ne governano il comportamento. Ciascun modello è in grado di risolvere questi problemi e di simulare scenari evolutivi diversi a partire da diversi vincoli assegnati alle variabili.

La classe dei Problemi Esogeni si ha quando, partendo da N variabili note e sulle quali si hanno abbondanti dati, si vuole risalire ai valori di M variabili diverse da quelle di partenza ma contestuali nel tempo alla evoluzione delle prime N.

Se le M variabili seguono nel tempo le prime N il problema è tipicamente individuato come problema previsionale. Fanno parte di questa classe i problemi legati alla previsione temporale di segnali.

Dato un insieme di N variabili, un ulteriore esempio di problema esogeno è rappresentato dalla previsione della appartenenza a una di M classi della configurazione data. Le Reti Neurali Artificiali tipicamente impiegate in questi contesti sono del tipo Etero Associate. Anche in questo caso le architetture e gli algoritmi disponibili sono numerosi. Ogni modello va scelto e progettato con cura in funzione delle caratteristiche dinamiche del fenomeno in studio. Per ognuno degli esempi sopracitati una tipica architettura di rete può essere quella riportata di seguito:

:: ESEMPI DI APPLICAZIONI

Progettazione di Spazi Formativi e Simulazioni di Scenario

Un'applicazione dei sistemi a reti neurali per la previsione di scenari evolutivi è stata da me curata per uno studio della relazione tra variabili psicoattitudinali nella progettazione di spazi formativi efficaci.

In sostanza è stato possibile addestrare una RNA a riconoscere le caratteristiche di un gruppo di riferimento sul quale era previsto un intervento formativo di tipo esperienziale. Ad apprendimento ultimato è stato possibile "interrogare" la rete per simulare le relazioni tra variabili e, dunque, su quali caratteristiche del team sarebbe stato più opportuno lavorare in formazione per aumentare ed ottimizzare l'efficacia dell'intervento.

Di seguito è riportata una schermata di una simulazione:

Nella figura le piccole frecce indicano i vincoli posti al sistema. In sostanza si è trattato di forzare la rete a descrivere il possibile cambiamento di scenario a fronte di un intervento sulle variabili di apprendimento "Reflective Observation" e "Abstract Conceptualization" cioè le variabili che, nel modello di apprendimento esperienziale di Kolb, individuano uno stile di apprendimento e problem solving di tipo divergente.

Si può notare che il sistema ha risposto restituendo le attivazioni conseguenti di tutte le altre variabili ed indicando dunque quali cambiamenti ci si può aspettare, su quel team, a fronte di un intervento che solleciti le due dimensioni date come vincoli. Questo tipo di simulazioni si sono rilevate molto utili per progettare una sequenza di learning object o attività formative (un learning path), il più coordinate ed efficaci possibili in relazione alle caratteristice del team.

L'impiego di reti neurali in questo studio è stato particolarmente rilevante perchè, oltre a consentire la progettazione di spazi formativi efficaci, ha consentito di verificare la coerenza delle idee ed ipotesi avanzate dagli autori di riferimento nei loro lavori sperimentali e nella letteratura prodotta. Nella teoria dell'experiential learning di Kolb, ad esempio, è stato possibile verificare la coerenza delle ipotesi sulle diverse caratteristiche degli stili di apprendimento in relazione ad altre caratteristiche legate alla personalità, agli stili cognitivi ecc...

Questo tipo di esperimenti ha poi gettato le basi per la progettazione di un sistema di profiling da impiegare sia per la selezione sia per l'ottimizzazione di risorse in ambito human resorce e, in ambito scolastico, nell'orientamento.

 

Campio biomedico: previsione della struttura di una proteina

Tra le applicazioni forse di maggior rilievo in campo biomedico possiamo citare qui l'impiego di Reti Neurali Ricorrenti per la previsione della struttura secondaria delle proteine.
Le proteine sono tra gli "oggetti" biologici più importanti per la nostra vita ... non esiste processo vitale che non chiami in causa una qualche particolare proteina (o enzima) con caratteristiche strutturali adatte a favorire, innescare o causare le giuste dinamiche per il processo in questione. I nostri muscoli, ad esempio, si contraggono e si rilassano grazie alla particolare proprietà di alcune strutture proteiche filiformi capaci di scorrere l'una sull'altra ...

Tutte le proteine sono per così dire "generate" a partire da 20 principali aminoacidi. La sequenza con la quale si susseguono gli amminoacidi che compongono una proteina determina in gran parte le proprietà strutturali tridimensionali della proteina, e questa struttura, a sua volta, determina le caratteristiche funzionali della proteina stessa.

Esistono diversi procedimenti per prevedere, a partire da una data sequenza di amminoacidi, le caratteristiche strutturali di una proteina. Negli ultimi dieci anni tuttavia si è assistito ad un notevole sviluppo di metodologie che impiegano Reti Neurali di diversa architettura per la previsione della struttura secondaria delle proteine.

Senza entrare nei dettagli, la metodologia di impiego consiste sostanzialmente nell'addestrare una particolare rete neurale a riconoscere e prevedere un campione di addestramento costituito da sequenze di amminoacidi (input della rete neurale) che danno origine a strutture proteiche note (output della rete neurale). Ad addestramento ultimato la rete neurale è in grado di prevedere la struttura tridimensionale di una proteina a partire da una sequenza di amminoacidi mai vista prima.

Per chi fosse interessato a questo affascinante campo della bioinformatica che vede l'impiego di metodologie AI per la soluzione di pproblemi complessi, riporto di seguito alcuni link utili:

[0] http://www.cs.bc.edu/~clote/ComputationalMolecularBiology/

[1] http://www.embl-heidelberg.de/~rost/Papers/pre1999_tics/paper.html

[2] http://www.osti.gov/energycitations/product.biblio.jsp?osti_id=27852

[3] http://web.mit.edu/rsi/www/pdfs/papers/95/jungert.pdf

[4] http://satya.host.sk/2002.ProteinSecondaryStructureDBNN.pdf

[5] http://www.hgmp.mrc.ac.uk/GenomeWeb/prot-2-struct.html

[6] http://www.stanford.edu/~ythomas/BiocProject.pdf

[7] http://cubic.bioc.columbia.edu/papers/2003_rev_nn/paper.pdf

[8] http://jmlr.csail.mit.edu/papers/volume4/baldi03a/baldi03a.pdf