Come sapere che il tuo problema di apprendimento automatico è senza speranza?


207

Immagina uno scenario di apprendimento automatico standard:

Ti trovi di fronte a un ampio set di dati multivariato e ne hai una comprensione piuttosto sfocata. Quello che devi fare è fare previsioni su alcune variabili in base a ciò che hai. Come al solito, si puliscono i dati, si guardano le statistiche descrittive, si eseguono alcuni modelli, si convalidano in modo incrociato ecc., Ma dopo diversi tentativi, andare avanti e indietro e provare più modelli nulla sembra funzionare ei risultati sono miserabili. Puoi passare ore, giorni o settimane su un problema del genere ...

La domanda è: quando fermarsi? Come fai a sapere che i tuoi dati in realtà sono senza speranza e tutti i modelli fantasiosi non ti farebbero più bene che prevedere il risultato medio per tutti i casi o qualche altra soluzione banale?

Certo, questo è un problema di previsione, ma per quanto ne so, è difficile valutare la previsione per i dati multivariati prima di provare qualcosa su di esso. O mi sbaglio?

Disclaimer: questa domanda è stata ispirata da questa Quando devo smettere di cercare un modello? che non ha attirato molta attenzione. Sarebbe bello avere una risposta dettagliata a tale domanda come riferimento.


1
Questo problema può essere risolto in termini pratici (come ha fatto @StephanKolassa) o in termini assoluti (una sorta di teorema che mostra un determinato modello può imparare un problema se determinate condizioni sono soddisfatte). Quale vuoi?
Superbo

3
Sembra simile al classico problema di arresto dell'informatica? Supponiamo che tu abbia un algoritmo A di complessità arbitraria che ricerca i dati di input D alla ricerca di modelli predittivi e che l'algoritmo si interrompe quando trova un modello "buono" per i dati. Senza aggiungere una struttura significativa su A e D, non vedo come si possa dire se A interromperà mai l'ingresso D, come si può dire se A riuscirà alla fine o continuerà a cercare per sempre?
Matthew Gunn,

@Superbest può essere entrambi. Se hai qualcosa da aggiungere, sentiti libero di rispondere. Non ho mai sentito parlare del teorema che afferma qualcosa sulla gestione di dati rumorosi multidimensionali nella vita reale, ma se ne conosci uno che si applica, allora sarei interessato a leggere la tua risposta.
Tim

3
Sulla base della risposta di @K StephenKolassa, un'altra domanda che potresti scartare è: "A che punto dovrei portare il mio lavoro così lontano agli esperti in materia e discutere i miei risultati (o la mancanza di risultati)?"
Robert de Graaf,

Risposte:


241

Forecastability

Hai ragione sul fatto che questa è una questione di previsioni. Ci sono stati alcuni articoli sulla previsione nella rivista Foresight orientata ai praticanti della IIF . (Informativa completa: sono un editore associato.)

Il problema è che la previsione è già difficile da valutare in casi "semplici".

Alcuni esempi

Supponiamo che tu abbia una serie temporale come questa ma non parli tedesco:

uova

Come modelleresti il ​​picco di aprile e come includeresti queste informazioni in qualsiasi previsione?

Se non sapessi che questa serie storica è la vendita di uova in una catena di supermercati svizzera, che raggiunge il picco proprio prima del calendario occidentale di Pasqua , non avresti alcuna possibilità. Inoltre, con la Pasqua che si sposta nel calendario di almeno sei settimane, tutte le previsioni che non includono la data specifica della Pasqua (supponendo, diciamo, che questo fosse solo un picco stagionale che si sarebbe ripetuto in una settimana specifica l'anno prossimo) probabilmente sarebbe molto spento.

Allo stesso modo, supponiamo di avere la linea blu in basso e di voler modellare tutto ciò che è accaduto il 28/02/2010 in modo così diverso dai modelli "normali" del 27/02/2010:

partita di hockey

Ancora una volta, senza sapere cosa succede quando un'intera città piena di canadesi guarda una partita di finali di hockey su ghiaccio olimpico in TV, non hai alcuna possibilità di capire cosa è successo qui e non sarai in grado di prevedere quando si ripeterà qualcosa di simile.

Infine, guarda questo:

outlier

Questa è una serie temporale di vendite giornaliere in un negozio cash and carry . (A destra, hai una tabella semplice: 282 giorni hanno avuto vendite zero, 42 giorni hanno visto vendite di 1 ... e un giorno ho visto vendite di 500.) Non so di che articolo si tratta.

Fino ad oggi, non so cosa sia successo in quel giorno con vendite di 500. La mia ipotesi migliore è che alcuni clienti abbiano preordinato una grande quantità di qualsiasi prodotto fosse e lo hanno raccolto. Ora, senza saperlo, qualsiasi previsione per questo particolare giorno sarà lontana. Al contrario, supponiamo che ciò sia accaduto poco prima di Pasqua e abbiamo un algoritmo stupido che crede che questo potrebbe essere un effetto pasquale (forse queste sono uova?) E prevede felicemente 500 unità per la prossima Pasqua. Oh mio, poteva che andare storto.

Sommario

In tutti i casi, vediamo come la previsionalità può essere ben compresa solo quando abbiamo una comprensione sufficientemente profonda dei probabili fattori che influenzano i nostri dati. Il problema è che se non conosciamo questi fattori, non sappiamo che potremmo non conoscerli. Secondo Donald Rumsfeld :

[T] qui sono noti noti; ci sono cose che sappiamo di sapere. Sappiamo anche che ci sono sconosciuti noti; vale a dire sappiamo che ci sono alcune cose che non sappiamo. Ma ci sono anche incognite sconosciute - quelle che non sappiamo non lo sappiamo.

Se la predilezione della Pasqua o dei canadesi per l'hockey è per noi sconosciute, siamo bloccati - e non abbiamo nemmeno una strada da percorrere, perché non sappiamo quali domande dobbiamo porre.

L'unico modo per ottenere una gestione su questi è quello di raccogliere la conoscenza del dominio.

conclusioni

Ne traggo tre conclusioni:

  1. Devi sempre includere la conoscenza del dominio nella modellazione e nella previsione.
  2. Anche con la conoscenza del dominio, non è garantito che si ottengano informazioni sufficienti affinché le previsioni e le previsioni siano accettabili per l'utente. Vedi quello anomalo sopra.
  3. Se "i tuoi risultati sono miserabili", potresti sperare in più di quello che puoi ottenere. Se si prevede un lancio corretto della moneta, non è possibile ottenere una precisione superiore al 50%. Non fidatevi neanche dei benchmark di accuratezza delle previsioni esterne.

La linea di fondo

Ecco come consiglierei di costruire modelli - e notare quando fermarsi:

  1. Parla con qualcuno con conoscenza del dominio se non lo possiedi già da solo.
  2. Identifica i principali driver dei dati che desideri prevedere, comprese le interazioni probabili, in base al passaggio 1.
  3. Costruisci i modelli in modo iterativo, includendo i driver in ordine decrescente di forza secondo il passaggio 2. Valuta i modelli usando la validazione incrociata o un campione di controllo.
  4. Se la precisione delle tue previsioni non aumenta ulteriormente, torna al passaggio 1 (ad es. Identificando errate predizioni errate che non puoi spiegare e discutendole con l'esperto di dominio) oppure accetta di aver raggiunto la fine del tuo capacità dei modelli. Il time-boxing della tua analisi in anticipo aiuta.

Nota che non sto sostenendo di provare diverse classi di modelli se i tuoi plateau originali. In genere, se si è iniziato con un modello ragionevole, l'utilizzo di qualcosa di più sofisticato non produrrà un grande vantaggio e potrebbe semplicemente "adattarsi eccessivamente al set di test". L'ho visto spesso e altre persone sono d'accordo .


10
+1 per la risposta meravigliosa con cui sono totalmente d'accordo. Non lo accetto (ancora) poiché spero ancora in altre risposte poiché il problema è ampio.
Tim

1
Sicuro. Mi piacerebbe vedere anche la prospettiva di qualcun altro su questo!
Stephan Kolassa,

9
If you are forecasting a fair coin toss, then there is no way to get above 50% accuracy.. Hai detto tutto lì.
Walfrat,

3
Utilizzando la conoscenza del dominio è possibile aggiungere nuove funzionalità ai primi due casi (ad esempio, il tempo fino a Pasqua e i numeri di visione della TV, anche se quest'ultimo ha bisogno di previsioni per conto proprio) per ottenere risultati molto migliori. In nessuno dei due casi la situazione è senza speranza. La parte davvero interessante è come dire la conoscenza del dominio mancante da un set di dati di lanci di monete onesti.
Karolis Juodelė,

4
@ KarolisJuodelė: questo è esattamente il mio punto. Non possiamo nemmeno sapere quando la nostra situazione è senza speranza, a meno che non parliamo con un esperto ... e poi, a volte l'esperto non può aiutarci neanche, e ci sono "sconosciuti sconosciuti" per gli esperti, che presumibilmente qualcun altro potrebbe conoscere.
Stephan Kolassa,

57

La risposta di Stephan Kolassa è eccellente, ma vorrei aggiungere che spesso c'è anche una condizione di stop economico:

  1. Quando stai facendo ML per un cliente e non per divertimento, dovresti dare un'occhiata alla quantità di denaro che il cliente è disposto a spendere. Se paga la tua azienda 5000 € e hai speso un mese per trovare un modello, perderai denaro. Sembra banale, ma ho visto "deve esserci una soluzione !!!!", pensando che ha portato a enormi sovraccarichi di costi. Quindi fermati quando il denaro è esaurito e comunica il problema al tuo cliente.
  2. Se hai svolto qualche lavoro, hai spesso la sensazione di cosa sia possibile con il set di dati corrente. Prova ad applicarlo alla quantità di denaro che puoi guadagnare con il modello, se l'importo è banale o negativo (ad es. A causa del tempo di raccolta dei dati, sviluppo di una soluzione ecc.), Dovresti interrompere.

Ad esempio: avevamo un cliente che voleva prevedere quando le sue macchine si rompevano, abbiamo analizzato i dati esistenti e riscontrato essenzialmente rumore. Abbiamo approfondito il processo e abbiamo scoperto che i dati più critici non sono stati registrati ed è stato molto difficile da raccogliere. Ma senza quei dati, il nostro modello era così scarso che nessuno l'avrebbe usato ed era in scatola.

Mentre mi concentrai sull'economia quando lavoravo su un prodotto commerciale, questa regola si applica anche al mondo accademico o per progetti divertenti - mentre il denaro è meno preoccupante in tali circostanze, il tempo è ancora un bene raro. Per esempio. in ambito accademico dovresti smettere di lavorare quando non produci risultati tangibili e hai altri progetti più promettenti che potresti fare. Ma non abbandonare quel progetto - si prega di pubblicare anche risultati nulli o "bisogno di più / altri dati", sono anche importanti!


1
+1 sicuramente un ottimo punto! Immagino che tutte le risposte a questa domanda possano sembrare "ovvie", ma non ho visto da nessuna parte tutte quelle cose "ovvie" raccolte per riferimento.
Tim

3
A proposito, questa regola di interruzione si applica anche ai casi non aziendali: ad esempio, se fai qualche tipo di ricerca, i nostri risultati hanno anche un valore astratto e l'analisi continua "senza speranza" è ragionevole solo fino a quando il valore dell'analisi non supera quello che avrebbe potuto invece fare. Quindi, in effetti, questo argomento teorico decisionale può essere reso più generale.
Tim

2
Penso che "nessuno avrebbe usato ist ed è stato inscatolato" probabilmente dovrebbe essere cambiato in "nessuno l'avrebbe usato ed è stato inscatolato" - era questo il tuo significato voluto?
Silverfish,

2
Grazie. Direi che non si tratta solo di tempo, ma del fatto che potresti investire il tempo in modo diverso. Potresti invece lavorare su un progetto di ricerca su altri farmaci salvavita che ti faresti risparmiare tempo, ma anche il pubblico trarrà beneficio dai risultati ecc.
Tim

2
@ChristianSauer Nella mia esperienza di ingegnere il problema di una discrepanza tra i sensori (vedi calibri) e uno scopo utile probabilmente precede l'invenzione del transistor.
Robert de Graaf,

9

C'è un altro modo. Chiedilo a te stesso -

  1. Chi o cosa rende le migliori previsioni possibili di questa particolare variabile? "
  2. Il mio algoritmo di apprendimento automatico produce risultati migliori o peggiori delle migliori previsioni?

Quindi, ad esempio, se avevi un gran numero di variabili associate a diverse squadre di calcio e stavi cercando di prevedere chi avrebbe vinto, potresti guardare le probabilità del bookmaker o qualche forma di previsione di crowdfunding da confrontare con i risultati del tuo apprendimento automatico algoritmo. Se stai meglio potresti essere al limite, se peggio allora chiaramente c'è spazio per migliorare.

La tua capacità di migliorare dipende (in generale) da due cose:

  1. Stai utilizzando gli stessi dati del miglior esperto in questa particolare attività?
  2. Stai usando i dati in modo efficace come il miglior esperto in questo particolare compito?

Dipende esattamente da cosa sto cercando di fare, ma tendo a usare le risposte a queste domande per guidare la direzione in cui vado quando costruisco un modello, in particolare se cercare di estrarre più dati che posso usare o su cui concentrarmi cercando di affinare il modello.

Sono d'accordo con Stephan che di solito il modo migliore per farlo è chiedere a un esperto di dominio.


1
In realtà la tua risposta contraddice la risposta di @StephanKolassa dove si riferisce alla letteratura suggerendo che i benchmark di previsione sono piuttosto fuorvianti.
Tim

1
@Tim: divulgazione completa - quel link è andato a un articolo sui benchmark che ho scritto da solo. Ciononostante, sostengo le mie conclusioni: tutti i parametri di riferimento per l'accuratezza della previsione della domanda che ho visto molto probabilmente mettono a confronto mele e arance. Sono quindi un po 'scettico riguardo ai benchmark esterni. Inoltre, penso che questa risposta ponga in qualche modo la domanda. Una volta che il tuo algoritmo ML migliora "il più noto", come fai a sapere se puoi migliorarlo ulteriormente o se abbiamo raggiunto The Plateau of Hopelessness?
Stephan Kolassa,

1
Il mio caso d'uso più recente era piuttosto diverso. Stavo cercando di prevedere chi era a rischio di suicidarsi dalle loro pubblicazioni su Internet. Esistono vari test psicometrici che è possibile utilizzare per valutare la gravità della depressione come il PHQ9. Trattandosi di un test medico ampiamente utilizzato, esiste un lavoro considerevole sulla sua validità e affidabilità come "La validità di PHQ-9 di una breve misura di gravità della depressione". Ho scoperto che l'affidabilità e altre misure in quel documento sono un buon punto di partenza per i probabili risultati che si potrebbero ottenere dall'apprendimento automatico.
Gavin Potter,

1
Hai ragione, ovviamente, sul miglioramento del "più noto", non c'è modo di dire se continuare a cercare un modello migliore. Ma nella mia esperienza, è abbastanza raro che ciò si verifichi in una situazione del mondo reale. La maggior parte del lavoro che svolgo sembra riguardare il tentativo di applicare giudizi di esperti su larga scala attraverso l'uso dell'apprendimento automatico non cercando di migliorare il miglior esperto del settore.
Gavin Potter,
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.