Certo, ovviamente non sto parlando sul serio. Deve pur esserci un limite a quanto si può semplificare l'argomento. Tuttavia, per le prime fasi, per comprendere i concetti di base e per un rapido «ingresso» nel tema, potrebbe essere accettabile. Discuteremo alla fine come denominare correttamente questo materiale (opzioni: «Apprendimento automatico per principianti», «Analisi dei dati per neofiti», «Algoritmi per i più piccoli»).
Passiamo al concreto. Ho scritto alcuni programmi applicativi su MS Excel per visualizzare e presentare in maniera chiara i processi che avvengono nei diversi metodi di apprendimento automatico durante l'analisi dei dati. Si dice che "vedere è credere", dopo tutto, come dicono i rappresentanti di quella cultura che ha sviluppato la maggior parte di questi metodi (tra l'altro, non tutti. Il potente "metodo dei vettori di supporto", o SVM, support vector machine, è l'invenzione del nostro compatriota Vladimir Vapnik, del Moscow Institute of Management, nel 1963! Ora, però, insegna e lavora negli Stati Uniti).
Tre file da esaminare
1. Clustering con il metodo k-means
I compiti di questo tipo rientrano nell'"apprendimento non supervisionato", quando dobbiamo suddividere i dati di partenza in un certo numero di categorie già note, ma non abbiamo alcun numero di "risposte corrette", che dobbiamo estrarre dai dati stessi. Una task classica fondamentale è la scoperta delle sottospecie dei fiori di iris (Ronald Fisher, 1936!), che è considerata il primo passo in questo campo del sapere.
Il metodo è abbastanza semplice. Abbiamo un insieme di oggetti rappresentati come vettori (insiemi di N numeri). Per gli iris, si tratta di insiemi di 4 numeri che caratterizzano il fiore: lunghezza e larghezza delle parti esterne e interne del perianzio, rispettivamente (). Come distanza, o misura di vicinanza tra oggetti, viene utilizzata la consueta metrica euclidea.
Successivamente, i centri dei cluster vengono selezionati in modo arbitrario (o non arbitrario, come vedremo dopo), e viene calcolata la distanza da ciascun oggetto ai centri dei cluster. Ogni oggetto in questo passo dell'iterazione viene etichettato come appartenente al centro più vicino. Successivamente, il centro di ciascun cluster viene spostato nella media aritmetica delle coordinate dei suoi membri (analogamente alla fisica, viene chiamato anche "centro di massa"), e la procedura viene ripetuta.
Il processo converge abbastanza rapidamente. Nelle immagini in due dimensioni appare così:
1. Distribuzione iniziale casuale dei punti nel piano e numero di cluster

2. Assegnazione dei centri dei cluster e attribuzione dei punti ai propri cluster

3. Spostamento delle coordinate dei centri dei cluster, ricalcolo dell'appartenenza dei punti, fino a stabilizzarsi. Si vede la traiettoria del movimento del centro del cluster verso la posizione finale.

In qualsiasi momento è possibile impostare nuovi centri per i cluster (senza generare una nuova distribuzione dei punti!) e osservare che il processo di divisione non è sempre univoco. Matemáticamente, ciò significa che nella funzione ottimizzata (la somma dei quadrati delle distanze dai punti ai centri dei propri cluster) troviamo un minimo locale, non globale. Si può affrontare questo problema scegliendo i centri iniziali dei cluster non in modo casuale o provando vari possibili centri (a volte è vantaggioso posizionarli esattamente in uno dei punti, garantendo che non si ottengano cluster vuoti). In ogni caso, un insieme finito ha sempre un limite inferiore preciso.
(non dimenticare di abilitare il supporto per le macro. I file sono stati controllati per virus)
Descrizione del metodo su Wikipedia -
2. Approssimazione con polinomi e suddivisione dei dati. Overfitting
Il rinomato scienziato e divulgatore della scienza dei dati K.V. Vorontsov parla brevemente dei metodi di apprendimento automatico come "la scienza di tracciare curve attraverso i punti". In questo esempio cercheremo di scoprire schemi nei dati usando il metodo dei minimi quadrati.
Viene mostrata la tecnica di suddivisione dei dati di partenza in 'dati di addestramento' e 'dati di test', così come il fenomeno noto come overfitting, o 'sottoregolazione' dei dati. Con un'adeguata approssimazione, avremo un certo errore sui dati di addestramento e un errore di misura maggiore sui dati di test. Con un'approssimazione inadeguata, avremo una corrispondenza esatta con i dati di addestramento e un errore enorme sui dati di test.
(È un fatto noto che attraverso N punti si può tracciare una sola curva di grado N-1, e questo metodo in generale non produce il risultato desiderato. )
1. Impostiamo la distribuzione iniziale

2. Dividiamo i punti in "dati di addestramento" e "dati di test" in un rapporto di 70 a 30.

3. Tracciamo una curva approssimativa attraverso i punti di addestramento, osserviamo l'errore che essa produce sui dati di test.

4. Tracciamo una curva esatta attraverso i punti di addestramento e vediamo un errore enorme sui dati di test (e nullo sui dati di addestramento, ma che vantaggio ha?).

Qui viene mostrata una versione semplificata con una sola suddivisione in sottogruppi di «addestramento» e «test», ma in generale questo viene fatto più volte per una migliore calibrazione dei coefficienti.
Abilita le macro per un corretto funzionamento.
3. Discesa del gradiente e dinamica dell'errore.
Qui si parlerà di un caso a 4 dimensioni e regressione lineare. I coefficienti della regressione lineare saranno determinati passo dopo passo utilizzando il metodo della discesa del gradiente, inizialmente tutti i coefficienti sono zero. In un grafico separato si può vedere come l'errore diminuisce man mano che i coefficienti vengono affinati. È possibile visualizzare le quattro proiezioni 2D.
Se si imposta un passo di discesa del gradiente troppo grande, si può osservare che di volta in volta saltiamo il minimo e raggiungiamo il risultato in un numero maggiore di passi, anche se, alla fine, ci arriveremo (a meno che non si aumenti troppo il passo di discesa — in quel caso l'algoritmo andrà «fuori controllo»). E il grafico della dipendenza dell'errore dal passo di iterazione sarà non fluido, bensì «scattoso».
1. Generiamo dati, impostiamo il passo della discesa del gradiente.

2. Con una corretta selezione del passo di discesa del gradiente, arriviamo al minimo in modo fluido e abbastanza rapido.

3. Con una selezione errata del passo di discesa del gradiente, saltiamo il massimo, il grafico dell'errore è «scattoso», la convergenza richiede un numero maggiore di passi.

e

4. Con una scelta completamente errata del passo di discesa del gradiente, ci allontaniamo dal minimo.

(Per riprodurre il processo con i valori del passo di discesa del gradiente mostrati nelle immagini, selezionare l'opzione «dati di riferimento»).
Come ritiene rispettata la comunità, è accettabile tale semplificazione e metodo di presentazione del materiale? Vale la pena tradurre l'articolo in inglese?
Fonte: habr.com
