Il meglio
I 10 Migliori Algoritmi di Machine Learning

Sebbene stiamo vivendo in un periodo di straordinaria innovazione nel machine learning accelerato da GPU, le più recenti ricerche spesso (e prominentemente) 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 del machine learning, e preferiscono far risalire la nascita del settore solo fino al 1957, con l’ invenzione del Perceptron.
Considerata la misura in cui questi algoritmi più vecchi supportano e sono intrecciati con le ultime tendenze e gli sviluppi più interessanti nel machine learning, è una posizione discutibile. Quindi, analizziamo alcuni dei “classici” mattoni fondamentali che sottostanno alle ultime innovazioni, nonché alcuni nuovi ingressi che stanno facendo una prima offerta per la hall of fame 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 encoder/decoder e reti ricorrenti a una tecnologia trasformazionale centrale in proprio diritto.
L’approccio è stato chiamato Transformer e da allora è diventato una metodologia rivoluzionaria nel Natural Language Processing (NLP), alimentando, tra molti altri esempi, il modello linguistico autoregressivo e il poster child dell’AI GPT-3.

I Transformers hanno risolto elegantemente il problema della trasduzione di sequenza, 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 dei Transformers, consultare il nostro articolo di riferimento.
In contrasto con le Reti Neurali Ricorrenti (RNN) che avevano iniziato a dominare la ricerca nel ML nell’era CUDA, l’architettura Transformer poteva anche essere facilmente parallelizzata, aprendo la strada per affrontare produttivamente un corpus di dati molto più ampio rispetto alle RNN.
Uso Popolare
I Transformers 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 dei progetti NLP Transformer su larga scala. Fonte: Microsoft
L’architettura Transformer ha anche attraversato il NLP per la 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 allenati, tra un numero crescente di applicazioni correlate.

DALL-E tenta di completare un’immagine parziale di un busto di Platone. Fonte: https://openai.com/blog/dall-e/
2: Reti Adversarie Generative (GANs)
Sebbene i Transformers abbiano ricevuto una copertura mediatica straordinaria con il rilascio e l’adozione di GPT-3, le Reti Adversarie Generative (GAN) sono diventate un marchio riconoscibile a sé stante e potrebbero eventualmente unirsi a deepfake come verbo.
Proposte per la prima volta nel 2014 e principalmente utilizzate per la sintesi di immagini, un’architettura GAN è 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 per fare meglio, senza però fornirgli alcun insight su come la ricostruzione precedente abbia errato.

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

Dal paper Improving GAN Equilibrium by Raising Spatial Awareness: un nuovo framework scorre attraverso lo spazio latente talvolta misterioso di una GAN, fornendo strumentalità rispondente 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 allenato. L’indicatore semantico per una caratteristica di alto livello potrebbe essere ‘persona’, mentre una discesa nella specificità relativa alla caratteristica può portare a scoprire altre caratteristiche apprese, come ‘maschio’ e ‘femmina’. A livelli inferiori, le sottocaratteristiche possono essere suddivise in ‘biondo’, ‘caucasico’, ecc.
L’intreccio è un problema noto nello spazio latente delle GAN e dei framework encoder/decoder: il sorriso su un volto generato da una GAN è una caratteristica intrecciata della sua ‘identità’ nello spazio latente o è un ramo parallelo?

Volti generati da GAN 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, simile a Photoshop, per lo spazio latente di una GAN, ma al momento, molte trasformazioni sono efficacemente ‘tutto o nulla’ pacchetti. Notoriamente, 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 Popolare
Oltre al loro (in realtà piuttosto limitato) coinvolgimento in video deepfake popolari, le GAN centrate su immagini/video hanno proliferato negli ultimi quattro anni, affascinando ricercatori e pubblico allo stesso modo. Tenere il passo con il ritmo e la frequenza dei nuovi rilasci è una sfida, sebbene il repository GitHub Awesome GAN Applications mira a fornire un elenco completo.
Le Reti Adversarie Generative possono in teoria derivare caratteristiche da qualsiasi dominio ben definito, incluso il testo.
3: SVM
Originato nel 1963, Support Vector Machine (SVM) è un algoritmo fondamentale che compare frequentemente in nuove ricerche. Sotto SVM, i vettori mappano la disposizione relativa dei punti di dati in un set di dati, mentre i vettori di supporto 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, l’SVM è bidimensionale (immagine sopra), ma dove c’è un numero più elevato di gruppi o tipi riconosciuti, diventa tridimensionale.

Un array più profondo di punti e gruppi richiede un SVM tridimensionale. Fonte: https://cml.rhul.ac.uk/svm.html
Uso Popolare
Poiché le Support Vector Machine possono affrontare efficacemente e in modo agnostico dati ad alta dimensionalità di molti tipi, si trovano ampiamente in vari settori del machine learning, 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 dati attraverso stima della densità, creando una mappa della distribuzione dei dati in esame.

Il clustering K-Means divina 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 nei 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 stesso è il fattore determinante nell’utilità del processo e nell’istituzione di un valore ottimale per un cluster. Inizialmente, il valore K viene assegnato casualmente, e le sue caratteristiche e le caratteristiche vettoriali vengono confrontate con quelle dei suoi vicini. Quei vicini che più da vicino assomigliano al punto di dati con il valore K assegnato casualmente vengono assegnati al suo cluster iterativamente fino a quando i dati non hanno prodotto tutti i raggruppamenti che il processo consente.
La trama per l’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 allenamento per un set di dati. Rappresenta il punto in cui non saranno più evidenti ulteriori distinzioni tra i gruppi, indicando il momento di passare alle fasi successive nella pipeline dei dati o di segnalare i risultati.
Uso Popolare
Il K-Means Clustering, per motivi ovvi, è una tecnologia primaria nell’analisi dei clienti, poiché offre una metodologia chiara ed esplicabile per tradurre grandi quantità di registri commerciali in insight demografici e ‘lead’.
Al di fuori di questa applicazione, il K-Means Clustering viene utilizzato anche per previsione di frane, segmentazione di immagini mediche, sintesi di immagini con GAN, classificazione di documenti e pianificazione urbana, tra molti altri usi potenziali e attuali.
5: Random Forest
Il 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 condotto anche solo una piccola ricerca, guardando la trilogia di Ritorno al futuro, un albero decisionale è abbastanza facile da concepire: un certo numero di percorsi si trova davanti a te e ogni percorso si ramifica in un nuovo esito che a sua volta contiene ulteriori percorsi possibili.
Nell’apprendimento per rinforzo, potresti ritirarti da un percorso e ricominciare da una posizione precedente, mentre gli alberi decisionali si impegnano nei loro viaggi.
Pertanto, l’algoritmo Random Forest è essenzialmente una scommessa diffusa per le decisioni. L’algoritmo è chiamato ‘casuale’ perché fa ad hoc selezioni e osservazioni per comprendere la media somma dei risultati dall’array dell’albero decisionale.
Poiché 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 sovrapprendimento, dove i risultati ottenuti sono specifici dei dati e non è probabile che si generalizzino. La selezione casuale di dati del Random Forest combatte questa tendenza, perforando tendenze rappresentative e utili nei dati.

Regressione dell’albero decisionale. Fonte: https://scikit-learn.org/stable/auto_examples/tree/plot_tree_regression.html
Uso Popolare
Come molti degli algoritmi in questa lista, il Random Forest opera generalmente come un ‘primo’ ordinatore e filtro dei dati e, come tale, compare costantemente in nuove ricerche. Alcuni esempi di utilizzo del Random Forest includono sintesi di immagini di risonanza magnetica, previsione del prezzo di Bitcoin, segmentazione dei censimenti, classificazione del testo e rilevamento di frodi con carta di credito.
Poiché il Random Forest è un algoritmo di basso livello nel machine learning, può anche contribuire alle prestazioni di altri metodi di basso livello, nonché di 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
Accoppiato con la 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 in 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 abbastanza per stabilire che si sta trattando di un’anatra e non si adottano assunzioni premature ‘ovvie’.
Questo livello di rigore accademico e investigativo sarebbe eccessivo quando è disponibile il ‘senso comune’, ma è uno standard prezioso quando si attraversano le molte ambiguità e le potenziali correlazioni non correlate che possono esistere in un set di dati di machine learning.
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 dato oggetto siano indipendenti, utilizzando quindi il teorema di Bayes per calcolare la probabilità di un dato oggetto in base alle sue caratteristiche.
Uso Popolare
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 US Air Force School of Aviation Medicine nel 1951 e avendo dovuto adattarsi allo stato dell’arte dell’hardware informatico di metà del XX secolo, K-Nearest Neighbors (KNN) è un algoritmo magro che figura ancora prominentemente in articoli accademici e iniziative di ricerca private nel machine learning.
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’allenamento di un modello di machine learning 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 notevole richiesta sulle operazioni di lettura/scrittura e il suo utilizzo in set di dati molto grandi può essere problematico senza tecnologie aggiuntive come l’Analisi dei Componenti Principali (PCA), che può trasformare set di dati complessi e ad alto 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 contendenti più moderni in termini di accuratezza e efficacia predittiva.
Uso Popolare
Per tutta la sua semplicità concettuale 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 uno strumento analitico centrale (o post-elaborazione) in molti framework di machine learning più complessi.
In varie configurazioni, il KNN è stato utilizzato o per verifica della firma online, classificazione di immagini, mining del testo, previsione del raccolto e riconoscimento facciale, tra le altre applicazioni e incorporazioni.

Un sistema di riconoscimento facciale basato su KNN in allenamento. Fonte: https://pdfs.semanticscholar.org/6f3d/d4c5ffeb3ce74bf57342861686944490f513.pdf
8: Processo Decisionale di Markov (MDP)
Un quadro matematico introdotto dal matematico americano Richard Bellman nel 1957, il Processo Decisionale di Markov (MDP) è uno dei blocchi fondamentali delle architetture di apprendimento per rinforzo. Un algoritmo concettuale in proprio diritto, è stato adattato in una grande quantità di altri algoritmi e si ripete frequentemente nella attuale raccolta di ricerche sull’AI/ML.
L’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 dà priorità al vantaggio a breve termine rispetto agli obiettivi a lungo termine più desiderabili. Per questo motivo, è generalmente incorporato nel contesto di un’architettura di politica più ampia nell’apprendimento per rinforzo e è 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 desiderato più ampio.
Uso Popolare
Il concetto di basso livello dell’MDP è ampiamente diffuso nella ricerca e nelle implementazioni attive del machine learning. È 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, l’MDP è anche un concorrente naturale per l’allenamento procedurale dei sistemi di robotica, come possiamo vedere nel video qui sotto.
9: Term Frequency-Inverse Document Frequency
La Frequenza del Termine (TF) divide il numero di volte in cui una parola appare in un documento per il numero totale di parole in quel documento. Pertanto, la parola sigillo che appare una volta in un articolo di mille parole ha una frequenza del termine di 0,001. Da sola, la TF è in gran parte inutile come indicatore di importanza del termine, a causa del fatto che gli articoli 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 di stop molto frequenti, 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 più documenti, con una frequenza più rara indicativa 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, l’inversione del peso della frequenza non significa automaticamente che un termine a bassa frequenza non sia un outlier, perché alcune cose sono rare e senza valore. Pertanto, un termine a bassa frequenza dovrà dimostrare il suo valore nel contesto architettonico più ampio, presentandosi (anche a bassa frequenza per documento) in un numero di documenti nel set di dati.
Nonostante la sua età, TF-IDF è un metodo potente e popolare per passaggi di filtraggio iniziali nei framework di NLP.
Uso Popolare
Poiché TF-IDF ha giocato almeno un ruolo nello sviluppo dell’algoritmo PageRank di Google nel corso degli ultimi vent’anni, è diventato ampiamente adottato come tattica SEO manipolativa, nonostante il rifiuto di John Mueller nel 2019 della sua importanza per i risultati di ricerca.
A causa della segretezza attorno a PageRank, non c’è alcuna prova chiara che TF-IDF non sia attualmente una tattica efficace per migliorare la posizione SEO. Discussioni infuocate tra professionisti IT di recente indicano una comprensione popolare, corretta o no, che l’abuso dei termini possa ancora comportare un miglioramento della posizione SEO (sebbene ulteriori accuse di abuso di monopolio e eccessiva pubblicità offuscano i confini di questa teoria).
10: Discesa del Gradiente Stocastico
La Discesa del Gradiente Stocastico (SGD) è un metodo sempre più popolare per l’ottimizzazione dell’allenamento dei modelli di machine learning.
La Discesa del Gradiente stessa è un metodo di ottimizzazione e quantificazione del miglioramento che un modello sta facendo durante l’allenamento.
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 allenamento. 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 allenamento FaceSwap. Possiamo vedere che l’allenamento ha raggiunto un plateau per un po’ di tempo nella seconda metà, ma ha alla fine recuperato il suo percorso verso il basso lungo il gradiente verso una convergenza accettabile.
Il punto più basso, a destra, rappresenta la convergenza (il punto in cui il modello è efficace come potrà mai essere sotto i vincoli e le impostazioni imposte).
Il gradiente agisce come un record e un predittore 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 record di progresso può essere utilizzato per informare un piano di tasso 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’allenamento dovrebbe andare dopo e come dovrebbe procedere.
L’innovazione della Discesa del Gradiente Stocastico è che aggiorna i parametri del modello su ogni esempio di allenamento per iterazione, il che generalmente accelera il viaggio verso la convergenza. A causa della nascita di set di dati su larga scala negli ultimi anni, SGD è cresciuto in popolarità di recente come uno dei possibili metodi per affrontare le questioni logistiche che ne derivano.
D’altra parte, SGD ha implicazioni negative per la scalabilità delle caratteristiche e può richiedere più iterazioni per raggiungere lo stesso risultato, richiedendo una pianificazione aggiuntiva e parametri aggiuntivi, rispetto alla Discesa del Gradiente regolare.
Uso Popolare
A causa della sua configurabilità e nonostante i suoi limiti, SGD è diventato l’algoritmo di ottimizzazione più popolare per l’adattamento delle reti neurali. Una configurazione di SGD che sta diventando dominante in nuove ricerche sull’AI/ML è la scelta dell’ottimizzatore ADAM (introdotta nel 2015).
ADAM adatta il tasso di apprendimento per ogni parametro in modo dinamico (‘tasso di apprendimento adattivo’), 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 del momento può anche velocizzare ADAM (e algoritmi simili) verso una conclusione subottimale. Come per la maggior parte del settore di ricerca sull’AI/ML, SGD è un lavoro in corso.
Pubblicato per la prima volta il 10 febbraio 2022. Modificato il 10 febbraio 20.05 EET – formattazione.












