Guida Cos'è il Machine Learning in sintesi...forme di Machine Learning, algoritmi e definizioni

Kode

Utente Emerald
10 Dicembre 2013
1,226
81
371
623
Ultima modifica da un moderatore:
machinelearning.jpg

All'interno di questo capitolo ho cercato di riassumere ben 1800 pagine di libri sul ML, non è stato facile sintetizzare cosi tanti concetti. Per questo motivo, ho deciso di dare solamente una panoramica generale di quelle che sono le varie forme di Machine Learning.

Questo perché nel prossimo capitolo andremo a testare un algoritmo per il Supervised, uno di Unsupervised e uno di Reinforcement Learning su Dataset ad-hoc. Questo capitolo ha lo scopo di farvi acquisire una panoramica generale di vari algoritmi di ML disponibili e utilizzati oggigiorno per vari obiettivi.






1    Tipi di Machine Learning



Una caratteristica comune che si ha sulle varie tipologie di Machine Learning è incentrata sull'avere in input i dati e i risultati per dedurre delle regole. Possiamo mettere a confronto come elabora i dati un modello di programmazione tradizionale rispetto a quello definito dal Machine Learning.

Screenshot 2021-02-27 at 12.31.23.png

Da come possiamo notare, l'unica differenza che si ha è che nel modello di Machine Learning si conoscono a priori tutti i dati I/O del modello di programmazione tradizionale (Data e Answers) ma non come essi sono correlati (Rules). Tali informazioni rappresentano i pattern da dedurre tramite il modello predittivo costruito tramite l'utilizzo degli algoritmi di Machine Learning.

Proprio tali algoritmi vengono differeti tramite vari tipi:
1. Supervised Learning: Partendo da alcuni elementi di input si deducono dei valori noti di output andandone a definire le regole.
2. Unsupervised Learning: Partendo da un set di informazioni, senza fare distinzioni tra dati di input e dati di output, si deducono, tramite il modello, i pattern che mettono i relazioni i dati del dataset.
3. Reinforcement Learning: Forma di apprendimento di pattern tramite un processo di intensificazione "trial-and-error" in cui il risultato viene migliorato in relazione ad un particolare set di fattori.

Una caratteristica nota che andremo a vedere per ogni tipo di machine learning è il compromesso che si ha tra bias (distorsione o presenza di errori) e varianza (variazione degli errori).


2    Compromesso tra Bias e Varianza



Il compromesso bias-varianza si riferisce anche alla generalizzazione del modello. In qualsiasi modello, c’è un equilibrio tra distorsione (bias), che è il termine di errore costante, e la varianza, che è la quantità in base alla quale l’errore può variare tra diversi set di dati. Pertanto, alta distorsione e bassa varianza corrisponde ad un modello che è costantemente errato nel 20% delle volte, mentre un modello a bassa distorsione e ad alta varianza sarebbe un modello che può essere sbagliato in qualsiasi punto dal 5% al 50% delle volte, a seconda dei dati utilizzati per il training.

Si noti che la distorsione e la varianza in genere si muovono in direzioni opposte l’una dall’altra; l’aumento della distorsione di solito porta a una minore varianza e viceversa. Quando si crea il modello, il problema specifico e la natura dei dati dovrebbero consentire all’utente di prendere una decisione informata su dove rientrare nello spettro della distorsione.

In generale, l’aumento della distorsione (e la riduzione della varianza) si traduce in modelli con livelli di prestazione relativamente garantiti, che possono essere fondamentali in determinate attività. Inoltre, per produrre modelli che si generalizzano bene, la varianza del modello deve essere ridimensionata in base alle dimensioni e alla complessità dei dati di allenamento. I set di dati semplici e di piccole dimensioni devono in genere essere appresi con modelli a bassa varianza e set di dati complessi e di grandi dimensioni spesso richiedono modelli con varianza più elevata per apprendere appieno la struttura dei dati.


3    Supervised Learning



SL.png

Il Supervised Learning è uno dei metodi più popolari e usati oggigiorno. Il processo che vede l'applicazione del Supervised Learning inizia dai dati di input che rappresentano il dataset. Il dataset viene diviso prima in variabili di input e variabili di output poi i vari esempi (o tuple) vengono divise in Training Set e Testing Set. Il Training Set viene utilizzato per costruire un Modello di Predizione tramite l'applicazione dell'algoritmo che determina un modello in grado di processare i dati del Testing Set per definire delle predizioni (aventi una precisione probabilistica molto alta) sulle variabili di output.

La fase di training serve per trovare delle regole in grado di far combaciare le variabili di input con le variabili di output per le tuple del training set. Oggigiorno, il Supervised Learning viene affiancato o sostituito da tecniche più specifiche chiamato Deep Learning ed è basato su modelli reali in grado di simulare il comportamento del cervello umano come, ad esempio, tramite le reti neurali. Uno dei vantaggi del Deep Learning rispetto al Supervised Learning è che la precisione e le performance di un modello predittivo aumenta in maniera direttamente proporzionale al numero dei dati e di neuroni della rete (mantenuti in strati intermedi nascosti) cosa che, per il supervised learning non succede e che, anche se si dispone di un numero di dati maggiore, le performance si "saturano" più velocemente ossia non si ha un miglioramento proporzionale ai dati che si hanno in input.

n9fgba8b0qr01.png

Dopo questa breve chiacchierata, possiamo ora passare ad alcuni algoritmi di Supervised Learning.

3.1    Classificazione

La classificazione è una forma di Supervised Learning in grado di dover categorizzare delle informazioni (variabili di output) in classi. I dati di output che definiscono tali tecniche sono di tipo categoriche, ossia, come detto anche nel capitolo 1 della nostra guida, sono dei dati che hanno come dominio un insieme di elementi logici come prodotti per il supermercato, stanze di una casa o altri domini prettamente non numerici.

I tipi di classificazione sono variabili a secondo del numero di classi a cui può appartenere un valore di output, ossia un numero pari alla cardinalità del dominio della variabile di output. All'interno di questa guida non ci soffermeremo su tale livello di dettaglio, per questo elenchiamo solamente le principali categorie.

1. Classificatori binari: Algoritmi basati sulla decisione di stabilire se una variabile appartiene ad una classe scelta tra due disponibili
2. Classificatori multi-classe: Simile al binario ma su un numero di classi maggiori di 2

In entrambi i casi i valori da scegliere sono di tipo categorico.

3.2    Regressione

La regressione è una forma di classificazione con la differenza che, la variabile di output è numerica ossia ha un dominio aritmetico. Le variabili di input non sono differenti rispetto alla classificazione.

3.3    Vari Algoritmi di Supervised Learning

Di seguito ecco una lista con una descrizione ad alto livello per il Supervised Learning. Non andremo a fare distinzioni tra regressione e classificazione dato che alcuni algoritmi possono essere utilizzati per entrambi i metodi e, inoltre, è facilmente deducibile quando un algoritmo è applicabile su dati categorici o dati numerici a secondo se si utilizzano operazioni aritmetiche o solamente di classificazione mediante l'utilizzo di operazioni insiemistiche (che non si limitano alla semplice unione, intersezione o complemento).

3.3.1    Naive Bayes Classifier

Rappresenta uno dei metodi di classificazione più semplici. Ha un discreto livello di precisione e rappresenta un dominio di classificatori probabilistici basati sul Teorema di Bayes:
Dato E un evento noto e una serie di alternative A1,A2,...AN che partizionano lo spazio campionario Ω

Lg9Em56m7Ds2ooF57tsdOpe7HB9jbw5HPQQp7wjvOzBOzDVchpkIh5PZowf49TWKu_5fS21Kf5e9J0QWGl4zclY67mzNisbyXuXTcCd5AkAo74EXQyODAEY7PAtB475gteyFF2ODCuY

9JkiCLtYzEKWMOfc14GeuI8ln2-AdRFYZCixqV-_ZPUium5UJhJdKkKNyWt0cwKT0k4RGrA9RR5IM8fE6X9i5p1cO2W73Ay2XVsEFmyz0aMfy1Q0z__WEzjhGpJBhecTFfHAB6GnZ2s

Si specificano le probabilità di un evento in relazione ad eventi noti.
In generale, dato X un evento e x1,x2...xn eventi noti:

qPi06qRHnhw0raT30F8w8sO7CLqJneDal5MylErj65tRpDenSqxGoVjMsk8PygHvfodHcnsapdeYJBEixl-LdTR_d1GKNURjHFoAsr_4-Xs7vAEwxyHxXJ4zKsg3o6Y0RimdCM-SQrI

Quindi andiamo a misurare il valore che può assumere la nostra variabile in relazione ad eventi noti secondo una visione probabilistica.

3.3.2    Decision Tree

Metodo di classificazione noto per la trasparenza.
Consiste nel costruire un albero decisionale strutturato nel seguente modo:

  1. Partendo dalla radice, si prende in considerazione in ogni livello una variabile del Dataset
  2. Per ogni valore della variabile si crea un nodo figlio
  3. Ogni nodo x ha come valore la probabilità di assumere la sequenza dei valori specificata dentro il percorso che parte dalla radice fino al nodo x.

Il processo di classificazione consiste nel definire i cammini che vanno dalla radice alle foglie dell’albero definendone le probabilità.

decision-tree.jpg

3.3.3    Support Vector Machine

Uno degli algoritmi di classificazione più efficienti in termini di precisione predittiva. Consiste nel trovare degli iperpiani che separano le istanze in classi con risultati differenti. L’iperpiano generato con la distanza massima dal punto più vicino tra le classi del sistema è chiamato iperpiano ottimale che definisce un classificatore lineare. Per maggiori informazioni su questo algoritmo, vi consiglio di leggere la documentazione fornita da Scikit-learn

3.3.4    Decision Rules

Algoritmo di classificazione nella forma:

IF <una condizione di un attributo è rispettata>
THAN <il risultato assume uno specifico valore>

Tali condizioni vengono costruite a partire da un albero decisionale oppure possono derivare direttamente dal dataset. Le performance sono simili agli algoritmi basati su alberi decisionali, sono comprensibili e facili da implementare ma possono essere computazionalmente più costosi.

3.3.5    K-Nearest Neighbours

Classifica gli esempi a secondo del tipo della classe dei k esempi più vicini. La procedura di ricerca e di classificazione può risultare lunga e onerosa, inoltre si deve avere a disposizione l’intero set di training data per poter effettuare con precisione la modellazione. Al variare della K possiamo definire una varianza e un bias differenti. Una delle difficoltà sostanziali di questo algoritmo è il ritrovamento di un K valore pari ad un ottimo compromesso tra Bias e Varianza. Questo algoritmo viene utilizzato prevalentemente non solo per la classificazione ma anche per il decision making all'interno di euristiche per la programmazione vincolata, per ulteriori informazioni, leggi cosa siano le metaeuristiche qui!

4    Unsupervised Learning



UL.png


Tecniche in cui non si utilizzano valori di input per stabilire dei valori di output specifici, non esistono valori di output e molto spesso non ci sta un obiettivo da raggiungere a priori ma si vogliono trovare delle regole o delle proprietà di relazioni all'interno dei dati. Le maggiori tecniche di Unsupervised Machine Learning sono:
- Clustering: Divide gli esempi in gruppi differenti (chiamati cluster) gli esempi di uno stesso gruppo hanno delle proprietà simili che
definiscono i criteri di divisione.
- Association Rules: Scopre delle relazioni basate sulla soddisfacibilità di alcune condizioni basate su un costrutto IF-ELSE
- Anomaly Detection: Identifica gli esempi che sono anomali, ossia che non rispettano delle proprietà comuni (prezzo di una casa troppo alto rispetto alle abitazioni del vicinato)
- Generative Methods: Partendo da alcuni esempi forniti dal set di dati di input, si stabilizzano delle proprietà utilizzate per generare nuovi esempi.

Andiamo ad analizzare gli algoritmi sopra elencati più nello specifico.

4.1    Clustering

Implica la scoperta automatica del raggruppamento naturale nei dati. A differenza dell'apprendimento supervisionato (come la modellazione predittiva), gli algoritmi di clustering interpretano solo i dati di input e trovano gruppi naturali o cluster nello spazio delle caratteristiche. La valutazione dei cluster identificati è soggettiva e può richiedere un esperto del dominio, sebbene esistano molte misure quantitative specifiche per i cluster. In genere, gli algoritmi di clustering vengono confrontati accademicamente su set di dati sintetici con cluster predefiniti utilizzati da un algoritmo per scoprire i vari patterns.

Non andremo a parlare degli algoritmi di clustering nello specifico, le strategie di clustering più rilevanti sono:
  • Affinity Propagation
  • Agglomerative Clustering
  • BIRCH
  • DBSCAN
  • K-Means
  • Mini-Batch K-Means
  • Mean Shift
  • OPTICS
  • Spectral Clustering
  • Mixture of Gaussians
Nel capitolo successivo andremo a vedere uno di questi algoritmi all'interno delle API scikit-learn.

4.2    Association Rules

Utilizzabile prevalentemente come algoritmo di classificazione, si basa sul concetto di associazione forte ossia in cui alcuni valori possono dipendendere da altri valori associati a delle variabili dipendenti dentro il dataset. Un esempio pratico di algoritmi di association rules può essere quello di associare degli ingredienti a dei prodotti in base alla combinazione di alcune variabili e costruire un menù intelligente basato sulla disponibilità dei prodotti in magazzino.

Un esempio più diretto può essere:
1. {pasta,uova,guanciale,pecorino,pepe} => {carbonara}
2. {pasta,guanciale,pecorino,pepe} => {tricia}
3. {pasta,pecorino,pepe} => {cacio e pepe}

4.3    Anomaly Detection

Il rilevamento delle anomalie (Anomaly Detection) è il processo di identificazione di elementi o eventi imprevisti nei set di dati che differiscono dalla norma (caso probabilistico maggiore) . Inoltre, il rilevamento delle anomalie viene spesso applicato ai dati senza etichetta, noto come rilevamento delle anomalie senza supervisione. Il rilevamento delle anomalie ha due presupposti di base:

1. Le anomalie si verificano solo molto raramente nei dati.
2. Le loro caratteristiche differiscono notevolmente dalle istanze normali.

Un esempio pratico di rilevamento di anomalie può essere che, date due variabili che hanno rispettivamente il dominio dei colori e il dominio delle lettere, se per il 90% dei casi si ha che ad ogni colore viene associata la lettera iniziale del colore (R con Rosso) se capita un esempio che determina la coppia (C, Verde) essa viene considerata come "anomalia".

4.4    Generative Methods

I metodi di generazione sono molto utili e, a mio avviso, molto difficili da applicare. Si basano sulla gestione delle relazioni derivate dal modello per generare nuovi esempi all'interno del dataset. Una delle applicazioni più curiose che vorrei descrivervi è quello della generazione automatica di immagini, ossia partendo da un algoritmo di apprendimento si consumano informazioni sulla predisposizione di pixel in relazione ad un immagine logica (Il cane ha una sequenza di bit o pixel che è comune per molte immagini). Da ciò, se si raggiunge una precisione molto elevata, possiamo generare tramite il modello immagini intelligenti (immagini di cani autogenerati)

Un altro importante aspetto dei metodi generativi è che è riusciti a creare un Intelligenza Artificiale che compone vera musica! Un esempio lo vediamo con AIVA (Artificial Intelligence Virtual Artistis)


5    Reinforcement Learning



Machine-Learning-Explained3.png


Il Reinforcement Learning sono una serie di tecniche che aiutano un computer ad apprendere un comportamento tramite ripetute interazioni di tipo “trial-and-error” (eseguite per tentativi ed errori) con un ambiente dinamico. Questo approccio consente all’agente di attuare una serie di decisioni (o azioni come nell'immagine sopra) in grado di massimizzare una metrica di ricompensa per l’attività, senza essere esplicitamente programmato per tale operazione e senza l’intervento dell’uomo.

Per introdurre cosa sia il Reinforcement Learning nello specifico, bisogna delineare alcuni termini di un dizionario specifico cosi da poter comprendere meglio tutti i concetti collegati al RL.

- Agente: lo studente e il decisore.
- Ambiente: in cui l'agente apprende e decide quali azioni eseguire.
- Azione: un insieme di azioni che l'agente può eseguire.
- Stato: lo stato dell'agente nell'ambiente.
- Ricompensa: per ogni azione selezionata dall'agente l'ambiente fornisce una ricompensa. Di solito un valore scalare.
- Politica - la funzione decisionale (strategia di controllo) dell'agente, che rappresenta una mappatura dalle situazioni alle azioni.
- Funzione valore - mappatura dagli stati ai numeri reali, dove il valore di uno stato rappresenta la ricompensa a lungo termine ottenuta partendo da quello stato ed eseguendo una particolare politica.
- Approssimatore di funzione - si riferisce al problema di indurre una funzione da esempi di addestramento. Gli approssimatori standard includono alberi decisionali, reti neurali e metodi del vicino più vicino
- Processo decisionale di Markov (MDP) - Un modello probabilistico di un problema decisionale sequenziale, in cui gli stati possono essere percepiti esattamente e lo stato corrente e l'azione selezionata determinano una distribuzione di probabilità sugli stati futuri. In sostanza, il risultato dell'applicazione di un'azione a uno stato dipende solo dall'azione e dallo stato correnti (e non dalle azioni o dagli stati precedenti).
- Programmazione dinamica (DP): è una classe di metodi di soluzione per la risoluzione di problemi decisionali sequenziali con una struttura dei costi di composizione. Richard Bellman è stato uno dei principali fondatori di questo approccio.
- Metodi Monte Carlo - Una classe di metodi per l'apprendimento delle funzioni di valore, che stima il valore di uno stato eseguendo molte prove a partire da quello stato, quindi calcola la media dei premi totali ricevuti su tali prove.
- Algoritmi di differenza temporale (TD) - Una classe di metodi di apprendimento, basati sull'idea di confrontare previsioni temporalmente successive. Forse l'idea più fondamentale in tutto l'apprendimento per rinforzo.
- Modello: la visione dell'ambiente dell'agente, che mappa le coppie stato-azione alle distribuzioni di probabilità sugli stati. Si noti che non tutti gli agenti di apprendimento per rinforzo utilizzano un modello del proprio ambiente.
- Modello globale è un modello che è inserito all'interno di un ambiente generico.

Alcuni conncetti sono nuovi, altri sono noti già dal capitolo precedente, ma, come potete notare, abbiamo una visione differente di modello che si interfaccia verso la relazione tra stato-azione alla distribuzione discreta sugli stati. Non vi preoccupate se tutti questi concetti possano risultare difficili da imparare, con l'apprendimento dei vari algoritmi e la comprensione su come funzionano si potrà comprendere completamente tutti i concetti sopra elencati.

5.1    Tipi di algoritmi per il Renforcement Learning

Possiamo sintetizzare i vari algoritmi per il Renforcement Learning secondo uno schema gerarchico come riportato nell'immagine sottostante:

RL-gram.png

Non vi spaventate, non andremo a discutere di tutti i nodi e i branch dell'albero di divisione degli algoritmi di RL. Ma ci soffermeremo solamente sui macro-tipi più rilevanti: Model-Free RL e Model-Based RL.

Per la complessità e l'ampiezza degli algoritmi, andremo a darvi del materiale di supporto per coloro che vogliono approfondire il RL a basso livello. Nei capitoli successivi non andremo ad analizzare tali algoritmi sotto un punto di vista pratico.

5.2    Model-Free RL vs Model-Based RL

Il Model-Based RL utilizza l'esperienza per costruire un modello interno delle transizioni e dei risultati immediati nell'ambiente. Le azioni appropriate vengono quindi scelte mediante la ricerca o la pianificazione all'interno di un modello globale.

Il Model-Free RL, d'altra parte, utilizza l'esperienza per apprendere direttamente una o entrambe le due quantità più semplici (valori di stato / azione o politiche) che possono ottenere lo stesso comportamento ottimale ma senza stima o utilizzo di un modello globale. Data una politica, uno stato ha un valore, definito in termini di utilità futura che si prevede maturi a partire da quello stato.

La differenza sostanziale è che negli algoritmi Model-Free non si segue un modello globale, viceversa succede per gli algoritmi Model-Based.

5.3    Fonti per il RL

Per chi vuole approfondire ulteriormente i concetti definiti dal Reinforcement Learning, vi lascio una lista di link utili capaci di farvi comprendere appieno alcuni "bottom algorithms" secondo una visione più a basso livello. Consiglio tali contenuti solamente a persone che abbiamo dimestichezza con le distribuzioni probabilistiche, modelli stocastici e che abbiano buone basi di statistica.

  1. Reinforcement Learning From Scratch
  2. Model-Based RL
  3. Model-Free RL


6    Conclusioni



Abbiamo appreso in questo capitolo come sono classificati i vari algoritmi andandone a specificarne qualcuno insieme alle sue caratteristiche. Io consiglio vivamente a chiunque voglia iniziare o approfondire questo campo di applicare gli algoritmi scelti nel pratico poiché solamente testando con mano si può apprendere completamente l'intero algoritmo.

Per questo motivo, il prossimo capitolo sarà incentrato proprio sul "sporcarsi le mani", andremo a creare i nostri primi programmi di ML andando ad utilizzare varie forme e algoritmi.[/SUBSECTION]
 
Una guida bellissima e davvero ben fatta. Futuro è ciò che mi viene in mente leggendola, poichè il machine learning è davvero più o meno applicabile in tutto. Dall'analisi dei dati per la finanza alla misurazione delle prestazioni degli pneumatici di Formula 1 fino alla medicina, scienza, calcio e veramente tante altre applicazioni dove ML potrebbe aver spazio. Persino le auto a guida autonoma sfruttano tali tecnologie e qui statistica e matematica non sono un ostacolo! Complimenti ancora!
 
  • Mi piace
Reazioni: NL3 e Kode
Una guida bellissima e davvero ben fatta. Futuro è ciò che mi viene in mente leggendola, poichè il machine learning è davvero più o meno applicabile in tutto. Dall'analisi dei dati per la finanza alla misurazione delle prestazioni degli pneumatici di Formula 1 fino alla medicina, scienza, calcio e veramente tante altre applicazioni dove ML potrebbe aver spazio. Persino le auto a guida autonoma sfruttano tali tecnologie e qui statistica e matematica non sono un ostacolo! Complimenti ancora!

Considera che siamo veramente agli inizi. Il ML che si usa oggigiorno è incentrato prevalentemente sulla gestione delle Artificial Narrow Intelligence (ANI) che sono delle AI ad-hoc in grado di ottimizzare processi di calcolo predittivo (advertising, self-driving, image recognition, inspection recognition e altri mille campi).

Però una cosa che nessuno nomina e che per me sarebbe un sogno vederla realizzata un giorno, è l'implementazione di un sistema basato sulle Artificial General Intelligence (AGI) che, per capirci, sono IA simili a quelle di "Io Robot" con Will Smith in cui si ha una "simulazione del pensiero umano". Qui ovviamente stiamo parlando di fantascienza, per ora bisogna accontentarsi di Alexa, Siri e Google Assistant.
 
  • Love
Reazioni: GrincH--
Ultima modifica:
Sarebbe bellissimo poter vedere più sistemi di AGI in giro, che siano solo virtuali o implementati su robot, macchine o macchinari possono veramente fare la differenza. Alexa e Siri come le classificheresti?
Sempre ANI, alla fine si basano su un dataset di domanda/risposta andando a categorizzare scegliendo file vocali per una medesima domanda (Ad esempio dovrebbero esserci per la frase "Ehi Siri", moltissime tuple che hanno un file vocale che pronuncia quelle parole affiliato alla risposta comune "Ciao, come posso aiutarti?".

Oggigiorno si sa solo nell'immaginario comune cosa sia un AGI, una IA capace di imparare in maniera indipendente dal dataset di training. Ci sono ad esempio ricerche basate su nuovi paradigmi di ML come il transfer learning in cui una IA ha una memoria a lungo termine in grado di imparare da un dataset di un particolare dominio ("Come si apre la porta"), imparare creando un modello ("Imparare a girare la maniglia") per poi passare ad altre azioni ("Imparare a camminare") cosi da poter adattarsi a secondo delle circostanze e utilizzare i modelli appresi in maniera dipendente dall'evento che hanno di fronte ("Cammino, incontro una porta, giro la maniglia per aprirla per poi tornare a camminare").

Altre "soluzioni" che non ho la minima idea di come potrebbero funzionare è quello di rendere un programma capace di ragionamento semantico, ossia si ha un completo distacco dall'apprendimento proveniente da un singolo dataset ma si riesce ad imparare un concetto secondo la relazione causa-effetto (un pò come un bambino piccolo che impara gli aspetti del mondo).

In entrambi i casi, si costruire un IA generica che potrebbe apprendere velocemente tutto quello che una persona apprende in tutta la sua vita in meno di 24 ore. Ma ripeto, è ancora fantascienza.
 
  • Mi piace
Reazioni: GrincH--
Premetto che ho mancato "singolo" vicino a dataset e ho realizzato come la presenza di una parola possa cambiare un intero concetto.
Avevo decisamente interpretato male il messaggio: con "completo distacco dall'apprendimento proveniente da un dataset" pensavo intendessi non utilizzare alcun dataset e di basarsi solamente su un meccanismo causa-effetto in stile reward. Non avevo capito che stavi portando avanti il discorso sul transfer learning.

Il transfering leaarning invece cerca di modificare tramite il dataset B la rete R1 andandola a migliorarla, quindi al più aggiunge neuroni o ne modifica alcuni (i meccanismi mi sono ignoti).

Con "causa-effetto" si intende il selezionare il miglior dataset per migliorare la rete neurale ma non ci sta nessuna funzione di rewarding (prendila con le pinze questa mia ultima affermazione). Come si fa? Non lo so.

Ora non so se sia stato chiaro, se hai dubbi e ne sai più di me a riguardo mi farebbe piacere se condividi qualcosa con me, perchè sono etra-curioso di sapere ma non trovo fonti che siano "attendibili" a riguardo.
Non ho un granché da dire perché non mi sono mai informato a riguardo, ma intuisco che sia un'idea sensata. Alcuni modelli si è soliti inizializzarli con uno stato random (e.g., la funzione peso nelle reti neuronali) e a questo punto, beh... piuttosto che partire da uno stato random tanto vale provare a riusare lo stato generato da un modello simile che già sappiamo essere ben funzionante su un dominio di applicazione simile. Aggiustare il tiro dovrebbe essere meglio di ripartire da zero, a maggior ragione se sappiamo che il nostro training set non è abbastanza grande per poter allenare propriamente il modello.

Poi vabbé... il machine learning è ancora ben lontano dall'essere una scienza esatta. C'è troppa roba da demistificare e in pratica funziona meglio di quel che ci si aspetta in teoria. Penso che nel transfer learning si usa lo stesso principio che si usa altrove: ci provo, se qualcosa migliora lo tengo e se funziona peggio lo scarto.
 
  • Mi piace
Reazioni: Kode
Consiglio a chiunque sia alle prime armi sul ML di non affrontare ancora il Reinforcement Learning ma concentrarsi prevalentemente sul Supervised Learning e sulla Unsupervised Learning. Se non avete capito qualche concetto, non vi preoccupate... è normalissimo! Queste nozioni saranno più chiare nel capitolo successivo grazie all'applicazione pratica dei vari algoritmi!
 
Sarebbe bellissimo poter vedere più sistemi di AGI in giro, che siano solo virtuali o implementati su robot, macchine o macchinari possono veramente fare la differenza. Alexa e Siri come le classificheresti?
 
Alexa e Siri come le classificheresti?
Intelligenze artificiali deboli (weak AI/narrow AI) con una gamma ristretta di abilità.
Poi ci sono altre classificazioni: quelle di intelligenze artificiali forti/generali (AGI), che sono alla pari con le capacità umane e infine le superintelligenze artificiali (ASI), che sono più capaci di un essere umano.
Ancora i ricercatori e gli scienziati di AI non sono riusciti a realizzare una intelligenza artificiale forte, o una superintelligenza artificiale.
 
Altre "soluzioni" che non ho la minima idea di come potrebbero funzionare è quello di rendere un programma capace di ragionamento semantico, ossia si ha un completo distacco dall'apprendimento proveniente da un dataset ma si riesce ad imparare un concetto secondo la relazione causa-effetto (un pò come un bambino piccolo che impara gli aspetti del mondo).
Non stai essenzialmente descrivendo quello che succede nel reinforcement learning?
 
Reinforcement learning è quello usato per esempio da Boston Dynamics per i suoi robot?
In parole povere, il reinforcement learning è un modello che si basa su una funzione reward che mi premia quando faccio qualcosa di buono. Vedilo come un ragionamento causa-effetto in stile "mi sono bruciato toccando la pentola rovente, la prossima volta farò più attenzione" oppure "se porgo la zampa, il padrone mi da un biscotto". Nella pratica, hai un insieme di regole (e.g., le regole per giocare a scacchi) e hai una funzione reward (scacco matto = +infty, mangiare la regina = +1000, mangiare il pedone = +5, etc...), poi il programma impara a giocare bene facendo trial-and-error nel tentativo di raggiungere stati stati con con alta reward (perdere il pedone adesso mi permette di mangiare la regina dopo: -5 +1000).
Per una spiegazione più dettagliata ti rimando al post iniziale di Kode, ma non so dirti se è in questo modo che funzionano i robot di Boston Dynamics.
 
Non stai essenzialmente descrivendo quello che succede nel reinforcement learning?
Premetto che ho mancato "singolo" vicino a dataset e ho realizzato come la presenza di una parola possa cambiare un intero concetto.
Quindi credo che già saprai che il reinforcement learning e le varie soluzioni di transfering siano differenti perchè nel primo caso non si usa un dataset (non si hanno obiettivi ma funzioni di reward) mentre nel secondo caso si (si conoscono i risultati e si vogliono raggiungerli e in Supervised ML si intende capire come fare).

Quindi la risposta alla tua domanda è: Ni.
Il transfer learning è solitamente inquadrato come un caso speciale di supervised learning. Ad esempio, potremmo avere un classificatore di immagini addestrato su milioni di esempi per uno specifico insieme di variabili, ma vogliamo applicarlo a un diverso set di variabili in cui i dati sono molto più scarsi (qualitativamente o quantitativamente, quindi anche con rischio di overfitting per esempio). Può essere più efficace ridefinire solo parzialmente il modello invece di riqualificare l'intera cosa (perché i nuovi dati sono troppo scarsi per addestrare efficacemente il classificatore di immagini). In altri termini possiamo vedere il transfering learning come un "training parziale" in cui si ridefinisce il modello solo in parte usando un set di dati differente.

Per rendere il concetto un pò più chiaro è come se io ho una mia bellissima rete neurale R1 generata tramite una sessione di training usando un dataset A. Se al posto di A ho un dataset B con altre variabili di bassa qualità analitica, genererò una nuova rete neurale R2 differente da R1 con una qualità minore ovviamente (in casi peggiori ricado pure in overfitting). Se unisco i dataset A e B non mi genero R1 o R2, ma R3. Il transfering leaarning invece cerca di modificare tramite il dataset B la rete R1 andandola a migliorarla, quindi al più aggiunge neuroni o ne modifica alcuni (i meccanismi mi sono ignoti).

Con "causa-effetto" si intende il selezionare il miglior dataset per migliorare la rete neurale ma non ci sta nessuna funzione di rewarding (prendila con le pinze questa mia ultima affermazione). Come si fa? Non lo so.

Ora non so se sia stato chiaro, se hai dubbi e ne sai più di me a riguardo mi farebbe piacere se condividi qualcosa con me, perchè sono etra-curioso di sapere ma non trovo fonti che siano "attendibili" a riguardo.

Intelligenze artificiali deboli (weak AI/narrow AI) con una gamma ristretta di abilità.
Poi ci sono altre classificazioni: quelle di intelligenze artificiali forti/generali (AGI), che sono alla pari con le capacità umane e infine le superintelligenze artificiali (ASI), che sono più capaci di un essere umano.
Ancora i ricercatori e gli scienziati di AI non sono riusciti a realizzare una intelligenza artificiale forte, o una superintelligenza artificiale.

Io le ASI non le considererò come una forma di Intelligenza Artificiale. Nel senso che sono dei concetti talmente astratti basati su conoscenze (anatomiche e tecnologiche) che possiamo solo ipotizzare e, anche filosoficamente parlando, è quasi impossibile immaginare come una cosa fatta da noi sia più intelligente del proprio creatore se non osservandola direttamente. Molti libri la citano spesso ma io evito sempre di citarla. Con la AGI, invece, bene o male si può parlare dato che alla fine siamo consapevoli delle nostre capacità cognitive, di memorizzazione e di ragionamento (anche se qui ho ancora alcuni dubbi).
 
Ultima modifica:
@Kode: il fatto che l’ASI possa essere realizzabile o meno non nega che si possa immaginare ipoteticamente un abbozzo della “forma mentis” di una superintelligenza artificiale.
 
Avevo decisamente interpretato male il messaggio: con "completo distacco dall'apprendimento proveniente da un dataset" pensavo intendessi non utilizzare alcun dataset e di basarsi solamente su un meccanismo causa-effetto in stile reward. Non avevo capito che stavi portando avanti il discorso sul transfer learning.


Non ho un granché da dire perché non mi sono mai informato a riguardo, ma intuisco che sia un'idea sensata. Alcuni modelli si è soliti inizializzarli con uno stato random (e.g., la funzione peso nelle reti neuronali) e a questo punto, beh... piuttosto che partire da uno stato random tanto vale provare a riusare lo stato generato da un modello simile che già sappiamo essere ben funzionante su un dominio di applicazione simile. Aggiustare il tiro dovrebbe essere meglio di ripartire da zero, a maggior ragione se sappiamo che il nostro training set non è abbastanza grande per poter allenare propriamente il modello.

Poi vabbé... il machine learning è ancora ben lontano dall'essere una scienza esatta. C'è troppa roba da demistificare e in pratica funziona meglio di quel che ci si aspetta in teoria. Penso che nel transfer learning si usa lo stesso principio che si usa altrove: ci provo, se qualcosa migliora lo tengo e se funziona peggio lo scarto.

Più che altro non si capiva da come lo avevo scritto, quindi era normale! E si il ML è ancora un ambito di ricerca, quindi ciò che oggi è utile domani è inutile.