Intelligenza artificiale
È possibile costruire macchine intelligenti?
A. Turing manifestare un comportamento intelligente -> non importa se la macchina pensa davvero come una persona o semplicemente agisca come se pensasse.
Trucchi
Per questo nasce il test di Turing. La macchina può ingannare l’interrogatore sembrando intelligente o può dimostrare davvero di esserlo?
Applicazioni importanti
- La visione è una delle applicazioni più importanti.
- Poi c’è il riconoscimento del parlato (dettare, assistente vocale).
- La guida autonoma: non c’è un linguaggio ma bisogna interpretare una scena visiva. Bisogna fare predizioni su tutti gli elementi della scena.
Come ottenere una macchina intelligente
Approccio logico-simbolico
Struttura: i processi di pensiero (ragionamento) sono descrivibili attraverso un sistema di regole logiche (motore inferenziale), che si applica a rappresentazioni simboliche strutturate (base di conoscenza).
Le regole dell’intelligenza di fatto sono applicabili solo a situazioni molto ristrette (sillogismi); quando si vogliono usare regole generali tutto l’apparato teorico vacilla. Questi approcci tentano comunque di generare delle teorie rappresentatrici! Nasce ad esempio lo HIP (human information processing).
Ontologie per la comprensione del linguaggio
- ESSERE: Isa links (presenti anche i non isa links) -> collegamenti logici (“is a”). Da un concetto iniziale (memoria semantica) arrivo alle sottocategorie.
- AVERE: Has. Posso fare delle inferenze: mi permette di muovermi in questo spazio di conoscenza e fare conclusioni.
Limitazioni
- Molte conoscenze da trasmettere al dominio (soprattutto con conoscenze informali, empiriche). Come trasportare la capacità mentale di fare confronto con il passato per valutare la situazione attuale? Si può usare un metodo probabilistico, ma è altamente soggetto ad errori.
- Il sistema elabora in modo deterministico. Processi simbolici sono indipendenti dallo specifico “medium” su cui vengono realizzati (ci sono delle regole per manipolarli).
Approccio neurale (connessionismo)
Simulare il funzionamento dei neuroni e delle reti di neuroni (= medium). Il computer è solo il mezzo che simula la rete di neuroni. D. Hebb -> le funzioni mentali dipendono anche dai collegamenti e i cambiamenti neuronali.
Computazione neurale
Non avviene all’interno di un computer, è analogico. Si basa su un’architettura non centralizzata (a differenza del computer) è distribuita e parallelo (come il cervello). Queste varie unità comunicano tra loro con messaggi numerici scalari (analogici) -> PdA. Non sono solo accesi o spenti! I neuroni sono altamente interconnessi, il calcolo viene distribuito perché il singolo neurone fa poco da solo, condivide. Tutte queste semplici unità interagiscono in modo adattivo, non c’è un’interazione fissa. Il tipo di comunicazione può cambiare (input e apprendimento).
Proprietà principali
- Apprendere dall’esperienza: si parte da una tabula rasa (non è così per gli esseri umani).
- Non richiedono conoscenza esplicita del problema.
- Generalizzazione (si adattano a situazioni caotiche o contraddittorie).
Reti neurali artificiali
Sistemi di elaborazione delle informazioni:
- Caratterizzate dalla capacità di apprendere compiti complessi (sono un metodo di machine learning).
- Inspirati dai sistemi biologici (catturarne i principi base).
Versioni moderne: Reti Neurali Profonde (deep learning) -> sviluppi di applicazioni di IA (risultati molto superiori rispetto ad altri machine learning).
Neuroscienze: studiare come ricostruire le funzioni cognitive come proprietà emergente di un sistema neurale. Interazioni e dinamiche complesse combinate con procedure di apprendimento (approccio emergentista -> “ricostruire” le funzioni psicologiche).
Le reti neurali
Il neurone rileva il verificarsi di una o più condizioni e segnala ciò che ha rilevato attraverso la sua frequenza di scarica. I neuroni possono ricevere segnali da altri neuroni e formare strati di rilevatori più complessi. L'apprendimento modifica le interazioni adattive tra neuroni!
Metafora con rilevatore di fumo: specializzato a rilevare solo fumo, monitora la presenza di fumo in un ambiente. Se cambiano le condizioni ambientali (inizia ad esserci fumo) si attiva un meccanismo che fa comunicare il rilevatore con un sistema di allarme.
L'informazione viene codificata non solo in modo binario ma anche analogico (non solo un tutto o nulla ma un continuum -> frequenza a riposo fino a frequenza di scarica massima). Data la specificazione dei singoli neuroni (sono uguali ma ricevono info diverse), la gerarchia di strati è necessaria per codificare informazioni sempre più complesse. La complessità emerge dall'interazione.
"La struttura di un neurone che codifica un particolare visivo è la stessa di uno che codifica un'intera faccia."
- Memoria del rilevatore (integrata): mantenere attiva una certa informazione in quei neuroni (MBT, WM) anche quando non c'è più stimolazione.
- Operazioni (non logiche o aritmetiche): accumulo di evidenza, valutazione, comunicazione.
- Elaborazione complessa: rilevatori altamente sintonizzati, organizzati in strati. Non una sola sequenza di operazioni, ma varie, che possono anche avvenire in parallelo.
Principi base dei sistemi connessionisti
- Neuroni (unità di elaborazione): segnalano attraverso la loro attivazione.
- Reti neurali: connettono, coordinano, amplificano, selezionano pattern di attivazioni su neuroni.
- Apprendimento: organizza le reti per eseguire compiti e per sviluppare modelli interni dell'ambiente.
Il neurone
Un neurone formale [McCulloch & Pitts] è un modello matematico che cerca di catturare gli aspetti fondamentali del funzionamento neuronale. Si usa questa semplificazione perché si è dimostrata come la più efficace, usare sistemi più complessi potrebbe dare solo problemi. In breve: Integra i segnali in ingresso e invia ad altri neuroni il risultato.
L'input che un neurone riceve è dato dalla sommatoria delle attivazioni dei neuroni cui è connesso: si calcola moltiplicando il segnale [X] proveniente dallo specifico neurone per il peso sinaptico [W] (eccitazione o inibizione) sulla connessione. Devo poi trasformare questo segnale in ingresso, in segnale di uscita -> trasformato nel valore di attivazione (o di output) [X]: valore tipicamente compreso tra 0 e 1 (frequenza di scarica del neurone) tramite la funzione di attivazione o di output (tipicamente sigmoide).
Efficacia sinaptica: quanto forte è il segnale che poi verrà trasmesso. Ad esempio una sommatoria di input con valore 100, verrà trasformato in un output Oi uguale a 1. W è lo scopo dell'apprendimento. Sarà esso a modellare il peso sinaptico, per rispondere ad un certo stimolo. Quando viene inviata corrente ad un neurone, anche se si continua ad aumentare la quantità di corrente inviata, ad un certo punto c'è una saturazione del neurone (frequenza di scarica massima).
L'osservazione di neuroni che rispondono all'orientamento delle facce ci fa capire come la scarica di risposta possa modularsi, da un valore minimo ad uno massimo. Non ha quindi una corrispondenza binaria. Ma di fatto, non esiste il neurone che risponde alla barra orientata (o alle facce, ecc) perché nato per fare solo quello; risponde a quelle caratteristiche in virtù del modo in cui è connesso ad altri neuroni!
Tramite esperimenti con barre di luce oppure con luci spot, si è ipotizzato il campo recettivo di un neurone. Generato dalla sovrapposizione di neuroni con campi recettivi circolari. Usare una luce diffusa su tutto il campo non produce risposta perché vengono attivate sia le zone eccitatorie che inibitorie. La complessità delle risposte di qualunque neurone dipende dalla connettività con i neuroni degli strati precedenti. Non esiste un neurone semplice e uno complesso, ma neuroni che hanno risposte più o meno complesse. E questo dipende dalla connettività che hanno.
Reti di neuroni
L'architettura della rete identifica:
- Topologia (gruppi o strati diversi di neuroni) -> come sono disposti i neuroni; si possono distinguere tipi diversi di strati:
- Neuroni di input (info dall'ambiente) -> strato di input.
- Neuroni di output (dipende dal compito che la rete deve risolvere) -> strato di output (ognuno per ogni categoria).
- Unità nascoste (non sono a contatto con l'ambiente) e unità visibili (a contatto con l'ambiente, input e output insieme). Quando ho almeno più di uno strato nascosto ho una rete profonda.
- Schema di connettività (come i neuroni sono collegati tra loro)
- Reti feed-forward (bottom-up): da input si passa a unità nascoste (se ci sono) fino a unità di output.
- Reti ricorrenti (top-down o feedback): ci sono connessioni bidirezionali, l'info può andare all'indietro.
- Reti interamente ricorrenti: come le reti ricorrenti, ma anche con connessioni intra-strato (laterali). I neuroni dello stesso gruppo comunicano tra loro (tutto è connesso con tutto). Il cervello ha un'architettura ricorrente!
Classi diverse di reti diverse spesso richiedono algoritmi di apprendimento diversi. Nelle reti artificiali non vengono distinti neuroni eccitatori e inibitori.
Fondamenti matematici delle reti neurali artificiali
Sistemi non-lineari: più potenza -> più problemi.
Doppia sommatoria: Sommando tutti gli elementi di una tabella. Somma con un indice e poi somma con un altro indice.
Gradiente: Somma delle derivate parziali.
Teoria dei grafi: Formalismo matematico usato per descrivere e studiare reti di elementi che interagiscono tra loro.
- Nodi (vertici o unità): definiscono le variabili da modellare.
- Archi (connessioni o spigoli): definiscono quali variabili interagiscono direttamente.
- Pesi: definiscono la forza delle interazioni.
Grafi direzionati: relazioni di parentela. Grafi non direzionati: si parla di grado di affinità. Si possono influenzare le une con le altre. Non si sa quale rappresenta la causa e quale l’effetto.
Non direzionato = bidirezionali + simmetrico.
Teoria della probabilità
Usato per descrivere e studiare i sistemi stocastici.
Motivi per cui li studiamo:
- Ignoranza: spesso osserviamo un sistema parzialmente.
- Spesso i dati contengono errori ed approssimazioni.
- Alcuni sistemi sono intrinsecamente stocastici (fisica quantistica, sistemi complessi).
Variabile Casuale è una variabile misurabile che può assumere valori diversi in dipendenza da qualche fenomeno aleatorio, rappresentato attraverso una distribuzione di probabilità. Non significa necessariamente che la variabile abbia un comportamento impredicibile (totalmente random).
Probabilità bayesiana
La VC non ha una probabilità fissa, ma abbiamo un grado di credibilità (degree of belief). Le informazioni che vengono fornire cambiano la nostra interpretazione.
Inferenza: data una certa evidenza (variabili osservate), vogliamo trovare la distribuzione di probabilità delle variabili non osservate (ipotesi). Il grado di credibilità di ciascuna ipotesi viene costantemente aggiornato in base all’evidenza corrente.
Apprendimento: vogliamo trovare il set di parametri che meglio descrive un insieme di osservazioni (massima verosimiglianza).
Algebra lineare
- Vettore: da un punto di origine a coordinate tridimensionali (le dimensioni sono variabili).
- Matrice: organizza in tabella i vettori di qualsiasi dimensione.
- Iperpiano: sottospazio di dimensione inferiore di uno (n − 1) rispetto allo spazio in cui è contenuto (n).
- Trasformazioni lineari (mapping): tutte le trasformazioni semplici senza la piegatura, che non è lineare.
Analisi matematica
Come le funzioni cambiano nel tempo e nello spazio.
- Derivata: sensibilità al cambiamento di una certa quantità (variabile dipendente), la quale è determinata da un’altra quantità (variabile indipendente). Definita per ogni punto della funzione. È una retta che interpola la curva. La derivata f’ di una funzione f in un preciso punto corrisponde alla pendenza della retta tangente alla curva della funzione in quel punto (la funzione deve essere continua!).
- Gradiente: generalizza il concetto di derivata a funzioni multivariate. Corrisponde al vettore le cui componenti sono le derivate parziali della funzione. Nelle multivariate calcoliamo il gradiente medio di discesa o salita della funzione. Sarà un vettore con due componenti (ognuno contiene una derivata parziale).
- Massimi e minimi: punti stazionari, dove la curva raggiunge il valore massimo o minimo. Se la derivata è graficamente orizzontale allora è uguale a 0. Possono essere locali o globali.
Modelli non-lineari
Come un pendolo doppio. Estremamente sensibile alle più piccole perturbazioni.
Reti neurali biologiche vs. reti neurali artificiali
Cosa manca nel tipico neurone artificiale:
- Organizzazione dei contatti sinaptici.
- Differenziazione tra neuroni eccitatori ed inibitori.
- Dinamica del neurone con potenziali di azione (ma vedi “spiking neural networks”).
Cosa manca nelle reti artificiali:
- Struttura laminare.
- Organizzazione colonnare.
- Mappe topografiche (vedi “SOM”).
- Numero di neuroni (10^11 neuroni che comunicano con 10^4 neuroni).
Apprendimento
Trovare l’insieme dei pesi delle connessioni che permette alla rete di produrre una risposta appropriata ad un certo input. Regola di Hebb: se due neuroni collegati sono simultaneamente attivi, l’efficacia sinaptica (= peso della connessione) viene aumentata.
Tipi di apprendimento
Partiamo da una serie di segnali sensoriali (input, vari x). Definiamo l’apprendimento sulla base degli scopi:
- Apprendimento supervisionato: “imparare a produrre un output a partire dall’input presentato”. Quale va associato a quel particolare input. Dico alla gente qual è l’output che voglio. Esempio -> Da una serie di fotografie, il compito: associare a ogni fotografia la corretta categoria dell’oggetto (output desiderato). Dopo l’apprendimento la rete sarà in gradi di farlo in autonomia. Riuscirà a generalizzare l’output? Questo apprendimento richiede l’etichettamento! Il condizionamento classico può essere visto come A. Supervisionato, perché c’è un’associazione stimolo-risposta.
- Apprendimento per rinforzo: non c’è una info specifica sulla risposta. Esempio -> imparare a eseguire una certa azione. Ci sarà una risposta all’output prodotto, di tipo qualitativo. “Massimizzare il rinforzo nel lungo termine”. Utile quando il problema non è ben definito, ma sono definti gli scopi.
- Apprendimento non supervisionato: Scoprire quali info in arrivo sono più informative (importanti). “Vengono costruite delle rappresentazioni, senza uno scopo a priori”. Possono poi essere usate in seguito per eseguire un computo. Chiamato apprendimento per osservazione, statistico, implicito. Distinguere i dati utili dal rumore.
Apprendimento automatico
Machine Learning: insieme di metodi e algoritmi che permettono ad un software di fare ciò che è naturale per essere umani ed animali: apprendere dall’esperienza. Gli algoritmi di machine learning apprendono direttamente dai dati. Esistono tipi diversi di apprendimento, che hanno scopi diversi, e molti algoritmi di apprendimento diversi.
La qualità dell’apprendimento tipicamente migliora all’aumentare del numero di esempi disponibili per l’apprendimento (nb: ideale per “big data”). Le reti neurali artificiali sono uno dei metodi di machine learning (altro esempio importante: metodi “kernel”, es. SVM). Le reti neurali sono alla base del deep learning, motore dei recenti successi dell’Intelligenza Artificiale in svariati ambiti di applicazione.
Retta di regressione: da dati di input produco un output generalizzabile. Associare i dati di input a valori continui.
Clustering: scoprire raggruppamenti nei dati di input.
Aspetti generali dell’apprendimento delle reti neurali
- Valori iniziali dei pesi sinaptici vengono assegnati in modo casuale (es. tra -0.1 e +0.1) o messi a zero. Distribuzione uniforme centrata su 0. Molti algoritmi non permettono di mettere zero (se presento un input su una rete con i pesi messi a 0, non produce output).
- Presentazione ripetuta dei pattern di addestramento.
- Apprendimento supervisionato: input + target (output desiderato).
- Apprendimento non-supervisionato: solo input.
- Apprendimento = come cambiano i pesi. Ovvero il calcolo di Δw rispetto a w precedente. L’aggiornamento può venire dopo ogni pattern (online learning) oppure dopo ogni epoca di apprendimento (batch learning); cioè dopo tutti i pattern.
- Per non stravolgere o cancellare le conoscenze precedentemente apprese, viene utilizzata solo una frazione della modifica sinaptica calcolata, definita tramite la costante η - learning rate (tasso di apprendimento).
Apprendimento associativo: la regola di Hebb
Se due neuroni collegati tra loro sono contemporaneamente attivi, l’efficacia sinaptica della connessione viene aumentata.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Intelligenza Artificiale
-
Intelligenza Artificiale
-
Intelligenza artificiale
-
Intelligenza artificiale e intelligenza umana