Angolo di Anderson
I 10 Migliori Algoritmi di Apprendimento Automatico

Sebbene stiamo vivendo in un’epoca di innovazione straordinaria nell’apprendimento automatico accelerato da GPU, le ricerche più recenti spesso presentano algoritmi che hanno decenni, in alcuni casi 70 anni.
Alcuni potrebbero sostenere che molti di questi metodi più vecchi rientrano nella categoria dell’analisi statistica piuttosto che dell’apprendimento automatico e preferiscono datare l’avvento del settore solo a partire dal 1957, con l’invenzione del Perceptron.
Considerata la misura in cui questi algoritmi più vecchi supportano e sono intrecciati con le ultime tendenze e sviluppi nell’apprendimento automatico, è una posizione discutibile. Quindi, analizziamo alcuni dei “classici” mattoni fondamentali che sostengono le ultime innovazioni, nonché alcuni nuovi ingressi che stanno facendo una prima offerta per la fama dell’AI.
1: Transformers
Nel 2017, la ricerca di Google ha guidato una collaborazione di ricerca che si è conclusa con la pubblicazione Attention Is All You Need. Il lavoro ha delineato una nuova architettura che ha promosso meccanismi di attenzione dai modelli di codifica/decodifica e ricorrenti a una tecnologia trasformazionale centrale in proprio diritto.
L’approccio è stato chiamato Transformer e da allora è diventato un metodo rivoluzionario nell’elaborazione del linguaggio naturale (NLP), alimentando, tra gli altri esempi, il modello di linguaggio autoregressivo e il poster child dell’AI GPT-3.

I transformer hanno risolto elegantemente il problema della trasduzione sequenziale, anche chiamata ‘trasformazione’, che si occupa dell’elaborazione di sequenze di input in sequenze di output. Un transformer riceve e gestisce anche i dati in modo continuo, piuttosto che in lotti sequenziali, consentendo una “persistenza della memoria” che le architetture RNN non sono progettate per ottenere. Per una panoramica più dettagliata sui transformer, consultare il nostro articolo di riferimento.
In contrasto con le reti neurali ricorrenti (RNN) che avevano iniziato a dominare la ricerca sull’apprendimento automatico nell’era CUDA, l’architettura del transformer poteva anche essere facilmente parallellizzata, aprendo la strada per affrontare produttivamente un corpus di dati molto più ampio rispetto alle RNN.
Uso comune
I transformer hanno catturato l’immaginazione pubblica nel 2020 con il rilascio di GPT-3 di OpenAI, che vantava un record di 175 miliardi di parametri. Questo apparente risultato è stato successivamente oscurato da progetti successivi, come il rilascio del 2021 di Megatron-Turing NLG 530B di Microsoft, che (come suggerisce il nome) presenta oltre 530 miliardi di parametri.

Una timeline di progetti NLP Transformer su larga scala. Fonte: Microsoft
L’architettura del transformer ha anche attraversato il confine tra NLP e visione artificiale, alimentando una nuova generazione di framework di sintesi di immagini come CLIP e DALL-E di OpenAI, che utilizzano la mappatura del dominio testo-immagine per completare immagini incomplete e sintetizzare nuove immagini da domini formati, tra molte altre applicazioni.

DALL-E tenta di completare un’immagine parziale di un busto di Platone. Fonte: https://openai.com/blog/dall-e/
2: Generative Adversarial Networks (GANs)
Sebbene i transformer abbiano ricevuto una copertura mediatica straordinaria con il rilascio e l’adozione di GPT-3, le Generative Adversarial Network (GAN) è diventata un marchio riconoscibile di per sé e potrebbe eventualmente unirsi a deepfake come verbo.
Proposto per la prima volta nel 2014 e utilizzato principalmente per la sintesi di immagini, un’architettura di rete generativa avversariale è composta da un Generatore e un Discriminatore. Il generatore scorre attraverso migliaia di immagini in un set di dati, tentando iterativamente di ricostruirle. Per ogni tentativo, il discriminatore valuta il lavoro del generatore e lo invia indietro a fare meglio, senza però fornirgli alcun insight su come l’ultima ricostruzione abbia errato.

Fonte: https://developers.google.com/machine-learning/gan/gan_structure
Questo costringe il generatore a esplorare una molteplicità di strade, invece di seguire i potenziali vicoli ciechi che si sarebbero verificati se il discriminatore gli avesse detto dove stava sbagliando (vedi #8 di seguito). Al termine dell’addestramento, il generatore ha una mappa dettagliata e completa delle relazioni tra i punti nel set di dati.

Da Improving GAN Equilibrium by Raising Spatial Awareness: un framework innovativo scorre attraverso lo spazio latente misterioso di una GAN, fornendo strumentalità reattiva per un’architettura di sintesi di immagini. Fonte: https://genforce.github.io/eqgan/
Per analogia, questo è il differenza tra imparare un singolo percorso noioso per il centro di Londra o acquisire The Knowledge.
Il risultato è una raccolta di caratteristiche di alto livello nello spazio latente del modello addestrato. L’indicatore semantico per una caratteristica di alto livello potrebbe essere ‘persona’, mentre una discesa attraverso la specificità relativa alla caratteristica potrebbe portare a scoprire altre caratteristiche apprese, come ‘maschio’ e ‘femmina’. A livelli inferiori, le sottocaratteristiche possono rompersi in ‘biondo’, ‘caucasico’, ecc.
L’intreccio è un problema notevole nello spazio latente delle GAN e delle architetture di codifica/decodifica: il sorriso su un viso generato da una GAN è una caratteristica intrecciata della sua ‘identità’ nello spazio latente o è un ramo parallelo?

Volti generati da thispersondoesnotexist. Fonte: https://this-person-does-not-exist.com/en
Gli ultimi due anni hanno visto una crescente quantità di nuove iniziative di ricerca in questo senso, forse aprendo la strada per un editing a livello di caratteristiche, come in Photoshop, per lo spazio latente di una GAN, ma al momento molte trasformazioni sono sostanzialmente ‘tutto o niente’. Notabilmente, il rilascio di EditGAN di NVIDIA alla fine del 2021 raggiunge un alto livello di interpretazione nello spazio latente utilizzando maschere di segmentazione semantica.
Uso comune
A parte il loro coinvolgimento (in realtà abbastanza limitato) in video deepfake popolari, le GAN centrate su immagini/video si sono moltiplicate negli ultimi quattro anni, affascinando ricercatori e pubblico allo stesso modo. Tenere il passo con il ritmo e la frequenza di nuovi rilasci è una sfida, sebbene il repository GitHub Awesome GAN Applications miri a fornire un elenco completo.
Le reti generative avversarie possono in teoria derivare caratteristiche da qualsiasi dominio ben definito, incluso il testo.
3: SVM
Originato nel 1963, la Support Vector Machine (SVM) è un algoritmo fondamentale che appare frequentemente in nuove ricerche. Sotto SVM, i vettori mappano la disposizione relativa dei punti di dati in un set di dati, mentre i support vettori delineano i confini tra diversi gruppi, caratteristiche o tratti.

I vettori di supporto definiscono i confini tra i gruppi. Fonte: https://www.kdnuggets.com/2016/07/support-vector-machines-simple-explanation.html
Il confine derivato è chiamato iperpiano.
A livelli di caratteristiche bassi, la SVM è bidimensionale (immagine sopra), ma dove c’è un numero più alto di gruppi o tipi riconosciuti, diventa tridimensionale.

Un array più profondo di punti e gruppi richiede una SVM tridimensionale. Fonte: https://cml.rhul.ac.uk/svm.html
Uso comune
Poiché le macchine di supporto vettoriale possono affrontare efficacemente e agnosticamente dati ad alta dimensionalità di molti tipi, appaiono ampiamente in diversi settori dell’apprendimento automatico, tra cui rilevamento di deepfake, classificazione di immagini, classificazione di discorsi d’odio, analisi del DNA e previsione della struttura della popolazione, tra gli altri.
4: K-Means Clustering
Il clustering in generale è un approccio di apprendimento non supervisionato che cerca di categorizzare i punti di dati attraverso la stima della densità, creando una mappa della distribuzione dei dati in esame.

Il clustering K-Means scopre segmenti, gruppi e comunità nei dati. Fonte: https://aws.amazon.com/blogs/machine-learning/k-means-clustering-with-amazon-sagemaker/
Il K-Means Clustering è diventato l’implementazione più popolare di questo approccio, guidando i punti di dati in distinti ‘gruppi K’, che possono indicare settori demografici, comunità online o qualsiasi altra possibile aggregazione segreta in attesa di essere scoperta in dati statistici grezzi.

I cluster si formano nell’analisi K-Means. Fonte: https://www.geeksforgeeks.org/ml-determine-the-optimal-value-of-k-in-k-means-clustering/
Il valore K è il fattore determinante nell’utilità del processo e nel stabilire un valore ottimale per un cluster. Inizialmente, il valore K è assegnato casualmente e le sue caratteristiche e vettori vengono confrontati con quelli dei suoi vicini. Quei vicini che più somigliano al punto di dati con il valore K assegnato casualmente vengono assegnati al suo cluster in modo iterativo fino a quando i dati non hanno prodotto tutti i raggruppamenti che il processo consente.
La trama dell’errore quadratico, o ‘costo’ dei valori diversi tra i cluster, rivelerà un punto di gomito per i dati:

Il punto di gomito in un grafico del cluster. Fonte: https://www.scikit-yb.org/en/latest/api/cluster/elbow.html
Il punto di gomito è simile al modo in cui la perdita si appiattisce fino a rendimenti decrescenti alla fine di una sessione di addestramento per un set di dati. Rappresenta il punto in cui non ci saranno più distinzioni tra gruppi, indicando il momento di passare alle fasi successive nella pipeline dei dati o di segnalare i risultati.
Uso comune
Il clustering K-Means, per motivi ovvi, è una tecnologia primaria nell’analisi dei clienti, poiché offre una metodologia chiara e spiegabile per tradurre grandi quantità di registri commerciali in insight demografici e ‘lead’.
Al di fuori di questa applicazione, il clustering K-Means viene utilizzato anche per previsione di frane, segmentazione di immagini mediche, sintesi di immagini con GAN, classificazione di documenti e pianificazione urbana, tra gli altri utilizzi potenziali e attuali.
5: Random Forest
Random Forest è un metodo di apprendimento ensemble che media il risultato da una matrice di alberi decisionali per stabilire una previsione generale per l’esito.

Fonte: https://www.tutorialandexample.com/wp-content/uploads/2019/10/Decision-Trees-Root-Node.png
Se hai fatto anche solo una piccola ricerca, guardando la trilogia Ritorno al futuro, un albero decisionale è abbastanza facile da concepire: un numero di percorsi si trova davanti a te e ogni percorso si ramifica in un nuovo risultato che a sua volta contiene ulteriori percorsi possibili.
In apprendimento per rinforzo, potresti ritirarti da un percorso e ricominciare da una posizione precedente, mentre gli alberi decisionali si impegnano nei loro viaggi.
Quindi, l’algoritmo Random Forest è essenzialmente una scommessa spread. L’algoritmo è chiamato ‘casuale’ perché fa ad hoc selezioni e osservazioni per capire la mediana somma dei risultati dall’array dell’albero decisionale.
Dal momento che tiene conto di una molteplicità di fattori, un approccio Random Forest può essere più difficile da convertire in grafici significativi rispetto a un albero decisionale, ma è probabile che sia notevolmente più produttivo.
Gli alberi decisionali sono soggetti a overfitting, dove i risultati ottenuti sono specifici dei dati e non è probabile che si generalizzino. La selezione casuale dei punti di dati di Random Forest combatte questa tendenza, perforando le tendenze rappresentative e utili nei dati.

Regressione dell’albero decisionale. Fonte: https://scikit-learn.org/stable/auto_examples/tree/plot_tree_regression.html
Uso comune
Come per molti degli algoritmi in questa lista, Random Forest opera tipicamente come un ‘primo’ ordinatore e filtro di dati e quindi appare costantemente in nuove ricerche. Alcuni esempi di utilizzo di Random Forest includono sintesi di immagini di risonanza magnetica, previsione del prezzo di Bitcoin, segmentazione del censimento, classificazione del testo e rilevamento di frodi con carta di credito.
Poiché Random Forest è un algoritmo di basso livello nelle architetture di apprendimento automatico, può anche contribuire alle prestazioni di altri metodi di basso livello, nonché agli algoritmi di visualizzazione, tra cui clustering induttivo, trasformazioni di caratteristiche, classificazione di documenti di testo utilizzando caratteristiche sparse e visualizzazione delle pipeline.
6: Naive Bayes
Abbinato alla stima della densità (vedi 4 sopra), un classificatore Naive Bayes è un algoritmo potente ma relativamente leggero in grado di stimare le probabilità in base alle caratteristiche calcolate dei dati.

Relazioni tra caratteristiche in un classificatore Naive Bayes. Fonte: https://www.sciencedirect.com/topics/computer-science/naive-bayes-model
Il termine ‘naïve’ si riferisce all’assunzione nella teorema di Bayes che le caratteristiche sono non correlate, note come dipendenza condizionale. Se si adotta questo punto di vista, camminare e parlare come un’anatra non sono sufficienti per stabilire che stiamo trattando con un’anatra e non si adottano assunzioni ‘ovvie’ in anticipo.
Questo livello di rigore accademico e investigativo sarebbe eccessivo dove è disponibile il ‘senso comune’, ma è uno standard prezioso quando si attraversano le molteplici ambiguità e le possibili correlazioni non correlate che possono esistere in un set di dati di apprendimento automatico.
In una rete bayesiana originale, le caratteristiche sono soggette a funzioni di punteggio, tra cui lunghezza di descrizione minima e punteggio bayesiano, che possono imporre restrizioni ai dati in termini di connessioni stimate trovate tra i punti di dati e la direzione in cui queste connessioni fluiscono.
Un classificatore Naive Bayes, al contrario, opera assumendo che le caratteristiche di un oggetto siano indipendenti, utilizzando quindi il teorema di Bayes per calcolare la probabilità di un oggetto dato, in base alle sue caratteristiche.
Uso comune
I filtri Naive Bayes sono ben rappresentati nella previsione delle malattie e nella categorizzazione dei documenti, filtraggio degli spam, classificazione del sentimento, sistemi di raccomandazione e rilevamento di frodi, tra le altre applicazioni.
7: K-Nearest Neighbors (KNN)
Proposto per la prima volta dalla Scuola di medicina aeronautica dell’Esercito degli Stati Uniti nel 1951 e avendo dovuto adattarsi allo stato dell’arte dell’hardware informatico della metà del XX secolo, il K-Nearest Neighbors (KNN) è un algoritmo snello che figura ancora in modo prominente in articoli accademici e iniziative di ricerca private nel settore dell’apprendimento automatico.
Il KNN è stato chiamato ‘l’apprendista pigro’, poiché esamina esaustivamente un set di dati per valutare le relazioni tra i punti di dati, piuttosto che richiedere l’addestramento di un modello di apprendimento automatico completo.

Un raggruppamento KNN. Fonte: https://scikit-learn.org/stable/modules/neighbors.html
Sebbene il KNN sia architettonicamente esile, il suo approccio sistematico pone una richiesta notevole alle operazioni di lettura/scrittura e il suo utilizzo in set di dati molto grandi può essere problematico senza tecnologie ausiliarie come l’analisi dei componenti principali (PCA), che può trasformare set di dati complessi e ad alta volume in raggruppamenti rappresentativi che il KNN può attraversare con meno sforzo.
Uno studio recente ha valutato l’efficacia e l’economia di una serie di algoritmi incaricati di prevedere se un dipendente lascerà un’azienda, scoprendo che il KNN settantenne è rimasto superiore ai concorrenti più moderni in termini di accuratezza e efficacia predittiva.
Uso comune
Per tutte le sue semplicità di concetto e di esecuzione, il KNN non è bloccato negli anni ’50: è stato adattato in un approccio più focalizzato sulle reti neurali profonde in una proposta del 2018 dell’Università statale della Pennsylvania e rimane un processo centrale (o strumento di analisi post-elaborazione) in molti framework di apprendimento automatico più complessi.
In varie configurazioni, il KNN è stato utilizzato o per verifica della firma online, classificazione di immagini, mining del testo, previsione dei raccolti e riconoscimento facciale, oltre ad altre applicazioni e incorporazioni.

Un sistema di riconoscimento facciale basato su KNN in formazione. Fonte: https://pdfs.semanticscholar.org/6f3d/d4c5ffeb3ce74bf57342861686944490f513.pdf
8: Markov Decision Process (MDP)
Un quadro matematico introdotto dal matematico americano Richard Bellman nel 1957, il Markov Decision Process (MDP) è uno dei blocchi fondamentali delle architetture di apprendimento per rinforzo. Un algoritmo concettuale di per sé, è stato adattato in molti altri algoritmi e si ripete frequentemente nella ricerca attuale sull’AI/ML.
Il MDP esplora un ambiente di dati utilizzando la sua valutazione del suo stato attuale (cioè ‘dove’ si trova nei dati) per decidere quale nodo dei dati esplorare dopo.

Fonte: https://www.sciencedirect.com/science/article/abs/pii/S0888613X18304420
Un processo decisionale di Markov di base darà priorità al vantaggio a breve termine rispetto agli obiettivi più desiderabili a lungo termine. Per questo motivo, è generalmente incorporato nel contesto di un’architettura di politica più ampia nell’apprendimento per rinforzo e viene spesso soggetto a fattori limitanti come la ricompensa scontata e altre variabili ambientali che lo impediranno di affrettarsi verso un obiettivo immediato senza considerare l’esito più ampio desiderato.
Uso comune
Il concetto di basso livello del MDP è ampiamente diffuso sia nella ricerca che nelle distribuzioni attive dell’apprendimento automatico. È stato proposto per sistemi di difesa della sicurezza IoT, pesca e previsione del mercato.
Oltre alla sua applicabilità ovvia agli scacchi e ad altri giochi strettamente sequenziali, il MDP è anche un contendente naturale per l’addestramento procedurale dei sistemi robotici, come possiamo vedere nel video qui sotto.
9: Term Frequency-Inverse Document Frequency
La frequenza del termine (TF) divide il numero di volte che una parola appare in un documento per il numero totale di parole in quel documento. Quindi la parola sigillo che appare una volta in un articolo di mille parole ha una frequenza del termine di 0,001. Da solo, la TF è in gran parte inutile come indicatore di importanza del termine, a causa del fatto che le parole senza senso (come a, e, il e esso) predominano.
Per ottenere un valore significativo per un termine, la frequenza inversa del documento (IDF) calcola la TF di una parola in più documenti in un set di dati, assegnando un punteggio basso alle parole molto frequenti, come le parole di stop, come gli articoli. I vettori di caratteristiche risultanti vengono normalizzati a valori interi, con ogni parola assegnata a un peso appropriato.

TF-IDF pesa la rilevanza dei termini in base alla frequenza in un numero di documenti, con la rarità dell’occorrenza come indicatore di salienza. Fonte: https://moz.com/blog/inverse-document-frequency-and-the-importance-of-uniqueness
Sebbene questo approccio impedisca che parole semanticamente importanti vengano perse come outlier, invertire il peso della frequenza non significa automaticamente che un termine a bassa frequenza non sia un outlier, perché alcune cose sono rare e senza valore. Quindi un termine a bassa frequenza dovrà dimostrare il suo valore nel contesto architettonico più ampio, comparendo (anche a bassa frequenza per documento) in un numero di documenti nel set di dati.
Nonostante la sua età, la TF-IDF è un metodo potente e popolare per passaggi di filtraggio iniziali nei framework di elaborazione del linguaggio naturale.
Uso comune
Perché la TF-IDF ha giocato almeno un ruolo nello sviluppo dell’algoritmo PageRank di Google nel corso degli ultimi vent’anni, è diventata ampiamente adottata come una tattica di SEO manipolativa, nonostante la disapprovazione di John Mueller nel 2019 della sua importanza per i risultati di ricerca.
A causa della segretezza intorno a PageRank, non c’è alcuna prova chiara che la TF-IDF non sia attualmente una tattica efficace per salire nelle classifiche di Google. Discussioni infiammate tra i professionisti IT di recente indicano una comprensione popolare, corretta o no, che l’abuso del termine potrebbe ancora comportare un miglioramento della posizione SEO (sebbene ulteriori accuse di abuso di monopolio e eccessiva pubblicità offuscano i confini di questa teoria).
10: Stochastic Gradient Descent
La discesa del gradiente stocastico (SGD) è un metodo sempre più popolare per ottimizzare l’addestramento dei modelli di apprendimento automatico.
La discesa del gradiente stessa è un metodo di ottimizzazione e quantificazione del miglioramento che un modello sta facendo durante l’addestramento.
In questo senso, ‘gradiente’ indica una pendenza verso il basso (piuttosto che una gradazione basata sul colore, vedi immagine sotto), dove il punto più alto della ‘collina’, a sinistra, rappresenta l’inizio del processo di addestramento. A questo stadio il modello non ha ancora visto l’intero set di dati nemmeno una volta e non ha ancora imparato abbastanza sulle relazioni tra i dati per produrre trasformazioni efficaci.

Una discesa del gradiente in una sessione di addestramento FaceSwap.
Il punto più basso, a destra, rappresenta la convergenza (il punto in cui il modello è efficace quanto può essere sotto le costrizioni e le impostazioni imposte).
Il gradiente agisce come un registro e un indicatore di progresso per la disparità tra il tasso di errore (quanto accuratamente il modello ha attualmente mappato le relazioni dei dati) e i pesi (le impostazioni che influenzano il modo in cui il modello imparerà).
Questo registro di progresso può essere utilizzato per informare un piano di apprendimento, un processo automatico che dice all’architettura di diventare più granulare e preciso mentre i dettagli vaghi iniziali si trasformano in relazioni e mapping chiari. In effetti, la perdita del gradiente fornisce una mappa just-in-time di dove l’addestramento dovrebbe andare dopo e come procedere.
L’innovazione della discesa del gradiente stocastico è che aggiorna i parametri del modello su ogni esempio di addestramento per iterazione, il che generalmente accelera il viaggio verso la convergenza. A causa dell’avvento di set di dati su larga scala negli ultimi anni, la SGD è cresciuta in popolarità di recente come uno dei possibili metodi per affrontare le questioni logistiche che ne derivano.
D’altra parte, la SGD ha implicazioni negative per la scalabilità delle caratteristiche e potrebbe richiedere più iterazioni per raggiungere lo stesso risultato, richiedendo una pianificazione aggiuntiva e parametri aggiuntivi, rispetto alla discesa del gradiente regolare.
Uso comune
A causa della sua configurabilità e nonostante le sue carenze, la SGD è diventata l’algoritmo di ottimizzazione più popolare per l’adattamento delle reti neurali. Una configurazione della SGD che sta diventando dominante in nuove ricerche sull’AI/ML è la scelta dell’ottimizzatore Adaptive Moment Estimation (ADAM, introdotto nel 2015).
ADAM adatta la velocità di apprendimento per ogni parametro in modo dinamico (‘velocità di apprendimento adattiva’), nonché incorpora i risultati degli aggiornamenti precedenti nella configurazione successiva (‘momento’). Inoltre, può essere configurato per utilizzare innovazioni successive, come Nesterov Momentum.
Tuttavia, alcuni sostengono che l’uso della quantità di movimento possa anche velocizzare ADAM (e algoritmi simili) verso una conclusione subottimale. Come per la maggior parte della ricerca sull’AI/ML, la SGD è un lavoro in corso.
Pubblicato per la prima volta il 10 febbraio 2022. Modificato il 10 febbraio 20.05 EET – formattazione.












