Non esiste un modo giusto per entrare nell'apprendimento automatico. Impariamo tutti in modi leggermente diversi e abbiamo obiettivi diversi di ciò che vogliamo fare con o per l'apprendimento automatico.
Un obiettivo comune è diventare rapidamente produttivi con l'apprendimento automatico. Se questo è il tuo obiettivo, questo post mette in evidenza cinque errori comuni che i programmatori commettono sulla strada per diventare rapidamente professionisti produttivi di machine learning.
1. Il machine learning è cosi potente da sembrare Magia
L'apprendimento automatico è solo un altro insieme di tecniche che puoi utilizzare per creare soluzioni a problemi complessi.
Poiché è un campo in piena espansione, l'apprendimento automatico viene generalmente comunicato in pubblicazioni accademiche e libri di testo per studenti post-laurea. Questo gli dà l'aspetto che è elitario e impenetrabile.
È necessario un cambiamento di mentalità per essere efficaci nell'apprendimento automatico, dalla tecnologia al processo, dalla precisione all'"abbastanza buono", ma lo stesso si potrebbe dire per altri metodi complessi che i programmatori sono interessati ad adottare.
2. Non iniziare scrivendo codice
Iniziare con l'apprendimento automatico scrivendo il codice può rendere le cose difficili perché significa che stai risolvendo almeno due problemi anziché uno: come funziona una tecnica in modo da poterla implementare e come applicare la tecnica a un determinato problema.
È molto più semplice lavorare su un problema alla volta e sfruttare l'apprendimento automatico, gli ambienti statistici e le librerie di algoritmi per imparare ad applicare una tecnica a un problema. Ciò consente di controllare e mettere a punto una varietà di algoritmi in tempi relativamente brevi e di mettere a punto uno o due che sembrano promettenti piuttosto che investire grandi quantità di tempo nell'interpretazione di documenti di ricerca ambigui contenenti descrizioni di algoritmi.
L'implementazione di un algoritmo può essere trattata come un progetto separato da completare in un secondo momento, ad esempio per un esercizio di apprendimento o se il sistema prototipo deve essere messo in funzione. Impara una cosa alla volta, ti consiglio di iniziare con un framework di apprendimento automatico basato su GUI, che tu sia un programmatore o meno.
3. Fare le cose manualmente
Un processo circonda l'apprendimento automatico applicato, inclusa la definizione dei problemi, la preparazione dei dati e la presentazione dei risultati, tra le altre attività. Questi processi, insieme al test e alla messa a punto degli algoritmi, possono e devono essere automatizzati.
L'automazione è una parte importante dello sviluppo di software moderno per build, test e distribuzione. C'è un grande vantaggio nella preparazione dei dati di script, nel test e nell'ottimizzazione degli algoritmi e nella preparazione dei risultati al fine di ottenere i vantaggi del rigore e della velocità di miglioramento. Ricorda e riutilizza le lezioni apprese nello sviluppo di software professionale.
L'impossibilità di iniziare con l'automazione (come Makefiles o un sistema di build simile) è probabilmente dovuto al fatto che molti programmatori arrivano all'apprendimento automatico da libri e corsi che si concentrano meno sulla natura applicata del campo. In effetti, portare l'automazione nell'apprendimento automatico applicato è un'enorme opportunità per i programmatori .
4. Reinventare soluzioni a problemi comuni
Centinaia e migliaia di persone hanno probabilmente implementato l'algoritmo che stai implementando prima di te o hanno risolto un tipo di problema simile al problema che stai risolvendo, sfruttando le loro lezioni apprese.
Esiste una vasta gamma di conoscenze sulla risoluzione dell'apprendimento automatico applicato. Certo, gran parte di esso potrebbe essere legato a libri e pubblicazioni di ricerca, ma puoi accedervi. Fai i compiti e cerca su Google, Google Libri, Google Scholar e contatta la community di machine learning.
Se stai implementando un algoritmo:
Devi implementarlo? È possibile riutilizzare un'implementazione di un algoritmo open source esistente in una libreria o in uno strumento?
Devi implementare da zero? Puoi rivedere il codice, imparare da o trasferire un'implementazione open source esistente?
Devi interpretare la descrizione canonica dell'algoritmo? Ci sono descrizioni di algoritmi in altri libri, articoli, tesi o post di blog che puoi rivedere e da cui puoi imparare?
Se stai affrontando un problema:
Devi testare tutti gli algoritmi sul problema? Puoi sfruttare studi su questo o simili casi di problema dello stesso tipo generale che suggeriscono algoritmi e classi di algoritmi che funzionano bene?
Devi raccogliere i tuoi dati? I loro set di dati o API pubblicamente disponibili che puoi utilizzare direttamente o come proxy per il tuo problema per apprendere rapidamente quali metodi potrebbero funzionare bene?
Devi ottimizzare i parametri dell'algoritmo? Sono le euristiche che puoi utilizzare per configurare l'algoritmo presentato in articoli o studi sull'algoritmo?
Quale sarebbe la tua strategia in caso di problemi con una libreria di programmazione o un tipo specifico di struttura dati? Usa le stesse tattiche nel campo dell'apprendimento automatico. Contatta la comunità e chiedi risorse che potresti essere in grado di sfruttare per accelerare l'apprendimento e il progresso del tuo progetto. Prendi in considerazione forum e siti di domande e risposte per iniziare e contatta accademici e specialisti come passaggio successivo.
5. Non serve davvero la matematica
Non è necessaria la teoria matematica per iniziare, ma la matematica è una parte importante dell'apprendimento automatico. La ragione di ciò è che fornisce forse il modo più efficiente e inequivocabile per descrivere i problemi ei comportamenti dei sistemi.
Ignorare i trattamenti matematici degli algoritmi può portare a problemi come avere una comprensione limitata di un metodo o adottare un'interpretazione limitata di un algoritmo. Ad esempio, molti algoritmi di apprendimento automatico hanno un'ottimizzazione al centro che viene aggiornata in modo incrementale. Conoscere la natura dell'ottimizzazione da risolvere (è la funzione convessa) consente di utilizzare algoritmi di ottimizzazione efficienti che sfruttano questa conoscenza.
Interiorizzare il trattamento matematico degli algoritmi è lento e viene fornito con padronanza. Soprattutto se stai implementando algoritmi avanzati da zero, inclusi gli algoritmi di ottimizzazione interni, prenditi il tempo necessario per imparare l'algoritmo dal punto di vista matematico.
Riepilogo
In questo post hai appreso di 5 errori comuni che i programmatori commettono quando iniziano l'apprendimento automatico. Le cinque lezioni sono:
Non mettere l'apprendimento automatico su un piedistallo
Non scrivere codice di apprendimento automatico per iniziare
Non fare le cose manualmente
Non reinventare soluzioni a problemi comuni
Non ignorare la matematica
Condividi l'articolo per supportarci, oppure se pensi di conoscere un altro mito scrivilo nei commenti.
Comments