Hvis du er en udvikler, der går over til datavidenskab, er her dine bedste ressourcer

Det ser ud til, at alle ønsker at være dataforsker i disse dage - fra ph.d.-studerende til dataanalytikere til dit gamle kollegerum, der holder Linkedin med at sende dig besked til 'tag kaffe'.

Måske har du haft det samme, at du i det mindste skulle undersøge nogle datavidenskabelige positioner og se, hvad hypen handler om. Måske har du set artikler som Vicki Boykis 'Data Science er anderledes nu, der siger:

Hvad der bliver klart, er, at i det sene stadie af hype-cyklus bevæger datavidenskab sig asymptotisk tættere på teknik, og de færdigheder, som dataforskere har brug for at komme videre, er mindre visualisering og statistikbaseret og mere i tråd med traditionel datalogi ...:
Koncepter som enhedstestning og kontinuerlig integration fandt hurtigt vej ind i jargon og det værktøjssæt, der ofte bruges af datavidenskabsmand og numerisk videnskabsmand, der arbejder med ML-teknik.

eller tweets som Tim Hopper's:

Hvad der ikke er klart, er, hvordan du kan udnytte din oplevelse som softwareingeniør til en datavidenskabelig position. Nogle andre spørgsmål, du måtte have, er:

Hvad skal jeg prioritere læring?

Er der bedste praksis eller værktøjer, der er forskellige for dataforskere?

Vil mit nuværende færdigheds sæt overføres til en datavidenskabelig rolle?

Denne artikel vil give en baggrund om dataforskerens rolle, og hvorfor din baggrund muligvis passer godt til datavidenskab, plus konkrete trinvise handlinger, som du som udvikler kan tage for at forbedre informationsvidenskaben.

Vil du se de nyeste datavidenskabelige roller? Abonner på det to ugentlige ML Jobs-nyhedsbrev for nye datavidenskabelige jobåbninger i din indbakke.

Data Scientist versus Data Engineer

Først skal vi først skelne mellem to komplementære roller: Data Scientist versus Data Engineer. Mens begge disse roller håndterer maskinlæringsmodeller, varierer deres interaktion med disse modeller såvel som kravene og arten af ​​arbejdet for datavidenskabsmænd og dataingeniører meget.

Bemærk: Den Data Engineer-rolle, der er specialiseret i maskinlæring, kan også manifestere sig i jobbeskrivelser som 'Software Engineer, Machine Learning' eller 'Machine Learning Engineers'

Som en del af en arbejdsgang til maskinlæring vil dataforskeren udføre den statistiske analyse, der kræves for at bestemme, hvilken maskinlæringsmetode der skal bruges, og derefter begynde at prototype og opbygge disse modeller.

Maskinindlæringsingeniører vil ofte samarbejde med datavidenskabsmænd før og efter denne modelleringsproces: (1) opbygning af datarørledninger til indføring af data i disse modeller og (2) designe et tekniksystem, der tjener disse modeller til at sikre kontinuerlig modelundersøgelse.

Diagrammet nedenfor er en måde at se dette kontinuum af færdigheder på:

Der er et væld af online ressourcer på forskellen mellem datavidenskabsmænd og dataingeniører - sørg for at tjekke ud:

  • Panoply: Hvad er forskellen mellem en dataingeniør og en datavidenskabsmand?
  • Springboard: Machine Learning Engineer vs Data Scientist
  • O’Reilly: Dataingeniører vs. dataforskere

Som en ansvarsfraskrivelse dækker denne artikel primært Data Scientist-rollen med et blik mod Machine Learning Engineering-siden (især relevant, hvis du ser på position i et mindre firma, hvor du muligvis skal fungere som begge dele). Hvis du er interesseret i at se, hvordan du kan gå over til at være en dataingeniør eller maskinlæringsingeniør, fortæl os det i kommentarerne herunder!

Din fordel som udvikler

Til alles skade er klasser omkring maskinlæring som 'Introduktion til datavidenskab i Python' eller Andrew Ng's Coursera-kursus ikke dækning af koncepter og bedste praksis fra softwareteknik som enhedstesting, skrivning af modulær genanvendelig kode, CI / CD eller versionskontrol. Selv nogle af de mest avancerede maskinlæringshold bruger stadig ikke disse fremgangsmåder til deres maskinindlæringskode, hvilket fører til en foruroligende tendens ...

Pete Warden beskrev denne tendens som 'Machine Learning Reproducibility Crisis':

vi er stadig tilbage i de mørke tider, når det kommer til at spore ændringer og genopbygge modeller fra bunden. Det er så dårligt, at det undertiden føles som at gå tilbage i tiden til, da vi kodede uden kildekontrol.

Selvom du muligvis ikke ser disse 'softwaretekniske' færdigheder eksplicit angivet i datavidenskabs jobbeskrivelser, vil det at have et godt greb om disse færdigheder som en del af din baggrund allerede hjælpe 10 gange dit arbejde som dataforsker. Desuden kommer de i brug, når det er tid til at besvare disse programmeringsspørgsmål under din datavidenskapsinterview.

For nogle interessante perspektiver fra den anden side, se Trey Causeys stykke om 'Softwareudviklingsevner for datavidenskabsmænd' om færdigheder, som han anbefaler dataforskere skal lære at "skrive bedre kode, interagere bedre med softwareudviklere og i sidste ende spare dig tid og hovedpine”.

Forøgelse af datavidenskab

Det er dejligt, at du har et godt fundament med din softwaretekniske baggrund, men hvad er det næste skridt hen imod at blive dataforsker? Josh Wills tungen-i-kind-tweet om definitionen af ​​en datavidenskabsmand er overraskende præcis:

Det antyder et af de emner, du skal indhente, hvis du er interesseret i at forfølge en datavidenskabelig rolle eller karriere: statistik. I dette næste afsnit dækker vi store ressourcer til:

  • Opbygning af ML-specifik viden
  • Opbygning af industrividen
  • Værktøjer i ML-stakken
  • Færdigheder og kvalifikationer

Opbygning af ML-specifik viden

Det er mest effektivt at opbygge en kombination af teoribaseret viden omkring sandsynlighed og statistik samt anvendte færdigheder i ting som datavangling eller træningsmodeller på GPU'er / distribueret beregning.

En måde at ramme den viden, du får, er at referere den mod arbejdsgangen til maskinlæring.

En forenklet visning af arbejdsgangen til maskinlæring
Se denne detaljerede arbejdsgang fra Skymind AI

Her viser vi nogle af de bedste ressourcer, du kan finde omkring maskinlæring. Det ville være umuligt at have en udtømmende liste, og for at spare plads (og læsetid) nævnte vi ikke meget populære ressourcer som Andrew Ngs Coursera-kursus eller Kaggle.

Kurser:

  • Fast.ai MOOC (gratis kurser, der underviser i meget anvendte færdigheder på tværs af praktisk Deep Learning for Coders, Cutting Edge Deep Learning for Coders, Computational Linear Algebra og Introduction to Machine Learning for Coders)
  • Khan Academy
  • 3Blue1Brown og matematisk monk youtube kanal
  • Udacity-kurser (inklusive forbehandling til maskinlæring i Python)
  • Springbræt AI / ML-specifikt spor

Lærebøger: * forsøgte at finde gratis PDF'er online til de fleste af disse *

  • Probabilistisk programmering & Bayesiske metoder til hackere
  • Sandsynlighed og tilfældige processer
  • Elementer af statistisk læring
  • Lineær algebra udført til højre
  • Introduktion til lineær algebra
  • Algoritmdesign

Guides:

  • Google Developers Machine Learning Guide
  • Machine Learning Mastery Guides (for et godt udgangspunkt, se dette minikursus om Python Machine Learning)
  • Pyimagesearch (til computersyn)

Meetups: * primært NYC-baserede *

  • Papers We Love
  • NYC Kunstig intelligens og maskinlæring
  • DataCouncil.ai
  • NY kunstig intelligens
For et cool udgangspunkt skal du tjekke Will Wolfs 'Open Source Machine Learning Masters' om, hvordan du kan strukturere din tid på tværs af at studere specifikke emner og arbejde på projekter for at vise ekspertise på et fjerntliggende sted med billige omkostninger.

Opbygning af branchespecifik viden

Hvis du har et fingerpeg, som du gerne vil være en bestemt branche som sundhedsvæsen, finansielle tjenester, forbrugsvarer, detailhandel osv., Er det uvurderligt at indhente smertepunkterne og udviklingen i denne branche, når det gælder data og maskine læring.

Et pro tip = du kan scanne webstederne med vertikalspecifikke AI-startups og se, hvordan de placerer deres værdiproposition, og hvor maskinlæring kommer i spil. Dette giver dig ideer til specifikke områder af maskinlæring til at studere og emner til projekter, der viser dit arbejde.

Vi kan gå gennem et eksempel: lad os sige, at jeg er interesseret i at arbejde i sundhedsvæsenet.

  1. Gennem en hurtig google-søgning efter "maskinlæring af sundhedsydelser" fandt jeg denne liste fra Healthcareweekly.com om 'Bedste sundhedsopstart til at se efter i 2019'
Du kan også foretage hurtige søgninger på Crunchbase eller AngelList med "sundhedspleje" som et nøgleord

2. Lad os tage et af de virksomheder, der er vist på listen, BenevolentAI, som et eksempel.

3. BenevolentAIs websted hedder:

Vi er en AI-virksomhed med ende-til-ende-kapacitet fra tidlig lægemiddelopdagelse til klinisk udvikling i sent fase. BenevolentAI kombinerer computermedicinsk kraft og avanceret AI med principperne i åbne systemer og cloud computing for at transformere den måde, medicin er designet, udviklet, testet og bragt på markedet.
Vi byggede den velvillige platform for bedre at forstå sygdommen og til at designe nye og forbedre eksisterende behandlinger fra store mængder biomedicinsk information. Vi mener, at vores teknologi giver forskere mulighed for at udvikle medicin hurtigere og mere omkostningseffektivt.
Der offentliggøres et nyt forskningsdokument hvert 30. sekund, men forskere bruger i øjeblikket kun en brøkdel af den viden, der er tilgængelig for at forstå sygdomsårsagen og foreslå nye behandlinger. Vores platform indtager, 'læser' og kontekstualiserer store mængder information hentet fra skriftlige dokumenter, databaser og eksperimentelle resultater. Det er i stand til at gøre uendeligt flere deduktioner og konklusioner på tværs af disse forskellige, komplekse datakilder, identificere og skabe relationer, tendenser og mønstre, som ville være umuligt for et menneske at gøre alene.

4. Umiddelbart kan du se, at BenevolentAI bruger naturlig sprogbehandling (NLP) og sandsynligvis arbejder med nogle videngrafer, hvis de identificerer sammenhænge mellem sygdomme og behandlingsforskning

5. Hvis du tjekker BenevolentAIs karriereside, kan du se, at de ansætter til en Senior Machine Learning Researcher. Dette er en seniorrolle, så det er ikke et perfekt eksempel, men se på de færdigheder og kvalifikationer, de beder om nedenfor:

Bemærk:

  • naturlig sprogbehandling, inferens om viden graf, aktiv læring og biokemisk modellering
  • strukturerede og ustrukturerede datakilder
  • Bayesian model tilgange
  • viden om moderne værktøjer til ML

Dette skal give dig nogle trin til, hvad du skal nærme dig næste:

  • arbejde med strukturerede data
  • arbejde med ustrukturerede data
  • klassificering af forhold i viden grafer (se en god ressource her)
  • læring af bayesiske sandsynlighed og modelleringsmetoder
  • arbejde med et NLP-projekt (så tekstdata)

Vi anbefaler ikke, at du anvender de firmaer, du finder gennem din søgning, men snarere se, hvordan de beskriver deres kunders smertepunkter, deres virksomheds værdipropositioner, og hvilke slags færdigheder de viser i deres jobbeskrivelser for at vejlede din forskning.

Værktøjer i ML-stakken

I jobbeskrivelsen for BenevolentAI Senior Machine Learning Researcher beder de om "viden om moderne værktøjer til ML, såsom Tensorflow, PyTorch osv. ..."

At lære disse moderne værktøjer til ML kan virke skræmmende, da pladsen altid ændrer sig. For at opdele læringsprocessen i håndterbare stykker, skal du huske at forankre din tankegang omkring maskinens læringsarbejde ovenfra - "Hvilket værktøj kan hjælpe mig med denne del af arbejdsgangen?"

For at se, hvilke værktøjer der følger med hvert trin i denne maskinlærings-arbejdsgang, skal du tjekke Roger Huangs 'Introduktion til Machine Learning Stack', som dækker værktøjer som Docker, Comet.ml og dask-ml.

Taktisk set er Python og R de mest almindelige programmeringssprog, som data forskere bruger, og du kan støde på add-on-pakker designet til datavidenskabelige applikationer, såsom NumPy og SciPy, og matplotlib. Disse sprog tolkes snarere end kompileres, hvilket lader dataforskeren frit fokusere på problemet snarere end nuancer på sproget. Det er værd at investere tid i at lære objektorienteret programmering for at forstå implementeringen af ​​datastrukturer som klasser.

For at indhente ML-rammer som Tensorflow, Keras og PyTorch, skal du sørge for at gå til deres dokumentation og prøve at implementere deres tutorials fra ende til ende.

I slutningen af ​​dagen ønsker du at sikre dig, at du bygger ud projekter, der viser disse moderne værktøjer til dataindsamling og krangel, maskinstyring eksperimentstyring og modellering.

For lidt inspiration til dine projekter, se Edouard Harris stykke om 'Problemet med den kolde start: hvordan man opbygger din maskinlæringsportefølje'

Færdigheder og kvalifikationer

Vi forlod dette afsnit til sidst, da det samler meget af informationen fra de foregående sektioner, men er specifikt rettet mod forberedelse af datavidenskab. Der er seks hovedemner under en datavidenskabsinterview:

  1. Coding
  2. Produkt
  3. SQL
  4. A / B-test
  5. Maskinelæring
  6. Sandsynlighed (se en god definition vs. statistik her)

Du vil bemærke, at et af disse emner ikke er som de andre (Produkt). For datavidenskabspositioner er kommunikation om tekniske koncepter og resultater samt forretningsmetrik og indflydelse afgørende.

Nogle nyttige sammenlægninger af datavidenskapsintervjuespørgsmål:
https://github.com/kojino/120-Data-Science-Interview-Questions
https: //github.com/iamtodor/data-science-interview-questions-and-answers
https://hookedondata.org/red-flags-in-data-science-interviews/
https://medium.com/@XiaohanZeng/i-interviewed-at-five-top-companies-in-silicon-valley-in-five-days-and-luckily-got-five-job-offers-25178cf74e0f

Du vil bemærke, at vi inkluderede Hooked on Datas stykke om 'Red Flags in Data Science Interviews' - mens du interviewer for roller, vil du støde på virksomheder, der stadig opbygger deres datainfrastruktur eller måske ikke har en solid forståelse af, hvordan deres data science team passer ind i den større virksomheds værdi.

Disse virksomheder klatrer muligvis stadig op i dette hierarki af behov nedenfor.

Det populære AI hierarki af behov fra Monica Rogati

Til nogle forventninger omkring datalogi-interviews, vil jeg anbefale at læse Tim Hoppers stykke om 'Nogle refleksioner om at blive afvist for mange job inden for datavidenskab'

Tak for at have læst! Vi håber, at denne guide hjælper dig med at forstå, om datavidenskab er en karriere, du skal overveje, og hvordan du begynder denne rejse!

Vil du se de nyeste datavidenskabelige roller? Abonner på det to ugentlige ML Jobs-nyhedsbrev for nye datavidenskabelige jobåbninger i din indbakke: