Potenziamento dell'apprendimento automatico: cos'è, funzioni, tipi e caratteristiche

Pubblicato: 2020-05-29

Il potenziamento dell'apprendimento automatico è un argomento importante. Molti analisti si confondono sul significato di questo termine. Ecco perché, in questo articolo, scopriremo cosa si intende per potenziamento di Machine Learning e come funziona. Il potenziamento aiuta i modelli ML a migliorare la precisione delle previsioni. Discutiamo questo algoritmo in dettaglio:

Sommario

Che cos'è il potenziamento nell'apprendimento automatico?

Prima di discutere di " potenziamento dell'apprendimento automatico ", dovremmo prima considerare la definizione di questo termine. Potenziare significa "incoraggiare o aiutare qualcosa a migliorare". Il potenziamento dell'apprendimento automatico fa esattamente la stessa cosa in quanto potenzia i modelli di apprendimento automatico e ne migliora la precisione. Per questo motivo, è un algoritmo popolare nella scienza dei dati.

Il potenziamento in ML si riferisce agli algoritmi che convertono i modelli di apprendimento deboli in quelli forti. Supponiamo di dover classificare le email nelle categorie "Spam" e "Non spam". Possiamo adottare il seguente approccio per fare queste distinzioni:

  • Se l'email ha un solo file immagine, è spam (perché l'immagine è solitamente promozionale)
  • Se l'email contiene una frase simile a "Hai vinto una lotteria", è spam.
  • Se l'e-mail contiene solo un mucchio di link, è spam.
  • Se l'e-mail proviene da una fonte presente nel nostro elenco di contatti, non è uno spam.

Ora, anche se abbiamo regole per la classificazione, pensi che siano sufficientemente forti individualmente per identificare se un'e-mail è uno spam o meno? Non sono. Su base individuale, queste regole sono deboli e non sono sufficienti per classificare un'e-mail in "Non spam" o "Spam". Dovremo renderli più forti e possiamo farlo utilizzando una media ponderata o considerando la previsione del voto più alto.

Quindi, in questo caso, abbiamo cinque classificatori, di cui tre contrassegnano l'e-mail come "Spam", quindi considereremo un'e-mail "Spam" per impostazione predefinita, poiché questa classe ha un voto più alto di "Non spam" categoria.

Questo esempio serve per darti un'idea di cosa siano gli algoritmi di potenziamento. Sono più complessi di questo.

Dai un'occhiata a: 25 domande e risposte per l'intervista sull'apprendimento automatico

Come funzionano?

L'esempio sopra ci ha mostrato che il boosting combina studenti deboli per formare regole rigide. Quindi, come identificheresti queste regole deboli? Per trovare una regola incerta, dovrai utilizzare algoritmi di apprendimento basati su istanze. Ogni volta che si applica un algoritmo di apprendimento di base, si produrrebbe una regola di previsione debole. Ripeterai questo processo per più iterazioni e, con ogni iterazione, l'algoritmo di potenziamento combinerebbe le regole deboli per formare una regola forte.

L'algoritmo di potenziamento sceglie la distribuzione giusta per ogni iterazione attraverso diversi passaggi. Innanzitutto, prenderà tutte le varie allocazioni e assegnerà loro lo stesso peso. Se il primo algoritmo di apprendimento di base commette un errore, aggiungerà più peso a quelle osservazioni. Dopo aver assegnato il peso, si passa al passaggio successivo.

In questo passaggio, continueremo a ripetere il processo finché non aumenteremo la precisione del nostro algoritmo. Quindi combineremo l'output degli studenti deboli e ne creeremo uno forte che potrebbe potenziare il nostro modello e aiutarlo a fare previsioni migliori. Un algoritmo di potenziamento si concentra maggiormente sulle ipotesi che causano errori elevati a causa delle loro regole deboli.

Ulteriori informazioni: 5 applicazioni rivoluzionarie dell'apprendimento automatico

Diversi tipi di algoritmi di potenziamento

Gli algoritmi di potenziamento possono utilizzare molti tipi di motori sottostanti, inclusi massimizzatori di margine, timbri decisionali e altri. Principalmente, ci sono tre tipi di algoritmi di potenziamento dell'apprendimento automatico:

  1. Potenziamento adattivo (noto anche come AdaBoosta)
  2. Potenziamento del gradiente
  3. XGBoost

Discuteremo brevemente i primi due, AdaBoost e Gradient Boosting, in questo articolo. XGBoost è un argomento molto più complicato, di cui parleremo in un altro articolo.

1. Potenziamento adattivo

Supponiamo di avere una scatola che ha cinque vantaggi e cinque meno. Il tuo compito è classificarli e metterli in tabelle diverse.

Nella prima iterazione, assegni pesi uguali a ogni punto dati e applichi un moncone decisionale nella casella. Tuttavia, la linea separa solo due vantaggi dal gruppo e tutti gli altri rimangono insieme. Il tuo moncone di decisione (che è una linea che passa attraverso la nostra presunta casella), non riesce a prevedere correttamente tutti i punti dati e ha inserito tre vantaggi con gli svantaggi.

Nella prossima iterazione, assegniamo più peso ai tre plus che ci eravamo persi in precedenza; ma questa volta, il moncone della decisione separa solo due minuti dal gruppo. Assegneremo più peso agli svantaggi che abbiamo perso in questa iterazione e ripeteremo il processo. Dopo una o due ripetizioni, possiamo combinare alcuni di questi risultati per produrre una regola di previsione rigida.

AdaBoost funziona proprio così. Per prima cosa prevede utilizzando i dati originali e assegna lo stesso peso a ogni punto. Quindi attribuisce maggiore importanza alle osservazioni che il primo studente non riesce a prevedere correttamente. Ripete il processo fino a raggiungere un limite nella precisione del modello.

Puoi utilizzare timbri decisionali e altri algoritmi di Machine Learning con Adaboost.

Ecco un esempio di AdaBoost in Python:

da sklearn.ensemble importa AdaBoostClassifier

da sklearn.datasets importa make_classification

X,Y = make_classification(n_samples=100, n_features=2, n_informative=2,

n_ridondante=0, n_ripetuto=0, stato_casuale=102)

clf = AdaBoostClassifier(n_estimators=4, random_state=0, algoritmo='SAMME')

clf.fit(X, Y)

2. Potenziamento del gradiente

Gradient Boosting utilizza il metodo di discesa del gradiente per ridurre la funzione di perdita dell'intera operazione. La discesa del gradiente è un algoritmo di ottimizzazione del primo ordine che trova il minimo locale di una funzione (funzione differenziabile). Il potenziamento del gradiente allena in sequenza più modelli e può adattarsi a nuovi modelli per ottenere una stima migliore della risposta.

Crea nuovi apprendenti di base che possono essere correlati al gradiente negativo della funzione di perdita e che sono collegati all'intero sistema. In Python, dovrai usare Gradient Tree Boosting (noto anche come GBRT). Puoi usarlo per la classificazione così come per problemi di regressione.

Ecco un esempio di Gradient Tree Boosting in Python:

da sklearn.ensemble import GradientBoostingRegressor

modello = GradientBoostingRegressor(n_estimators=3,learning_rate=1)

modello.fit(X,Y)

# per la classificazione

da sklearn.ensemble import GradientBoostingClassifier

modello = GradientBoostingClassifier()

modello.fit(X,Y)

Funzionalità di potenziamento nell'apprendimento automatico

Il potenziamento offre molti vantaggi e, come qualsiasi altro algoritmo, ha anche i suoi limiti:

  • Interpretare le previsioni di boosting è abbastanza naturale perché è un modello di insieme.
  • Seleziona le funzionalità in modo implicito, che è un altro vantaggio di questo algoritmo.
  • Il potere di previsione degli algoritmi di potenziamento è più affidabile degli alberi decisionali e del bagging.
  • Aumentarlo è alquanto complicato perché ogni stimatore in aumento si basa sugli stimatori precedenti.

Leggi anche: Idee per progetti di apprendimento automatico per principianti

Dove andare da qui?

Ci auguriamo che tu abbia trovato utile questo articolo sul potenziamento. Innanzitutto, abbiamo discusso di cos'è questo algoritmo e di come risolve i problemi di Machine Learning. Quindi abbiamo dato un'occhiata al suo funzionamento e come funziona.

Abbiamo anche discusso dei suoi vari tipi. Abbiamo scoperto AdaBoost e Gradient Boosting condividendo anche i loro esempi. Se sei interessato a saperne di più sull'apprendimento automatico, dai un'occhiata al Diploma PG di IIIT-B e upGrad in Machine Learning e AI, progettato per i professionisti che lavorano e offre oltre 450 ore di formazione rigorosa, oltre 30 casi di studio e incarichi, IIIT- B Status di Alumni, oltre 5 progetti pratici pratici e assistenza sul lavoro con le migliori aziende.

Come posso definire il potenziamento nell'apprendimento automatico in termini semplici?

Il potenziamento nelle macchine consiste nel fare riferimento ad algoritmi che aiutano a convertire modelli deboli di apprendimento in modelli forti. Se prendiamo l'esempio della classificazione delle e-mail come spam e non spam, ci sono alcune distinzioni che possono essere utilizzate per semplificarne la comprensione. Queste distinzioni possono essere affrontate quando un'e-mail ha un singolo file, contiene una frase simile come Hai vinto alla lotteria, contiene un gruppo di collegamenti e proviene da un elenco di contatti.

Come funziona un algoritmo di potenziamento?

Le regole deboli vengono identificate utilizzando algoritmi di apprendimento basati su istanze. Una volta che un algoritmo di apprendimento di base viene applicato in più iterazioni, combina finalmente le regole deboli in un'unica regola forte. L'algoritmo di potenziamento fa le scelte giuste per distribuire ogni iterazione attraverso più passaggi. Dopo aver preso le allocazioni, assegna lo stesso peso fino a quando non viene commesso un errore, dopodiché viene assegnato più peso. Questo processo viene ripetuto fino a ottenere una migliore precisione. Successivamente, tutte le uscite deboli vengono combinate per crearne una forte.

Quali sono i diversi tipi di algoritmi di potenziamento e le loro caratteristiche?

I diversi tipi sono il potenziamento adattivo, il potenziamento del gradiente e XGBoost. Il potenziamento ha caratteristiche come se seleziona implicitamente le funzionalità. Gli alberi decisionali sono meno affidabili dei poteri di previsione. Inoltre, il ridimensionamento è più difficile perché gli stimatori si basano su quelli precedenti. E interpretare le previsioni di boost è naturale in quanto si tratta di un modello d'insieme.