Ingegneri dell'apprendimento automatico: miti e realtà
Pubblicato: 2018-05-08L'apprendimento automatico è ciò che fornisce ai computer la capacità di apprendere e migliorare in modo iterativo i propri compiti. Si concentra sullo sviluppo di algoritmi dinamici che possono cambiare (modificare) se stessi quando esposti a un nuovo set di dati. Parlando in termini semplici, l'apprendimento automatico è ciò che fa dire a Facebook "vuoi taggare i tuoi amici in questa immagine?" , ogni volta che carichi una foto di gruppo. Le persone che lavorano dietro le quinte per realizzare tutto questo sono umilmente conosciute come Machine Learning Engineers.
Ora, come con ogni altro dominio sotto l'ampio ombrello della scienza dei dati, anche il Machine Learning ha molte idee sbagliate al riguardo. E cancellarli è proprio il nostro obiettivo per oggi. Ma è fondamentale che ti guidiamo prima attraverso la vita di un ingegnere di apprendimento automatico, comprese le competenze e gli strumenti che possiede. 
Innanzitutto, distinguiamo chiaramente l'apprendimento automatico dalla scienza dei dati.
Sommario
Gli ingegneri del machine learning sono data scientist?
La scienza dei dati è un termine onnicomprensivo, ma c'è qualcosa di fondamentalmente diverso nel modo in cui funziona l'apprendimento automatico. La scienza dei dati e gli analisti esplorano essenzialmente i dati e cercano di trovare approcci o modelli che soddisfino i loro requisiti aziendali.
L'apprendimento automatico, d'altra parte, cambia completamente questo modello. Gli ingegneri dell'apprendimento automatico non si occupano direttamente dei dati. Sanno i risultati che vogliono, ma lasciano che gli algoritmi facciano il lavoro per loro. L'apprendimento automatico crea una macchina che batte i campioni di Go, che tagga le foto o che traduce tra le lingue. Questi obiettivi non vengono raggiunti attraverso un'attenta esplorazione dei dati, a differenza del caso dell'analisi dei dati. Ci sono molti dati da esplorare e troppe dimensioni da affrontare (ad esempio, qual è la dimensionalità di un gioco Go? O, un linguaggio?) La promessa dell'apprendimento automatico è che costruisce il modello stesso: fa la sua esplorazione dei dati e sintonizzazione.
La differenza tra data science, machine learning e big data!
Di conseguenza, gli ingegneri dell'apprendimento automatico non "esplorano" tanto quanto i data scientist o gli analisti, almeno non nel vero senso della parola. Il loro obiettivo non è trovare un significato nei loro dati: credono che il significato sia già lì. Invece, mirano a costruire un modello/algoritmo/macchina/sistema in grado di analizzare i dati e produrre risultati. Oppure, per creare una rete neurale che funzioni, che può essere ottimizzata per produrre risultati affidabili su qualsiasi set di dati di input.
Diamo un'occhiata ad alcuni punti cruciali che ruotano attorno agli ingegneri dell'apprendimento automatico:
- Hanno maggiori capacità di ingegneria del software rispetto ai tipici analisti/scienziati di dati. Gli ingegneri dell'apprendimento automatico lavorano con gli ingegneri responsabili della manutenzione dei sistemi di produzione. Pertanto, devono comprendere la metodologia di sviluppo del software, le pratiche agili e gli strumenti di sviluppo software più moderni. Devono essere approfonditi con qualsiasi cosa, dagli IDE come Eclipse o IntelliJ ai componenti di una pipeline di distribuzione del software.
- Gli ingegneri dell'apprendimento automatico si concentrano sul far funzionare i prodotti di dati nella produzione. Di conseguenza, sono olistici nel loro approccio. Costituiscono una parte fondamentale di qualsiasi team di sviluppo software e, quindi, sanno cos'è il test A/B. Non solo lo “capiscono”, ma sanno anche come eseguire test A/B sui sistemi di produzione. Capiscono l'importanza della registrazione e della sicurezza per il destino di qualsiasi applicazione.
- Sono all'erta quando si tratta di monitorare i prodotti di dati in produzione. Sebbene ci siano molte risorse per automatizzare il processo di monitoraggio delle applicazioni, i requisiti dell'apprendimento automatico vanno oltre. Le pipeline di dati, i modelli, gli algoritmi o persino i sistemi possono diventare obsoleti e devono essere riqualificati. Un sistema di machine learning può essere facilmente distorto compromettendo le pipeline di dati che lo alimentano. Pertanto, gli ingegneri dell'apprendimento automatico devono sempre sapere come rilevare questi compromessi.
Alcune competenze necessarie per un ingegnere di machine learning di successo:
- Conoscenze di base di informatica e programmazione
- Probabilità e statistica
- Modellazione e valutazione dei dati
- Trovare la giusta libreria ML da usare e modificarla come e quando necessario
- Ingegneria del software e modellazione

Mito n. 1: gli ingegneri dell'apprendimento automatico fanno sì che i sistemi pensino esattamente come gli esseri umani.
Sebbene questo sia un eventuale obiettivo finale, al momento è lontano dalla verità. Confronta brevemente il processo di apprendimento di un bambino con quello di una macchina e ti renderai conto che l'apprendimento automatico è ancora agli inizi. Ad esempio, un bambino non ha bisogno di osservare centinaia di esseri umani per cose semplici come camminare o mangiare. Stabiliscono i propri obiettivi, percepiscono gli altri esseri umani intorno, creano intuitivamente la loro strategia di apprendimento e la perfezionano attraverso tentativi ed errori finché non ci riescono. Anche senza molto intervento o guida esterna, un bambino può imparare con successo a camminare, insieme ad altre cose essenziali.
Le macchine, d'altra parte, richiedono la supervisione in ogni fase dell'apprendimento. Inoltre, un bambino combina senza sforzo vari input ricevuti da più organi di senso in modo olistico ed efficiente. Ad esempio, un bambino sarà in grado di riconoscere le immagini in un istante e anche di comprendere qualsiasi testo scritto su di esse. Ma, per insegnare a una macchina la stessa cosa, abbiamo bisogno di algoritmi sofisticati separati, ciascuno per riconoscere i dati, identificare i rumori e comprendere il testo.

Mito n. 2: tutti i dati sono utili per gli ingegneri dell'apprendimento automatico.
Non c'è dubbio che anche gli ingegneri dell'apprendimento automatico abbiano bisogno di dati, ma non tutto è rilevante per l'apprendimento automatico. Hanno bisogno di dati rappresentativi che coprano i modelli e i risultati che il loro sistema dovrà gestire. I dati non devono includere modelli irrilevanti perché il modello di apprendimento automatico rifletterà tali modelli non correlati e li cercherà nei dati con cui verrà utilizzato.
Tutti i dati che usi per la formazione devono essere ben etichettati ed etichettati con le funzionalità che corrispondono alle domande che farai al sistema di apprendimento automatico, il che richiede molto lavoro. Tutti questi dati devono essere ben etichettati con le caratteristiche che corrispondono alle domande che porrai al tuo sistema. Dovrebbe anche essere incontaminato e privo di incongruenze o errori. Quindi, tutti i dati non sono preziosi per gli ingegneri dell'apprendimento automatico, solo i dati rilevanti lo sono!
Tieni d'occhio la prossima grande novità: l'apprendimento automatico
Mito n. 3: gli ingegneri dell'apprendimento automatico ignorano le conoscenze preesistenti.
Gli esperti in molti campi respingono l'apprendimento automatico per aver adottato un approccio "blank slate" nei loro algoritmi di apprendimento. Presumono che ogni algoritmo di apprendimento automatico parta da zero, senza la conoscenza di dati preesistenti. Gli ingegneri dell'apprendimento automatico comprendono meglio che l'apprendimento è un processo lungo che richiede un monitoraggio costante. Non può essere imitato semplicemente inserendo i dati in un algoritmo. Quindi, non tutti gli algoritmi di apprendimento iniziano con una tabula rasa; alcuni usano set di dati per perfezionare un pool di conoscenze preesistente. Alla fine della giornata, dipende dai requisiti aziendali dell'organizzazione.
Mito n. 4: i modelli di machine learning più semplici sono sempre più accurati.
Questo è in linea con il rasoio di Occam. Ma diciamo che il rasoio dice solo che sono preferibili spiegazioni più semplici, non perché. Sono preferiti perché sono più facili da capire, ricordare e gestire. Tuttavia, quando si tratta di machine learning, a volte l'ipotesi più semplice coerente con i dati è meno accurata per la previsione rispetto a una più complicata. Alcuni degli algoritmi di apprendimento più potenti producono modelli che sembrano elaborati gratuitamente - a volte continuano persino ad aggiungerli dopo aver adattato correttamente i dati - ma è così che hanno battuto quelli meno potenti.

Impara il corso ML online dalle migliori università del mondo. Guadagna master, Executive PGP o programmi di certificazione avanzati per accelerare la tua carriera. Poiché l'apprendimento automatico fa parte della scienza dei dati, una combinazione di informatica e matematica, la conoscenza della matematica è un must per gli ingegneri dell'apprendimento automatico. Avrai bisogno della conoscenza di concetti matematici come algebra lineare, calcolo, ottimizzazione, probabilità e statistica per creare e comprendere gli algoritmi di Machine Learning. Per essere più esatti, dovrai avere un'idea di base delle operazioni matematiche che aiutano nell'analisi dei dati. Ma la parte migliore è che puoi imparare questi concetti di base della matematica con il tempo mentre impari l'apprendimento automatico e la maggior parte di questi concetti è moderatamente facile da comprendere. Sappiamo che Data Science e Machine Learning sono indissolubilmente legati, quindi Machine Learning sarà valido solo quanto i dati forniti e la capacità degli algoritmi di acquisirli. I data scientist dovranno avere una conoscenza di base del Machine Learning. I data scientist estraggono conoscenze utili da enormi quantità di dati. Scoprono le tendenze e assistono nello sviluppo di soluzioni per automatizzare particolari operazioni aziendali. Per previsioni e stime accurate, i data scientist devono comprendere il machine learning. Questo può aiutare i robot a formulare giudizi migliori e intraprendere azioni più sagge in tempo reale senza la necessità dell'interazione umana. Il data mining e l'interpretazione vengono trasformati da Machine Learning. Le procedure statistiche tradizionali sono state sostituite da insiemi automatizzati più accurati di algoritmi generici. Python è il linguaggio più utilizzato per l'analisi dei dati e il Machine Learning. La maggior parte degli ingegneri di Machine Learning sceglie Python per le sfide NLP, R o Python sono preferiti per i lavori di analisi del sentimento e Java viene utilizzato per altre applicazioni di Machine Learning come la sicurezza e il rilevamento delle minacce. Python è diventato il linguaggio preferito per l'analisi dei dati, l'apprendimento automatico e l'intelligenza artificiale (AI) grazie al suo ampio ecosistema di librerie, che consente ai professionisti dell'apprendimento automatico di accedere, gestire, convertire e analizzare facilmente i dati. Python è popolare tra gli sviluppatori di Machine Learning per via della sua indipendenza, semplicità e leggibilità dalla piattaforma. La matematica è un must per gli ingegneri di Machine Learning?
I data scientist hanno bisogno dell'apprendimento automatico?
Quale linguaggio di codifica è preferito dagli ingegneri ML?
