Programmatore che cerca di entrare nel campo dell'apprendimento automatico


19

Sono uno sviluppatore di software (principalmente .NET e Python circa 5 anni di esperienza). Cosa posso fare per aiutarmi a ottenere un lavoro nel campo dell'apprendimento automatico o davvero qualsiasi cosa che mi farà iniziare in quel campo? Il diploma post-laurea è un requisito difficile?


2
Questa domanda sembra una domanda wiki della community.
Andrew

Risposte:


16

Ogni volta che ho parlato con qualcuno dell'apprendimento più dell'apprendimento automatico, mi indicano sempre gli Elementi di apprendimento statistico di Hastie e Tibshirani . Questo libro ha la fortuna di essere disponibile online gratuitamente (una copia cartacea ha un certo fascino, ma non è necessaria) ed è davvero un'ottima introduzione all'argomento. Non ho ancora letto tutto, ma ne ho letto molto e mi ha davvero aiutato a capire meglio le cose.

Un'altra risorsa su cui ho lavorato è la lezione di apprendimento automatico di Stanford , che è anche online e gratuita. Andrew Ng fa un ottimo lavoro nel guidarti attraverso le cose. Lo trovo particolarmente utile, perché il mio background nell'implementazione degli algoritmi è debole (sono un programmatore autodidatta) e ti mostra come implementare le cose in Octave (a condizione che R ne abbia già implementate molte in pacchetti). Ho anche trovato queste note sulle statistiche di reddit alcuni mesi fa, quindi ho cercato di sfogliarle e poi guardare il video e riflettere su di esso con le mie note.

Il mio background è in statistica e ho avuto una certa esposizione ai concetti di machine learning (un mio buon amico è davvero coinvolto), ma mi sono sempre sentito come se mi mancasse sul fronte dell'apprendimento automatico, quindi ho cercato di imparare tutto un po 'di più per conto mio. Per fortuna ci sono un sacco di grandi risorse là fuori.

Per quanto riguarda l'ottenimento di un posto di lavoro nel settore o le esigenze delle scuole di specializzazione, non sono in grado di consigliare (risulta che non ho mai assunto nessuno), ma ho notato che il mondo degli affari sembra amare davvero le persone che possono fare cose e sono un po 'meno preoccupati di pezzi di carta che dicono che puoi fare qualcosa.

Se fossi in te, passerei un po 'del mio tempo libero a confidare nella mia conoscenza dell'apprendimento automatico e quindi implementare le cose come vedi opportunità. Concedere la tua posizione potrebbe non darti quell'opportunità, ma se riesci ad attuare qualcosa che aggiunge valore alla tua azienda (pur mantenendo gli altri tuoi obblighi), non riesco a immaginare che qualcuno sia arrabbiato con te. La cosa bella qui è se ti ritrovi a fare un po 'di apprendimento automatico in questo lavoro, quando esci alla ricerca di un nuovo lavoro puoi parlare dell'esperienza che hai già, che aiuterebbe la gente a guardare oltre la mancanza di uno specifico grado.

Ci sono molte risorse ed è incredibilmente interessante, ti auguro buona fortuna!

Un'altra idea: potresti creare un blog sul processo di apprendimento di Machine Learning e documentare alcuni progetti su cui lavori nel tempo libero. L'ho fatto con un progetto di programmazione e ti permette di parlare di un progetto a cui stai lavorando nel tuo tempo libero (sembra buono per il datore di lavoro) e puoi anche indirizzarlo al blog (ovviamente mantenerlo professionale) sul tuo lavoro . Finora ho inviato un bel po 'di persone al mio pessimo blog di programmazione (sono stato un po' pigro nel postare ultimamente, ma l'ho tenuto aggiornato quando mi stavo candidando per i lavori) e tutti quelli con cui ho parlato sono rimasti colpiti esso.


(+1) ottimi consigli, in particolare per quanto riguarda la classe ML, conoscenza / lavoro effettivi> certificato e blog.
Steffen,

Un blog professionale sembra una buona idea!
Rishi Dua,

"il mondo degli affari sembra amare davvero le persone che possono fare le cose" - sì, e questo vale anche con pezzi di carta :) In ogni caso, fai qualcosa che puoi mostrare loro.
P.Windridge,

Gli elementi dell'apprendimento statistico, sebbene completi, sono difficili per coloro che non hanno una laurea in statistica. Vorrei invece raccomandare An Introductions to Statistical Learning with (Applications in R), degli stessi autori. È molto più semplice.
Abhishek Divekar

3

Oltre a tutti gli altri fantastici consigli che suggerisco di sporcarti le mani partecipando a competizioni online, vedi Siti per le competizioni di modellazione predittiva

Per quanto riguarda i libri ecc., Dovresti dare un'occhiata a:

Per quanto riguarda i gradi, concordo con @asjohnson sul fatto che un certificato contenga meno, almeno posso confermarlo per l'area in cui sto lavorando (Data Mining / ML sul web). Potrebbe essere diverso per aree più "accademiche" come la bioinformatica. Essere in grado di dimostrare che si è a) entusiasti eb) ha svolto un lavoro effettivo ("intelligente e fare cose") mettendo in mostra un piccolo portafoglio (ad esempio concorsi online ...) dovrebbe essere più efficace IMHO.


(+1) Per le competizioni online. Penso che se hai fatto qualcosa da Kaggle o da una delle altre competizioni là fuori e hai tenuto traccia del tuo codice e del tuo processo (sto pensando al blog) in un posto dove i potenziali datori di lavoro potrebbero verificarlo. Mostrerebbe molto iniziatico e in molti modi è più facile che pensare alla propria domanda di interesse. Basta scegliere una delle competizioni che ti interessano, quindi hai i dati proprio lì e un posto per inviare e confrontare le risposte.
asjohnson,

2

Leggi l'apprendimento automatico di Tom Mitchell. Questo è un buon libro che dovrebbe iniziare nel campo dell'apprendimento automatico.

Una cosa da tenere presente: si noti che lo stesso algoritmo a volte può funzionare meglio o peggio a seconda dello scenario e dei parametri forniti e delle possibilità casuali. Non non farsi trascinare in ottimizzare i parametri per i dati di allenamento - questa è una cattiva applicazione di machine learning.

Esistono molte tecniche adatte per applicazioni particolari (ma non tutte le applicazioni) e molte teorie che puoi leggere per capire meglio l'apprendimento automatico. Per essere bravo nell'apprendimento automatico devi assicurarti di sapere cosa stai facendo, altrimenti non puoi essere sicuro che i tuoi risultati si generalizzeranno bene.

In bocca al lupo.


0

Esistono molti buoni libri sull'apprendimento automatico, inclusi molti nella serie O'Reilly che fanno uso di Python. Lavorare attraverso uno o più di questi potrebbe essere un buon punto di partenza.

Suggerirei anche di acquisire una certa conoscenza delle statistiche - attraverso un corso o due, o lo studio autonomo, non importa. Il motivo è che ci sono alcuni libri di apprendimento automatico che si concentrano sugli algoritmi e sulla meccanica, ma ignorano la domanda fondamentale di quanto sia probabile che ciò che il tuo algoritmo ti dice sia solo dovuto al caso. E questo è essenziale da sapere.

Buona fortuna e buon divertimento, è un grande campo.


0

Bella domanda Una cosa da capire in anticipo è che l'apprendimento automatico è sia un'arte che una scienza e implica meticolosamente ripulire i dati, visualizzarli e infine costruire modelli che si adattano all'azienda in questione, mantenendoli contemporaneamente scalabili e trattabili. Le abilità sagge, più importanti di ogni altra cosa sono concentrarsi sulla probabilità e usare metodi semplici prima di saltare su quelli complessi. Preferisco la combinazione R & Perl, dal momento che conosci Python che dovrebbe essere abbastanza buono. Quando lavori su un vero lavoro, dovrai inevitabilmente estrarre i tuoi dati, quindi la conoscenza di SQL (o di qualsiasi altra no-sql supportata dalla tua azienda) sia un must.

Niente è meglio dell'esperienza nell'area ML, quindi impegnandosi in siti come StackExchange, Kaggle è anche un ottimo modo per essere esposti a questo campo. In bocca al lupo.


0

So che è un po 'una vecchia domanda, ma dato il fatto che ho visto molti programmatori non sanno ancora come iniziare.

Così, ho creato il repository "Un piano giornaliero completo per studiare per diventare un ingegnere dell'apprendimento automatico" .

Questo è il mio piano di studio di più mesi per passare dallo sviluppatore mobile (autodidatta, senza laurea specialistica) all'ingegnere dell'apprendimento automatico.

Il mio obiettivo principale era quello di trovare un approccio allo studio del machine learning che fosse principalmente pratico e astrasse la maggior parte della matematica per i principianti. Questo approccio non è convenzionale perché è l'approccio top-down e il primo risultato progettato per gli ingegneri del software.

Per favore, sentiti libero di dare qualsiasi contributo che ritieni possa migliorare.

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.