Due anni fa, ho iniziato a imparare l’apprendimento automatico online per conto mio. Ho condiviso il mio viaggio attraverso YouTube e il mio blog. Non avevo idea di quello che stavo facendo. Non avevo mai programmato prima, ma ho deciso che volevo imparare il machine learning.
Quando le persone trovano il mio lavoro, a volte si avvicinano e fanno domande. Non ho tutte le risposte, ma rispondo a tutte quelle che posso. La domanda più comune che ricevo è “da dove comincio? La domanda successiva più comune è “quanta matematica devo conoscere?”
Ho risposto a una manciata di queste domande questa mattina.
Qualcuno mi ha detto che aveva iniziato a imparare Python e voleva entrare nel machine learning ma non sapeva cosa fare dopo.
Ho imparato Python, cosa devo fare dopo?
Ho messo insieme un paio di passi nella risposta e li copio qui. Potete considerarli uno schema di massima per passare dal non saper codificare all’essere un professionista dell’apprendimento automatico.
Il mio stile di apprendimento è prima il codice. Fai funzionare prima il codice e impara la teoria, la matematica, le statistiche e il lato della probabilità delle cose quando ne hai bisogno, non prima.
Ricorda, se stai iniziando a imparare l’apprendimento automatico, può essere scoraggiante. C’è molto. Prendetevi il vostro tempo. Segnalibro questo articolo in modo da potervi fare riferimento man mano che andate avanti.
Sono prevenuto verso l’uso di Python perché è quello con cui ho iniziato e continuo ad usare. Potreste usare qualcos’altro ma questi passi saranno per Python.
L’email diceva che avevano già fatto un po’ di Python. Ma questo passo è anche per qualcuno che è completamente nuovo. Passa qualche mese ad imparare il codice Python allo stesso tempo dei diversi concetti di apprendimento automatico. Ti serviranno entrambi.
Mentre impari il codice Python, fai pratica con strumenti di scienza dei dati come Jupyter e Anaconda. Passa qualche ora ad armeggiare con loro, a cosa servono e perché dovresti usarli.
Risorse per imparare
- Elementi di IA – panoramica dei principali concetti di intelligenza artificiale e apprendimento automatico.
- Una guida in 6 passi per costruire progetti di apprendimento automatico – panoramica di molti passi pratici che puoi fare per iniziare ad usare l’apprendimento automatico su una varietà di problemi aziendali diversi.
- Python for Everybody su Coursera – impara Python da zero.
- Learn Python by freeCodeCamp – tutti i principali concetti di Python in un solo video.
- Anaconda Tutorial by Corey Schafer – impara Anaconda (quello che userai per impostare il tuo computer per la scienza dei dati e il machine learning) in un solo video.
- Jupyter Notebook for Beginners Tutorial di Dataquest – impara ad usare i Jupyter Notebooks in un solo articolo.
- Jupyter Notebook Tutorial di Corey Schafer – impara ad usare i Jupyter Notebooks in un solo video.
Impara l’analisi dei dati, la manipolazione & visualizzazione con Pandas, NumPy Matplotlib
Una volta che hai qualche conoscenza di Python, vorrai imparare come lavorare e manipolare i dati.
Per fare ciò, dovresti familiarizzare con pandas, NumPy e Matplotlib.
pandas ti aiuterà a lavorare con i dataframes, queste sono tabelle di informazioni come quelle che vedresti in un file Excel. Pensate a righe e colonne. Questo tipo di dati è chiamato dati strutturati.
NumPy vi aiuterà ad eseguire operazioni numeriche sui vostri dati. L’apprendimento automatico trasforma tutto ciò che si può pensare in numeri e poi trova i modelli in quei numeri.
Matplotlib vi aiuterà a fare grafici e visualizzazioni dei vostri dati. Capire un mucchio di numeri in una tabella può essere difficile per gli esseri umani. Preferiamo di gran lunga vedere un grafico con una linea che lo attraversa. Fare visualizzazioni è una grande parte della comunicazione dei tuoi risultati.
Risorse per imparare
- Applied Data Science with Python su Coursera – inizia ad adattare le tue abilità Python alla scienza dei dati.
- pandas in 10 minuti – una rapida panoramica della libreria pandas e alcune delle sue funzioni più utili.
- Python Pandas Tutorial by Codebasics – serie YouTube che passa in rassegna tutte le principali funzionalità di pandas.
- NumPy Tutorial by freeCodeCamp – impara NumPy in un video YouTube.
- Matplotlib Tutorial by Sentdex – serie YouTube che insegna tutte le caratteristiche più utili di Matplotlib.
Impara l’apprendimento automatico con scikit-learn
Ora che hai le competenze per manipolare e visualizzare i dati, è il momento di trovare i modelli in essi.
scikit-learn è una libreria Python con molti utili algoritmi di apprendimento automatico integrati pronti per essere utilizzati.
Ha anche molte altre funzioni utili per capire quanto bene il vostro algoritmo di apprendimento ha imparato.
Focalizzatevi sull’apprendimento di quali tipi di problemi di apprendimento automatico ci sono, come la classificazione e la regressione, e quali tipi di algoritmi sono migliori per questi. Non pensate ancora a capire ogni algoritmo da zero, imparate prima come applicarli.
Risorse per l’apprendimento
- Machine Learning in Python con scikit-learn di Data School – playlist di YouTube che insegna tutte le principali funzionalità di scikit-learn.
- A Gentle Introduction to Exploratory Data Analysis di Daniel Bourke- metti insieme in un progetto ciò che hai imparato nei due passi precedenti. Viene fornito con codice e video per aiutarvi a partecipare alla vostra prima competizione Kaggle.
- Daniel Formosso’s exploratory data analysis notebook with scikit-learn – versione più approfondita della risorsa di cui sopra, viene fornito con un progetto end-to-end utilizzando quanto sopra.
Imparare le reti neurali di deep learning
Il deep learning e le reti neurali funzionano meglio sui dati senza molta struttura.
I dataframes hanno struttura, le immagini, i video, i file audio e il testo in linguaggio naturale hanno struttura ma non così tanta.
Tidbit: Per la maggior parte dei casi, vorrai usare un insieme di alberi decisionali (Random Forests o un algoritmo come XGBoost) per i dati strutturati e vorrai usare il deep learning o il transfer learning (prendere una rete neurale pre-addestrata e usarla sul tuo problema) per i dati non strutturati.
Potresti iniziare una nota con piccole chicche come queste per te e raccoglierle man mano che vai avanti.
Risorse per imparare
- deeplearning.ai di Andrew Ng su Coursera – apprendimento profondo insegnato da uno dei migliori nel settore.
- corsi di apprendimento profondo fast.ai di Jeremy Howard – un approccio pratico all’apprendimento profondo insegnato da uno dei migliori professionisti del settore.
Curriculum extra & libri
Durante il percorso, sarebbe ideale se metteste in pratica ciò che state imparando con piccoli progetti vostri. Questi non devono essere cose elaborate che cambiano il mondo, ma qualcosa che si può dire “ho fatto questo con X”. E poi condividi il tuo lavoro tramite Github o un post sul blog. Github è usato per mostrare il vostro codice, un post sul blog è usato per mostrare come potete comunicare il vostro lavoro. Dovreste puntare a rilasciarne uno per ogni progetto.
Il modo migliore per fare domanda per un lavoro è aver già fatto le cose che richiede. Condividere il tuo lavoro è un ottimo modo per mostrare a un potenziale futuro datore di lavoro di cosa sei capace.
Dopo aver acquisito familiarità con alcuni dei diversi framework per il machine learning e il deep learning, potresti provare a cementare la tua conoscenza costruendoli da zero. Non sempre dovrete farlo in produzione o in un ruolo di machine learning, ma sapere come funzionano le cose dall’interno vi aiuterà a costruire il vostro lavoro.
Risorse per l’apprendimento
- Come iniziare i vostri progetti di machine learning di Daniel Bourke – iniziare i vostri progetti può essere difficile, questo articolo vi dà qualche consiglio.
- fast.ai deep learning dalle fondamenta di Jeremy Howard – una volta che hai fatto il top-down, questo corso ti aiuterà a riempire le lacune dal basso verso l’alto.
- Grokking Deep Learning di Andrew Trask – questo libro ti insegnerà come costruire reti neurali da zero e perché dovresti sapere come farlo.
- Questi libri ti aiuteranno a imparare l’apprendimento automatico di Daniel Bourke – video di YouTube che passa attraverso alcuni dei migliori libri sull’apprendimento automatico.
Quanto tempo per ogni passo?
Si potrebbero trascorrere 6 mesi o più su ciascuno. Non abbiate fretta. Imparare cose nuove richiede tempo. La principale abilità che stai costruendo come scienziato dei dati o ingegnere dell’apprendimento automatico è come fare buone domande sui dati e poi usare i tuoi strumenti per cercare di trovare le risposte.
Alcuni giorni ti sembrerà di non imparare nulla. Addirittura andando all’indietro. Ignoratelo. Non confrontare i tuoi progressi giorno per giorno. Confronta i tuoi progressi anno per anno.
Dove posso imparare queste abilità?
Ho elencato alcune risorse qui sopra, sono tutte disponibili online e la maggior parte di esse sono gratuite, ma ce ne sono molte altre.
DataCamp è un ottimo posto per fare la maggior parte di queste. Altrimenti, il mio database di risorse per l’apprendimento automatico e l’intelligenza artificiale contiene un buon archivio di materiale didattico gratuito e a pagamento.
Ricorda, parte dell’essere uno scienziato dei dati o un ingegnere dell’apprendimento automatico è risolvere problemi. Considerate il vostro primo compito come scoprire di più su ciascuno dei passi qui descritti e creare il vostro curriculum personale per aiutarvi ad impararli.
Se volete sapere com’è un esempio di curriculum autogestito per l’apprendimento automatico, date un’occhiata al mio Master AI autocreato. È quello che ho usato per passare da zero codifica ad essere un ingegnere di machine learning in 9 mesi. Non è perfetto, ma è mio, ecco perché ha funzionato.
E le statistiche? E la matematica? E la probabilità?
Imparerete queste cose lungo la strada. Iniziate prima con il codice. Fai funzionare le cose. Cercare di imparare tutte le statistiche, tutta la matematica, tutta la probabilità prima di eseguire il vostro codice è come cercare di bollire l’oceano. Vi frenerà.
Nessuna delle statistiche, della matematica e della probabilità conta se il vostro codice non funziona. Fai funzionare qualcosa, e poi usa le tue capacità di ricerca per scoprire se è corretto.
E le certificazioni?
Le certificazioni sono belle, ma non le cerchi.
Non fare l’errore che ho fatto io e pensare che più certificazioni equivalgano a più competenze. Non è così.