L'apprendimento automatico automatizzato è un sogno?


12

Quando scopro l'apprendimento automatico vedo diverse tecniche interessanti come:

  • sintonizza automaticamente algoritmi con tecniche come grid search,
  • ottenere risultati più precisi attraverso la combinazione di diversi algoritmi dello stesso "tipo", quella boosting,
  • ottenere risultati più precisi attraverso la combinazione di diversi algoritmi (ma non lo stesso tipo di algoritmi), che di stacking,
  • e probabilmente molto altro devo ancora scoprire ...

La mia domanda è la seguente: ci sono tutti quei pezzi. Ma è possibile metterli insieme per creare un algoritmo che prende come input i dati puliti e produce buoni risultati prendendo il meglio da tutte le tecniche? (Naturalmente sarà probabilmente meno efficiente di uno scienziato di dati professionale, ma sarà migliore di me!) Se sì, hai dei codici di esempio o conosci dei framework che possono farlo?

EDIT: dopo alcune risposte, sembra che debba essere fatto un restringimento. Facciamo un esempio, abbiamo una colonna con dati categorici, chiamiamola ye vogliamo prevederla da dati numerici Xche sono o manichini o dati numerici reali (altezza, temperatura). Supponiamo che la pulizia sia stata eseguita in precedenza. Esistono algoritmi esistenti che possono acquisire tali dati e generare una previsione? (testando più algoritmi, ottimizzandoli, potenziandoli, ecc.) Se sì, è computazionalmente efficiente (i calcoli vengono eseguiti in un tempo ragionevole se confrontiamo con l'algoritmo normale) e hai un esempio di codice?


1
Probabilmente non fino a quando non ci sarà una forte IA.
gung - Ripristina Monica

1
Per quanto riguarda la sintonizzazione automatica, potresti essere interessato a leggere la ricerca di iperparametri in Machine Learning . La ricerca della griglia è un modo terribile per ottimizzare gli iperparametri.
Marc Claesen,

2
Non si deve usare tanto la formattazione ?
Sycorax dice di reintegrare Monica il

2
Ci sono prodotti che affermano di fare ciò che descrivi, ad esempio Crystal Ball . Personalmente non mi fido di loro, ma come hai scritto: fanno il lavoro meglio di qualcuno che non ha idea delle statistiche
Aksakal,

1
Per le previsioni auto.arima(dalla forecastbiblioteca) può essere meglio degli umani - Rob Hyndman ha menzionato più volte nelle sue presentazioni. Quindi ci sono aree in cui alcuni tipi di "apprendimento automatico" vengono applicati con successo.
Tim

Risposte:


7

Se sai in anticipo che tipo di dati fornirai ("si tratta di vendite mensili di CPG, con prezzi e indicatori di promozione e voglio una previsione puntuale"), in modo da poter ottimizzare la configurazione in anticipo, probabilmente sarà possibile e già fatto, vedere vari "sistemi esperti" per determinati compiti specifici.

Se stai cercando qualcosa che possa prendere qualsiasi tipo di dati e fare "qualcosa di utile" con esso ("ah, qui dovrei riconoscere la scrittura a mano e i codici postali di output, e lì dovrei fare il rilevamento delle frodi, e questo file di input ovviamente è un compito di valutazione del credito "), no, non penso che succederà a lungo.

Ci scusiamo per una risposta basata sull'opinione a quella che potrebbe essere chiusa come una domanda basata sull'opinione.


EDIT per rispondere alla domanda modificata:

abbiamo una colonna con dati categorici, chiamiamola e vogliamo prevederla da dati numerici che sono o manichini o dati numerici realiXyX

Sembra qualcosa a cui le foreste casuali sono in realtà abbastanza brave. Inoltre, un algoritmo "generico" come le RF probabilmente non batterà mai un algoritmo sintonizzato su un particolare tipo di conosciuto in precedenza, ad esempio cifre scritte a mano o rischi di insolvenza del credito.y


Ho modificato la mia domanda grazie a te, c'è una prima parte "prendi qualsiasi input e lanciami il risultato" e la tua risposta è davvero approfondita, e una seconda parte "per un particolare tipo di domande, e la formattazione dei dati, trovami il risultato".
Pholochtairze,

Non sono sicuro che l'ultimo paragrafo sia ancora valido, dato l'immenso successo del deep learning su una grande varietà di problemi. Questi metodi sono sicuramente di uso generale, ma conservano record in diversi domini applicativi come computer vision e NLP. Si potrebbe sostenere che le architetture differiscono tra i compiti, ma a livello teorico una rete profonda completamente connessa avrebbe prestazioni almeno altrettanto buone, per esempio, delle reti convoluzionali, è solo che i metodi di addestramento adeguati rimangono sfuggenti.
Marc Claesen,

@MarcClaesen: Direi che "è solo che metodi di allenamento adeguati rimangono sfuggenti" sono il punto in cui avrai ancora bisogno di competenze specifiche per il dominio.
Stephan Kolassa,

7

Ciò che descrivi esiste già in una certa misura, ad esempio in AutoWEKA , e viene attivamente riscritto (ad esempio sfide come AutoML di Chalearn ).

Questo è generalmente considerato nel sottocampo dell'ottimizzazione dell'iperparametro. Pacchetti software come Optunity , Hyperopt e ParamILS possono essere utilizzati per ottimizzare automaticamente gli iperparametri per un determinato approccio e scegliere quale approccio risulta essere il migliore. Detto questo, tali problemi di ottimizzazione non sono banali e di solito ci vuole molto tempo per ottenere automaticamente il modello migliore (o vicino ad esso).

Puoi trovare un esempio dell'utilizzo di Optunity per determinare automaticamente il miglior algoritmo di apprendimento e ottimizzare i suoi iperparametri su http://optunity.readthedocs.org/en/latest/notebooks/notebooks/sklearn-automated-classification.html


4

I progressi nella messa a punto di iperparametrici e nei modelli di ensemble stanno portando molta "arte" nella costruzione di modelli. Tuttavia, ci sono due importanti aspetti della costruzione del modello che l'ottimizzazione dei parametri e gli ensemble non affrontano e ti impediranno di trovare il miglior modello possibile.

Innanzitutto, alcuni tipi di algoritmi sono più efficaci nel modellare determinati tipi di dati. Ad esempio, se ci sono interazioni tra le variabili, un modello additivo non le troverà, ma un albero decisionale lo farà. Sapere come si comportano i modelli su diversi set di dati e scegliere quello giusto potrebbe richiedere la conoscenza del dominio per trovare il miglior algoritmo di modellazione.

In secondo luogo, l'ingegnerizzazione e l'estrazione di feature è la vera "arte" per la costruzione di modelli. La tua domanda presuppone che il set di dati sia già pronto. Ma ciò che non dovresti assumere è che il set di dati sia la migliore rappresentazione possibile di ciò che stai cercando di modellare. Questa è sempre una domanda aperta. In molti casi, in cui il set di dati è complesso, è possibile progettare funzionalità per tutto il giorno, ma si rischia di gettare sempre più rumore nell'algoritmo. Per sapere quali funzionalità aggiungere è necessario sapere quali funzioni hanno senso dal punto di vista statistico e quali hanno senso dal punto di vista dell'esperto del dominio.

Per questi due motivi, concludo che no, non sarai in grado di trovare un algoritmo che trova automaticamente il miglior modello possibile . Questo è anche il motivo per cui sono scettico nei confronti dei fornitori di software che lanciano strumenti che sostituiranno la necessità di data scientist.

Tuttavia, se stai restringendo la tua ambizione di trovare il modello migliore da un set fisso di modelli, con parametri ipertestuali ottimali, dove "best" è definito come la massima precisione predittiva su un set di allenamento, allora sì, questo è possibile.

Dai un'occhiata al caretpacchetto Rcome esempio di come ottimizzare automaticamente i modelli. caretutilizza la ricerca della griglia, che presenta difetti e crea un solo modello alla volta. Tuttavia, ci sono funzioni per confrontare modelli e wrapper convenienti per un lungo elenco di modelli di molti Rpacchetti diversi .


Concordo sul fatto che siamo ancora lontani dall'apprendimento automatico completamente automatico, ma non per i motivi specificati. Due cose: (i) trovare il modello migliore (+ ottimizzare i suoi iperparametri) da un determinato set è già possibile e (ii) l'ingegnerizzazione delle caratteristiche e l'estrazione delle caratteristiche sta perdendo importanza a causa dei progressi nell'apprendimento profondo. La cosa principale che attualmente ci manca sono i modi automatizzati per incorporare conoscenze pregresse e buon senso specifico sul campo.
Marc Claesen,

Immagino di non vedere come "la conoscenza preliminare e il buonsenso specifico sul campo" possano migliorare il processo ML tranne che per aiutare (i) a trovare il modello migliore e (ii) a trovare le migliori caratteristiche. Ho cercato di distinguere tra modelli reali e modelli ottimali (massima precisione) con il penultimo paragrafo.
brandco,

per scoprire evidenti difetti nel processo di modellazione come etichette errate e / o perdite di informazioni, come gestire i dati mancanti, identificare l'effettivo compito di apprendimento (+ una funzione di punteggio / perdita adeguata) e generalmente eseguire una pulizia completa dei dati (che ha sempre è stato lo sforzo principale su tutti i problemi pratici in cui sono stato coinvolto).
Marc Claesen,

2

Dipende da chi chiedi.

Di recente ho ascoltato un discorso di Scott Golder a Context Relevant . Il loro prodotto è essenzialmente un robot di selezione delle caratteristiche e dei modelli. Il modello di base di base è la regressione logistica, ma il sistema utilizza fondamentalmente l'apprendimento automatico per capire la giusta combinazione di selezione delle caratteristiche, riduzione delle dimensioni, regolarizzazione, ecc. Per generare previsioni accurate. È stato un discorso davvero impressionante e i dettagli sono tutti molto proprietari. Apparentemente i loro clienti includono importanti società finanziarie e il sistema può gestire insiemi di dati arbitrariamente massicci.

Almeno poche persone, quindi, sembrano pensare che la scienza automatizzata dei dati sia già qui, almeno per alcune applicazioni. E alcune di quelle persone (i clienti di Context Relevant) stanno apparentemente pagando attraverso il naso per accedervi.


1

No, non è un sogno. Abbiamo implementato questo (la combinazione di tutte le tecniche che hai citato, compresi gli ensemble sovrapposti) nella libreria di machine learning H2O . Puoi leggere di più a riguardo e trovare esempi di codice in R e Python qui .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.