Scelta di un algoritmo - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Scelta di un algoritmo

Il machine learning può aiutarti a svolgere attività empiriche che richiedono una sorta di inferenza induttiva. Questa attività prevede l'induzione poiché utilizza i dati per addestrare algoritmi per creare inferenze generalizzabili. Ciò significa che gli algoritmi possono effettuare previsioni o decisioni statisticamente affidabili o completare altre attività se applicati a nuovi dati che non sono stati utilizzati per addestrarli.

Per aiutarti a selezionare l'algoritmo migliore per la tua attività, classifichiamo queste attività su vari livelli di astrazione. Al massimo livello di astrazione, il machine learning tenta di trovare modelli o relazioni tra funzionalità o elementi meno strutturati, come il testo in un set di dati. Le tecniche di riconoscimento dei modelli possono essere classificate in paradigmi di machine learning distinti, ognuno dei quali affronta tipi di problemi specifici. Attualmente esistono tre paradigmi di base per il machine learning utilizzati per affrontare vari tipi di problemi:

I tipi di problemi che ogni paradigma di apprendimento può risolvere vengono identificati considerando le inferenze (o previsioni, decisioni o altre attività) che si desidera trarre dal tipo di dati che si dispone o si potrebbe raccogliere. I paradigmi di machine learning utilizzano metodi algoritmici per risolvere i vari tipi di problemi. Gli algoritmi forniscono ricette per risolvere questi problemi.

Tuttavia, molti algoritmi, come le reti neurali, possono essere implementati con diversi paradigmi di apprendimento e su diversi tipi di problemi. Più algoritmi possono anche risolvere un tipo di problema specifico. Alcuni algoritmi sono applicabili più in generale, mentre altri sono piuttosto specifici per determinati tipi di obiettivi e dati. Quindi la mappatura tra algoritmi di apprendimento automatico e tipi di problemi è. many-to-many Inoltre, sono disponibili varie opzioni di implementazione per gli algoritmi.

Le sezioni seguenti forniscono indicazioni sulle opzioni di implementazione, sui paradigmi di machine learning e sugli algoritmi appropriati per diversi tipi di problemi.

Scegli un'implementazione di algoritmo

Dopo aver scelto un algoritmo, dovrai decidere quale implementazione desideri utilizzare. Amazon SageMaker supporta tre opzioni di implementazione che richiedono livelli di impegno crescenti.

  • I modelli preaddestrati richiedono il minimo sforzo e sono modelli pronti per la distribuzione o per la messa a punto e la distribuzione. SageMaker JumpStart

  • Gli algoritmi integrati richiedono maggiore impegno e scalabilità se il set di dati è ampio e sono necessarie risorse significative per addestrare e implementare il modello.

  • Se non esiste una soluzione integrata che funzioni, prova a svilupparne una che utilizzi immagini predefinite per macchine e framework di deep learning per framework supportati come Scikit-Learn,, o Chainer. TensorFlow PyTorch MXNet

  • Se devi eseguire pacchetti personalizzati o utilizzare codice che non fa parte di un framework supportato o disponibile tramite PyPi, devi creare un'immagine Docker personalizzata configurata per installare i pacchetti o il software necessari. L'immagine personalizzata deve inoltre essere inviata a un repository online come Amazon Elastic Container Registry.

Guida all'implementazione dell'algoritmo

Implementazione Richiede codice Algoritmi precodificati Supporto per pacchetti di terze parti Supporto per codice personalizzato Livello di impegno
Integrato No No No Basse
Scikit-learn PyPi solo Media
Spark ML PyPi solo Media
XGBoost(open source) PyPi solo Media
TensorFlow No PyPi solo Medio-alta
PyTorch No PyPi solo Medio-alta
MXNet No PyPi solo Medio-alta
Chainer No PyPi solo Medio-alta
Immagine personalizzata No Sì, da qualsiasi origine Elevata

Utilizza un algoritmo integrato

Quando scegli un algoritmo per il tuo tipo di problema e di dati, l'opzione più semplice è utilizzare uno degli algoritmi integrati SageMaker di Amazon. Questi algoritmi integrati offrono due vantaggi principali.

  • Gli algoritmi integrati non richiedono alcuna codifica per iniziare a eseguire esperimenti. Gli unici input che devi fornire sono i dati, gli iperparametri e le risorse di calcolo. Ciò consente di eseguire esperimenti più rapidamente, con meno spese di monitoraggio dei risultati e delle modifiche al codice.

  • Gli algoritmi integrati sono dotati di parallelizzazione su più istanze di calcolo e GPU supportano immediatamente tutti gli algoritmi applicabili (alcuni algoritmi potrebbero non essere inclusi a causa di limitazioni intrinseche). Se disponi di molti dati con cui addestrare il modello, la maggior parte degli algoritmi integrati può facilmente scalare per soddisfare la domanda. Anche se disponi già di un modello già addestrato, potrebbe essere comunque più semplice utilizzarne il corollario SageMaker e inserire gli iperparametri che già conosci piuttosto che trasferirlo, utilizzando la modalità script su un framework supportato.

Per ulteriori informazioni sugli algoritmi integrati forniti da, vedere. SageMaker Usa algoritmi SageMaker integrati di Amazon o modelli preaddestrati

Per informazioni importanti sui percorsi del registro docker, sui formati di dati, sui tipi di EC2 istanza consigliati e CloudWatch sui log comuni a tutti gli algoritmi integrati forniti da, vedere. SageMaker Informazioni comuni sugli algoritmi integrati

Usa la modalità script in un framework supportato

Se l'algoritmo che desideri utilizzare per il tuo modello non è supportato da una scelta integrata e ti senti a tuo agio nel codificare la tua soluzione, allora dovresti prendere in considerazione l'utilizzo di un framework SageMaker supportato da Amazon. Questa viene definita «modalità script» perché il codice personalizzato (script) viene scritto in un file di testo con estensione .py. Come indicato nella tabella precedente, SageMaker supporta la maggior parte dei framework di machine learning più diffusi. Questi framework sono precaricati con il framework corrispondente e alcuni pacchetti Python aggiuntivi, come Pandas e NumPy, quindi puoi scrivere il tuo codice per addestrare un algoritmo. Questi framework consentono inoltre di installare qualsiasi pacchetto Python ospitato su PyPi includendo un file requirements.txt nel codice di addestramento o di includere le proprie directory di codice. R è supportato nativamente anche nei kernel dei SageMaker notebook. Alcuni framework, come scikit-learn e Spark ML, hanno algoritmi precodificati che puoi usare facilmente, mentre altri framework come e potrebbero richiedere l'implementazione dell'algoritmo da solo. TensorFlow PyTorch L'unica limitazione quando si utilizza un'immagine del framework supportata è che non è possibile importare pacchetti software che non siano ospitati PyPi o che non siano già inclusi nell'immagine del framework.

Per ulteriori informazioni sui framework supportati da SageMaker, vedere. Framework e linguaggi di machine learning

Utilizzare un’immagine Docker personalizzata

Gli algoritmi integrati e i framework supportati di Amazon SageMaker dovrebbero coprire la maggior parte dei casi d'uso, ma a volte potrebbe essere necessario utilizzare un algoritmo contenuto in un pacchetto non incluso in nessuno dei framework supportati. Potresti anche avere un modello già addestrato selezionato o salvato da qualche parte che devi distribuire. SageMaker utilizza immagini Docker per ospitare la formazione e la fornitura di tutti i modelli, quindi puoi fornire la tua immagine Docker personalizzata se il pacchetto o il software di cui hai bisogno non è incluso in un framework supportato. Questo può essere il tuo pacchetto Python o un algoritmo codificato in un linguaggio come Stan o Julia. Per queste immagini devi anche configurare correttamente l'addestramento dell'algoritmo e il servizio del modello nel tuo Dockerfile. Ciò richiede una conoscenza intermedia di Docker e non è consigliato a meno che tu non abbia dimestichezza con la creazione di un algoritmo di machine learning personalizzato. L'immagine Docker deve essere caricata in un repository online, come Amazon Elastic Container Registry (ECR) prima di poter addestrare e servire correttamente il modello.

Per ulteriori informazioni sulle immagini Docker personalizzate in SageMaker, consulta. Usa i contenitori Docker per addestrare e distribuire modelli

Tipi di problemi per i paradigmi di base del machine learning

Le tre sezioni seguenti descrivono i principali tipi di problemi affrontati dai tre paradigmi di base per il machine learning. Per un elenco degli algoritmi integrati che SageMaker consentono di risolvere questi tipi di problemi, consulta. Usa algoritmi SageMaker integrati di Amazon o modelli preaddestrati

Apprendimento supervisionato

Se il set di dati è composto da funzionalità o attributi (input) che contengono valori target (output), allora hai un problema di apprendimento supervisionato. Se i valori target sono categorici (matematicamente discreti), allora hai un problema di classificazione. È pratica standard distinguere la classificazione binaria da quella multiclasse.

  • La classificazione binaria è un tipo di apprendimento supervisionato che assegna un individuo a una delle due classi predefinite e reciprocamente esclusive in base ai loro attributi. È supervisionato perché i modelli sono addestrati utilizzando esempi in cui gli attributi sono forniti con oggetti etichettati correttamente. Una diagnosi medica per capire se un individuo ha una malattia o meno basata sui risultati dei test diagnostici è un esempio di classificazione binaria.

  • La classificazione multiclasse è un tipo di apprendimento supervisionato che assegna un individuo a una delle diverse classi in base ai loro attributi. È supervisionato perché i modelli sono addestrati utilizzando esempi in cui gli attributi sono forniti con oggetti etichettati correttamente. Un esempio è la previsione dell'argomento più rilevante per un documento di testo. Un documento può essere classificato come di religione, politica o finanza, o in una delle molte altre classi tematiche predefinite.

Se i valori target che stai cercando di prevedere sono matematicamente continui, allora hai un problema di regressione. La regressione stima i valori di una variabile target dipendente in base a una o più variabili o attributi correlati con essa. Un esempio è la previsione dei prezzi delle case utilizzando caratteristiche come il numero di bagni e camere da letto, metratura della casa e del giardino. L'analisi di regressione può creare un modello che accetta una o più di queste caratteristiche come input e prevede il prezzo di una casa.

Per ulteriori informazioni sugli algoritmi di apprendimento supervisionato integrati forniti da SageMaker, vedere. Apprendimento supervisionato

Apprendimento non supervisionato

Se il set di dati è composto da funzionalità o attributi (input) che non contengono valori target (output), allora hai un problema di apprendimento non supervisionato. In questo tipo di problema, l'output deve essere previsto in base al modello rilevato nei dati di input. L'obiettivo dei problemi di apprendimento non supervisionato è scoprire modelli come i raggruppamenti all'interno dei dati. Esiste un'ampia varietà di attività o tipi di problemi a cui è possibile applicare l'apprendimento non supervisionato. Le analisi dei componenti principali e dei cluster sono due dei metodi principali comunemente utilizzati per la preelaborazione dei dati. Ecco un breve elenco di tipi di problemi che possono essere risolti mediante l'apprendimento non supervisionato:

  • La riduzione delle dimensioni fa in genere parte di una fase di esplorazione dei dati utilizzata per determinare le funzionalità più rilevanti da utilizzare per la costruzione del modello. L'idea è quella di trasformare i dati da uno spazio ad alta dimensione e scarsamente popolato in uno spazio a bassa dimensione che conservi le proprietà più significative dei dati originali. In questo modo si risolve il problema della dimensionalità che può insorgere con dati scarsamente popolati e ad alta dimensione, in base ai quali l'analisi statistica diventa problematica. Può anche essere usato per aiutare a comprendere i dati, riducendo i dati ad alta dimensionalità a una dimensionalità inferiore che può essere visualizzata.

  • L’analisi dei cluster è una classe di tecniche utilizzate per classificare oggetti o casi in gruppi chiamati cluster. Cerca di trovare raggruppamenti discreti all'interno di dati, dove i membri di un gruppo sono il più possibile simili l'uno all'altro e il più possibile diversi dai membri di altri gruppi. Si definiscono le funzionalità o gli attributi che si desidera che l'algoritmo utilizzi per determinare la somiglianza, si seleziona una funzione di distanza per misurare la somiglianza e si specifica il numero di cluster da utilizzare nell'analisi.

  • Il rilevamento delle anomalie consiste nell'identificazione di elementi, eventi o osservazioni rari in un set di dati che destano sospetti perché differiscono in modo significativo dal resto dei dati. L'identificazione di elementi anomali può essere utilizzata, ad esempio, per rilevare frodi bancarie o errori medici. Le anomalie vengono anche definite anormalità, novità, rumore, deviazioni ed eccezioni.

  • La stima della densità è la costruzione di stime di funzioni di densità di probabilità sottostanti non osservabili basate su dati osservati. Un uso naturale delle stime della densità è l'esplorazione dei dati. Le stime della densità consentono di scoprire funzionalità quali l'asimmetria e la multimodalità dei dati. La forma più semplice di stima della densità è un istogramma ridimensionato.

SageMaker fornisce diversi algoritmi di apprendimento automatico integrati che è possibile utilizzare per queste attività di apprendimento non supervisionato. Per ulteriori informazioni sugli algoritmi incorporati non supervisionati forniti da, vedere. SageMaker Apprendimento non supervisionato

Apprendimento per rinforzo

L'apprendimento per rinforzo è un tipo di apprendimento che si basa sull'interazione con l'ambiente. Questo tipo di apprendimento viene utilizzato da un agente che deve apprendere il comportamento attraverso trial-and-error interazioni con un ambiente dinamico in cui l'obiettivo è massimizzare i premi a lungo termine che l'agente riceve come risultato delle sue azioni. Le ricompense vengono massimizzate scambiando le azioni esplorative che hanno ricompense incerte con lo sfruttamento di azioni che prevedono ricompense note.

Per ulteriori informazioni sui framework, SageMaker i toolkit e gli ambienti per l'apprendimento per rinforzo, vedere. Usa il Reinforcement Learning con Amazon SageMaker