Sådan screenes færdigheder inden for maskinlæring

Udgivet: Sidst opdateret:
Skærm færdigheder inden for maskinlæring

Har du brug for at ansætte en person med færdigheder inden for maskinlæring? Er du ikke sikker på, hvad det egentlig er?

Maskinlæring er processen, hvor computere får mulighed for at udføre opgaver, som indtil for nylig udelukkende er blevet udført af mennesker.

Før funktionel maskinlæring kendte software og computersystemer kun de oplysninger, som en programmør fortalte dem. Resultatet er et softwaresystem, der ikke er i stand til at forny sig, og som skal have kommandoer for at fungere.

Maskinlæring gør det muligt for organisationer at omdanne store datasæt til statistisk viden og brugbar intelligens. Denne værdifulde viden kan integreres i de daglige forretningsprocesser og operationelle aktiviteter for at reagere på ændrede markedskrav eller forretningsforhold. Ud over at automatisere gentagelige opgaver bruger virksomheder globalt set maskinlæring til at hjælpe med at forbedre deres virksomheders drift og skalerbarhed.

Da maskiner har en langt større databehandlingskapacitet end mennesker, er det muligt for dem at organisere og scanne data langt hurtigere end nogen anden person kan. Det skaber ikke kun mere nyttig software men også mere effektiv software.

Dette er superrelevant for en ansættende leder uden en stærk teknisk baggrund. Det er deres rolle at afgøre, om en kandidat har de rette maskinlæringsfærdigheder, der er nødvendige for at få succes. Så lad os dykke lidt dybere ned i maskinlæring og de bedste måder at screene en ekspert i maskinlæring på.

Hvad er maskinlæring?

Maskinlæring er en delmængde af kunstig intelligens. Det vil sige, at al maskinlæring tæller som AI, men ikke al AI tæller som maskinlæring.

Maskinlæringsalgoritmer bruger statistik til at finde mønstre i normalt store mængder data. Data omfatter i dette tilfælde en lang række ting - tal, ord, billeder, klik, alt, hvad der kan behandles af en computer. Hvis det kan lagres digitalt, kan det grundlæggende set indlæses i en maskinlæringsalgoritme.

Maskinlæring er i bund og grund en form for "selvprogrammering". Maskinlæringsalgoritmer opbygger automatisk en matematisk model ved hjælp af prøveudtagede data - også kendt som "træningsdata" at træffe innovative beslutninger. En maskinlæringsmodel er et program, der er blevet trænet til at genkende visse typer af mønstre. Du træner en model over et sæt data og giver den en algoritme, som den kan bruge til at ræsonnere over og lære af disse data. Disse beslutninger træffes uden at skulle programmeres af mennesker, og voila, kunstig intelligens lige ved hånden.

1.1 Hvad er AI?

Kunstig intelligens er begrebet computersystemer, der udfører opgaver, som normalt kræver menneskelig intelligens, f.eks. visuel perception, talegenkendelse, beslutningstagning og oversættelse mellem sprog.

Inden for kunstig intelligens efterligner maskiner de kognitive funktioner, der er forbundet med menneskers hjerner, såsom "indlæring" og "problemløsning".

1.2. Hvad bruges maskinlæring til?

Vi bruger maskinlæring til en række forskellige moderne tjenester: anbefalingssystemer som dem på Netflix, YouTube og Spotify, søgemaskiner som Google og Baidu, sociale medier som Facebook og Twitter og stemmeassistenter som Siri og Alexa. Listen er uendelig.

Når du bruger disse tjenester, indsamler hver platform så mange data om dig som muligt. F.eks. hvilke genrer du kan lide at se, hvilke links du klikker på, og hvilke statusser du reagerer på. Disse data bruges derefter til at skabe algoritmer, der foretager beregnede slutninger om hvad du måske ønsker som det næste. Denne proces er faktisk ret grundlæggende: Find mønsteret, anvend mønsteret. Men den er allestedsnærværende i næsten al den teknologi, vi har adgang til i dag.

Andre anvendelser af maskinlæring omfatter forudsigelser (f.eks. fremtidig købsadfærd, kreditrisiko, udsving på boligmarkedet), for at opdage uregelmæssigheder (f.eks. når der begås bedrageri med bankoverførsel, eller når fabriksudstyr er tæt på at gå i stykker) eller for at generere nyt indhold (f.eks. oversætte tekst på et fremmedsprog, finde den bedste rute til et sted, guide en robot, der automatisk renser overflader).

1.3. Hvad er en maskinlæringsingeniørens funktion?

En person med færdigheder inden for maskinlæring kaldes normalt en maskinlæringsingeniør. Rollen er ret ny, selv om begrebet "maskinlæring blev først opfundet i 1959 af Arthur Samuel, en amerikansk pioner inden for computerspil og kunstig intelligens.

En maskinlæringsingeniør er primært ansvarlig for at opbygge, udvikle og vedligeholde en virksomheds maskinlæringsmodeller.

Rollen omfatter udvælgelse af den rigtige maskinlæringsmetode til virksomheden samt den foretrukne metode til evaluering af modeller. Ingeniøren er også ansvarlig for kvalitetskontrol og tilsyn med implementeringen til produktionsfasen. Efter produktionen overvåger og justerer ML-ingeniøren modellen i overensstemmelse med den ændrede markedssituation. En liste over deres ansvarsområder omfatter bl.a:

  • Kørsel af eksperimenter med maskinlæring ved hjælp af et programmeringssprog med biblioteker til maskinlæring,
  • Implementering af maskinlæringsløsninger i produktion,
  • Optimering af løsninger med henblik på ydeevne og skalerbarhed,
  • Datateknik, dvs. at sikre et godt dataflow mellem database og backend-systemer,
  • Implementering af brugerdefineret kode til maskinlæring,
  • Analyse af data.

1.4. Ligner stillinger inden for maskinlæring andre job?

En maskinlæringsingeniør er en specialiseret stilling, der ligner en datalog - men en datalog er uddannet til at udføre mere varierede opgaver.

Selv om der er overlapning, overgår dataloger med en softwareteknisk baggrund ofte til stillinger som maskinlæringsingeniører. Dataloger fokuserer på at analysere data, give forretningsindsigt og udvikle prototyper af modeller, mens maskinlæringsingeniører fokuserer på kodning og implementering af komplekse, storstilede maskinlæringsprodukter.

Færdigheder inden for maskinlæring

Hvad er vigtigt for en it-rekrutteringsmedarbejder at vide om maskinlæring?

Gennemførelsen af maskinlæring betyder i det væsentlige, at et system ikke længere er begrænset af programmørernes menneskelige vision mere. Nu er en maskine i stand til at lære sine egne metoder gennem nye og innovative processer, som programmører eller analytikere måske ikke engang har overvejet.

Dette er meget nyttigt, fordi det giver programmører mulighed for at skabe software med et specifikt mål for øje uden at skulle fokusere på hele processen for, hvordan det sker.

Det er blevet en udfordring for selv de bedste programmører at finde måder at programmere computere til at fortolke så store mængder information på. Maskinindlæring gør det muligt at skabe metodologier ud over menneskelig planlægning og forudseenhed.

2.1. Hvor ofte ændrer miljøet/udfordringerne sig?

Landskabet for maskinlæring ændrer sig konstant. Dataene bliver større og problemerne sværere, så der udvikles nye teknikker, og nye rammer vil følge efter.

2.2. Er der mange ressourcer/værktøjer/teknologier (biblioteker, rammer osv.) til rådighed for maskinlæring?

Der findes mange værktøjer til maskinlæring i Python, mens R er mindre udbredt. Nogle deep learning-rammer er tilgængelige i C++ eller Java, fordi det er hurtigere og mere hukommelseseffektivt end Python. I Python omfatter de mest populære biblioteker pandas, scikit-learn, PyTorch og TensorFlow.

2.3. Hvilke færdigheder, værktøjer og teknikker inden for maskinlæring bør en ingeniør kende til?

En succesfuld maskinlæringsingeniør skal have et godt matematisk sind. De skal også være eksperter i både programmering og statistik, hvor de bruger deres problemløsningsevner til at få et indgående kendskab til maskinlæringsmodeller. Python er det ubestridte lingua franca inden for maskinlæring.

2.4. Hvilke AI-færdigheder, værktøjer og teknikker bør en maskinlæringsingeniør være bekendt med?

God forståelse af programmeringssprog, fortrinsvis Python, R, Java og C++. Det anbefales at have en god forståelse af begreberne matricer, vektorer og matrixmultiplikation. Desuden er viden om derivater og integraler og deres anvendelser afgørende for selv at forstå simple begreber som gradientafstigning. Et solidt fundament og ekspertise i algoritmeteori er helt sikkert et must.

Erfaring med neurale netværksarkitektur er den mest præcise måde at imødegå mange problemer som oversættelse, talegenkendelse og billedklassificering, som spiller en central rolle i AI-afdelingen.

Gode kommunikations- og hurtige prototypingfærdigheder samt en bred viden om et område er afgørende for en maskinlæringsingeniør.

2.5. Hvilken type erfaring er vigtig at søge hos en maskinlæringsingeniør?

For projekter, der kun omfatter forskning, er akademisk eller videnskabelig erfaring den mest afgørende og afrundede. Men når det drejer sig om at skabe produktionsmodeller, vil tidligere erfaring med at arbejde med andre produktionsmodeller give dig den bedste indsigt.

Hvordan kan man kontrollere maskinlæringskompetencer?

Hvordan kan man kontrollere maskinlæringsfærdigheder i screeningsfasen?

De fleste rekrutteringsspecialister prioriterer test af færdigheder, når de leder efter den ideelle kandidat. I sidste ende kan det være en dyr fejl at ansætte en person, der mangler tekniske færdigheder. Men succesfulde maskinlæringsingeniører har også værdifulde egenskaber, som en færdighedstest alene ikke kan identificere. Mange af disse kan du ikke lære fra en bog.

Så hvad er de, og hvordan kan du identificere dem?

Det er også ret ironisk, at virksomheder og rekrutteringsfirmaer er i stigende grad anvender AI og maskinlæringsbaserede løsninger til at finde den rigtige medarbejder.

3.1. Hvad skal man tage hensyn til, når man screener et CV?

Ingeniører inden for maskinlæring bør være fortrolige med matematiske og statistiske begreber, herunder lineær algebra, multivariat beregning, varians, derivater, integraler og standardafvigelser osv.

De skal også kende de grundlæggende sandsynlighedsbegreber som Bayes-reglen, Gaussiske blandingsmodeller og Markov-beslutningsprocesser. Tidligere erfaring med maskinlæringsbiblioteker er et must.

Kandidaten skal have en baggrund inden for datalogi/softwareudvikling og være flydende i mindst ét programmeringssprog med tilstrækkelig erfaring med kodning, hævder Tsisana Caryn, HR-specialist fra Skrivning af opgaver. Det er vigtigt at have en dybtgående forståelse af datalogiske begreber som datastrukturer, computerarkitekturer, algoritmer, beregnelighed og kompleksitet.

Sørg for at tjekke, om kandidaten har en god forretningsforståelse og en velafrundet forståelse af forretningsmæssige grundprincipper og principper. Det vil være en stor fordel, hvis kandidaten er i stand til at opstille en kvantitativ liste over sine resultater inden for en organisation.

3.2. Hvilke glossarudtryk er vigtige at kende inden for maskinlæring (herunder rammer, biblioteker og sprogversioner)?

  • Klassisk maskinlæring - løsning af opgaver ved hjælp af modeller som lineær eller logistisk regression, beslutningstræer, tilfældige skove, boosting, supportvektormaskiner, ikke-negativ matrixfaktorisering, K-means, k-nearest neighbors.
  • Neuralt netværk - en form for maskinlæring, der er inspireret af den menneskelige hjerne. Det er et computersystem bestående af indbyrdes forbundne enheder (som neuroner), der behandler information ved at reagere på eksterne input og videresende information mellem de enkelte enheder. Processen kræver flere gennemgange af dataene for at finde forbindelser og udlede mening af udefinerede data.
  • Dybdegående læring - løsning af opgaver ved hjælp af neurale netværk (som at efterligne hjernen). Nogle typer af neurale netværk omfatter f.eks. konvolutionelle neurale netværk og recurrent neurale netværk. Dyb indlæring kan bruges til at opdage objekter, genkende tale, oversætte sprog og træffe beslutninger. AI med dyb læring er i stand til at lære uden menneskelig overvågning, idet den trækker på data, der både er ustrukturerede og umærkede.
Biblioteker til datamanipulationI Python: I Python: NumPy, pandas I R: dyplr, tidyr
Biblioteker til distribueret datamanipulationI Python: Dask i Scala, Java og Python: Dask i Scala, Java og Python: Spark
Generelle biblioteker til maskinlæringI Python: scikit-learn I Python, R, Java, Scala, C++: H2O.ai I R: caret, e1071
Biblioteker til dybdegående læringI Python: Keras, Tensorflow, PyTorch I R: Nnet I C++: Caffe

3.3. Hvilke certificeringer er tilgængelige og respekteres? Hvor nyttige er de til at bestemme maskinlæringskompetencer?

Der bliver sagt meget om, at eksamensbeviser ikke har stor betydning for rekrutteringsfolk. Tværtimod beviser certificeringen, at du kender faget på et højt niveau og viser også, at du er motiveret til at blive ved med at lære. Desuden kan ingeniører tilføje projektarbejdet til deres portefølje. Nogle af de anerkendte kurser omfatter:

  • Certificering i maskinlæring ved Stanford University (Coursera)
  • Kunstig intelligens (Northwestern | Kellogg School of Management)
  • Maskinlæring med TensorFlow på Google Cloud Platform
  • Kunstig intelligens: Business Strategies & Applications (Berkeley ExecEd)
  • Deep Learning-certificering af DeepLearning.ai - Andrew Ng (Coursera)
  • Certificering i datalogi om maskinlæring fra Harvard University (edX)
  • Maskinlæring - Data Science-certificering fra IBM (Coursera)
  • Professionelt certifikatprogram i maskinlæring og kunstig intelligens (MIT Professional Education)
  • Certificering i maskinlæring (University of Washington)

3.4. Hvilke andre linjer på et CV kan vise maskinlæringskompetencer?

Det kan også være en stor fordel at deltage i konkurrencer om maskinlæring. Platforme som Kaggle.com, topcoder.com, crowdai.org og knowledgepit.ml giver alle mulighed for at konkurrere om priser inden for området.

Det kan være nyttigt at gennemse en kandidats LinkedIn- og GitHub-konti for at vurdere kandidatens profil og for at se deres færdigheder i open source-projekter.

Teknisk screening af færdigheder inden for maskinlæring under et teknisk interview pr. telefon/video

Ansøgere, der søger job inden for maskinlæring, kan forvente en række forskellige typer af spørgsmål under et interview, siger Colin Shaw, direktør for maskinlæring hos RevUnit.

"Gode maskinlæringsingeniører har en blanding af en række forskellige færdigheder og ved også, hvordan de kan omsætte denne viden til kode, der kan bruges i produktionen. De generelle interesseområder, som vi leder efter, omfatter matematik og statistik, maskinlæring og datalogi, deep learning, generel viden og problemløsning samt datalogi og programmering."

4.1. Spørgsmål, som du bør stille om en MLE's erfaring. Hvorfor skal du stille hvert af disse spørgsmål?

  1. Kan du beskrive den type maskinlæringsproblemer, som du har løst?
    Dette er et indledende spørgsmål, men det viser også, hvor stor viden kandidaten har på området. Da der er en lang række forskellige problemer, er det bedst at finde folk, der har erfaring med de spørgsmål, som man søger.
  2. Hvilke maskinlæringsmodeller har du tidligere brugt?
    Formålet er at finde ud af, hvor stor viden ingeniøren har om specifikke ML-teknikker. Der er en væsentlig forskel mellem klassiske ML-algoritmer og deep learning-algoritmer, så kendskab til den ene indebærer ikke kendskab til den anden.
  3. Hvad er det mest interessante projekt, du nogensinde har arbejdet på?
    Dette er et godt spørgsmål, fordi det giver kandidaterne en chance for at tale om noget, de brænder for, og vise deres viden om noget, som de ved meget godt. Desuden hjælper det nervøse kandidater med at føle sig mere trygge og fremhæver deres bedste kvaliteter.
  4. Hvor længe varede projektet? Har du taget det i produktion og/eller videreudviklet modellen?
    Designet til at kontrollere, om ingeniøren har tidligere erfaring med produktion af maskinlæringsmodeller, som har en specifik delmængde af udfordringer, som ellers ville være ukendte.

4.2. Spørgsmål, som du bør stille om en MLE's viden og holdninger. Hvorfor skal du stille hvert af disse spørgsmål?

  • Hvordan kan du kontrollere, at en model fungerer korrekt?
    Den ideelle metode er at opdele datasættet i dele: træningssæt, valideringssæt og testsæt. Træningssættet er det eneste sæt, som modellen har adgang til, og det er grundlaget for træningsprocessen. Modellens parametre fastsættes ved hjælp af valideringssættet, og modellens effektivitet testes på testsæt.
  • Hvad er forskellene mellem klassiske ML-modeller og deep learning-modeller?
    Deep learning-modeller anvender altid neurale netværk og kræver ikke så meget feature engineering som klassiske modeller. De kræver dog normalt større træningssæt for at lære mønstre end klassiske modeller.
  • Hvilket ML-bibliotek/biblioteker ville du bruge til et datasæt bestående af billeder?
    I øjeblikket er den bedste metode til billeddata at bruge enten OpenCV - et bibliotek, der giver mulighed for omfattende billedmanipulation. Samt enhver form for deep learning-biblioteker som f.eks: Keras, Tensorflow, pyTorch, Caffe.

4.3. Adfærdsmæssig spørgsmål, som du bør stille en MLE. Hvorfor skal du stille hvert af disse spørgsmål?

  • Hvilke slags problemer vil du gerne løse i fremtiden? Hvilke typer ML-modeller vil du gerne bruge?Et spørgsmål for at undersøge kandidatens præference for modeller/problemer eller for at se, om han/hun har et speciale, og hvilket område han/hun er bedst til. Dette spørgsmål kan også hjælpe med at konkludere, hvordan en kandidat planlægger at udvikle sig inden for maskinlæringsområdet.
  • Hvor finder du oplysninger om nye teknikker til maskinlæring?
    Dette spørgsmål stilles for at finde ud af, hvor involveret eller uinvolveret en kandidat er i teknologisamfundet og i at lære nye færdigheder på et område i konstant udvikling. Alle disse kilder er værdige: konferencebidrag, workshopbidrag, MOOC'er, Facebook- eller mailgrupper med et tema om maskinlæring eller endda læring fra en mentor.
  • Hvad anser du for at være din største succes og største fiasko inden for maskinlæring?
    Et ret generisk spørgsmål, men det viser kandidatens evne til selvrefleksion. Dette er nødvendigt i læringsprocessen, som er en vigtig del af at være en god maskinlæringsingeniør.
Test af kodning af maskinlæring

5. Teknisk screening af en MLE's færdigheder ved hjælp af en online kodningstest

At ansætte en god maskinlæringsingeniør er fortsat en udfordrende opgave for rekrutteringsfolk - ikke kun på grund af knapheden på ML-talenter, men også på grund af manglende relevant erfaring blandt rekrutteringsspecialisterne. Maskinlæring er stadig et nyt og uklart område for de fleste rekrutteringsfolk. Vi vil vise dig, hvordan du bedst screener efter en maskinlæringsingeniør!

5.1. Hvilken online-test for maskinlæringsfærdigheder skal du vælge?

Når du leder efter den rigtige test af færdigheder inden for maskinlæring skal du sikre dig, at den opfylder følgende kriterier:

  • Prøven afspejler kvaliteten af det professionelle arbejde, der udføres
  • Varigheden er ikke for lang, højst en til to timer.
  • Testen kan sendes automatisk og er ligetil i sin natur
  • Sværhedsgraden passer til ansøgerens evner
  • Testen går ud over at kontrollere, om løsningen fungerer - den kontrollerer kodens kvalitet og hvor godt den fungerer i edge cases
  • Det er så tæt på det naturlige programmeringsmiljø som muligt og giver kandidaten adgang til relevante ressourcer
  • Det giver kandidaten mulighed for at bruge alle de biblioteker, frameworks og andre værktøjer, som de regelmæssigt støder på.

5.2. DevSkiller færdige online test af færdigheder inden for maskinlæring, klar til brug

DevSkiller-kodningstests bruger vores RealLifeTesting™-metode til at afspejle det faktiske kodningsmiljø, som din kandidat arbejder i. I stedet for at bruge obskure akademiske algoritmer kræver DevSkiller-testene, at kandidaterne skal bygge applikationer eller funktioner. De bedømmes helt automatisk og kan tages hvor som helst i verden. Samtidig har kandidaten adgang til alle de ressourcer, som de normalt ville bruge, herunder biblioteker, frameworks, StackOverflow og endda Google.

Virksomheder bruger DevSkiller til at teste kandidater ved hjælp af deres egen kodebase fra et hvilket som helst sted i verden. For at gøre det nemt tilbyder DevSkiller også en række færdighedstests inden for datalogi, som f.eks. de her, der er lavet på forhånd:

Python
MIDDLE
Testede færdigheder
Varighed
104 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om Keras, Maskinlæring, Python

Programmeringsopgave - Niveau: Medium

Python | NLP, Keras | Sentimentanalyse af kundeanmeldelser - Udfør en sentimentanalyse og tagging af kundeanmeldelser af film og flyselskaber ved hjælp af en neuronal netværksmodel med flere output.

Python
MIDDLE
Testede færdigheder
Varighed
72 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om Maskinlæring, Forstærkningsindlæring

Programmeringsopgave - Niveau: Medium

Python | PyTorch | Reinforcement Learning | Deep Q-Network - Færdiggør implementeringen af DQN-algoritmen.

Python
JUNIOR
Testede færdigheder
Varighed
63 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om Maskinlæring, PyTorch

Programmeringsopgave - Niveau:

Python | PyTorch, Computer Vision | Model Builder - Færdiggør implementeringen af en modeltræningspipeline.

Python
MIDDLE
Testede færdigheder
Varighed
70 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om Maskinlæring, Python

Programmeringsopgave - Niveau: Medium

Python | DNA Analyzer | Opret og rens DNA-strenge - Implementer 2 metoder i Python, der opretter og renser DNA-strenge.

Python
JUNIOR
Testede færdigheder
Varighed
49 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om Maskinlæring

Programmeringsopgave - Niveau:

Python | DNA Analyzer - Implementer en metode i Python, der genererer en statistisk DNA-rapport.

Python
MIDDLE
Testede færdigheder
Varighed
80 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om Maskinlæring, Python

Programmeringsopgave - Niveau: Medium

Python | DNA Analyzer | Opret og rens DNA-strenge - Implementer 2 metoder i Python, der opretter og renser DNA-strenge.

Python
MIDDLE
Testede færdigheder
Varighed
80 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om Maskinlæring, Python

Programmeringsopgave - Niveau: Medium

Python Data Extraction, Processing - Færdiggør og opdaterer koden til programmet, der udtrækker og behandler PDF-filer og konverterer dem til et bestemt format til visning/output.

Android
MIDDLE
Testede færdigheder
Varighed
102 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om Maskinlæring, Android

Programmeringsopgave - Niveau: Medium

Android | Login på sociale netværk - Implementer manglende sektioner af LoginActivity og MainActivity, LoginManager og CredentialsStorage.

Del indlæg

Få mere at vide om ansættelse af teknologiske medarbejdere

Tilmeld dig vores Learning Hub for at få nyttig viden direkte i din indbakke.

Kontroller og udvikl kodningsevner uden problemer.

Se DevSkiller-produkterne i aktion.

Sikkerhedscertificeringer og overholdelse. Vi sørger for, at dine data er sikre og beskyttede.

DevSkiller-logo TalentBoost-logo TalentScore-logo