Hur du granskar färdigheter i maskininlärning

Publicerad: Senast uppdaterad:
Kunskaper om maskininlärning på skärmen

Behöver du anställa någon med kunskaper i maskininlärning? Är du inte säker på vad det egentligen är?

Maskininlärning är en process som gör det möjligt för datorer att utföra uppgifter som fram till helt nyligen uteslutande har utförts av människor.

Före den funktionella maskininlärningen kände programvaror och datorsystem endast till den information som programmeraren berättade för dem. Resultatet är ett programvarusystem som inte kan förnya sig och som måste få kommandon för att fungera.

Maskininlärning gör det möjligt för organisationer att omvandla stora datamängder till statistisk kunskap och användbar intelligens. Denna värdefulla kunskap kan integreras i vardagliga affärsprocesser och operativa aktiviteter för att reagera på förändrade marknadskrav eller affärsvillkor. Förutom att automatisera upprepningsbara uppgifter använder företag globalt maskininlärning för att hjälpa till att förbättra verksamhetens drift och skalbarhet.

Eftersom maskiner har en mycket större möjligheter till databehandling än människorDet är möjligt för dem att organisera och skanna data mycket snabbare än vad någon människa kan göra. Det skapar inte bara mer användbar programvara men också effektivare programvara..

Detta är mycket relevant för en anställningsansvarig utan en stark teknisk bakgrund. Det är deras roll att avgöra om en kandidat har de rätta färdigheterna för maskininlärning som krävs för att lyckas. Så låt oss fördjupa oss lite djupare i maskininlärning och de bästa sätten att screena en expert på maskininlärning.

Vad är maskininlärning?

Maskininlärning är en delmängd av artificiell intelligens. Det vill säga, all maskininlärning räknas som AI, men inte all AI räknas som maskininlärning.

Algoritmer för maskininlärning använder statistik för att hitta mönster i vanligtvis stora mängder data. Data omfattar i det här fallet en mängd olika saker - siffror, ord, bilder, klick, allt som kan bearbetas av en dator. I princip: Om det kan lagras digitalt kan det matas in i en algoritm för maskininlärning.

Maskininlärning är i huvudsak en form av "självprogrammering". Algoritmer för maskininlärning bygger automatiskt upp en matematisk modell med hjälp av provdata. även känd som "utbildningsdata" att fatta innovativa beslut på ett innovativt sätt. En modell för maskininlärning är ett program som har tränats för att känna igen vissa typer av mönster. Du tränar en modell på en uppsättning data och ger den en algoritm som den kan använda för att resonera om och lära sig av dessa data. Dessa beslut fattas utan att man behöver programmera dem, och voila, artificiell intelligens inom räckhåll.

1.1 Vad är AI?

Artificiell intelligens är begreppet datorsystem som utför uppgifter som normalt kräver mänsklig intelligens, t.ex. visuell perception, taligenkänning, beslutsfattande och översättning mellan språk.

Inom artificiell intelligens efterliknar maskiner kognitiva funktioner som förknippas med människans hjärna, t.ex. "inlärning" och "problemlösning".

1.2. Vad används maskininlärning för?

Vi använder kraften i maskininlärning för en mängd olika moderna tjänster: Rekommendationssystem som de som finns på Netflix, YouTube och Spotify, sökmotorer som Google och Baidu, flöden för sociala medier som Facebook och Twitter samt röstassistenter som Siri och Alexa. Listan är oändlig.

När du använder dessa tjänster samlar varje plattform in så mycket data om dig som möjligt. Till exempel vilka genrer du gillar att titta på, vilka länkar du klickar på och vilka statusar du reagerar på. Dessa uppgifter används sedan för att skapa algoritmer som gör beräknade slutsatser om följande vad du kanske vill ha härnäst. Processen är egentligen ganska enkel: hitta mönstret, tillämpa mönstret. Den är dock allestädes närvarande i nästan all teknik som vi har tillgång till i dag.

Andra användningsområden för maskininlärning är att göra förutsägelser (t.ex. framtida användares köpbeteende, kreditrisker, fluktuationer på bostadsmarknaden), att upptäcka avvikelser (t.ex. när ett bankbedrägeri begås eller när fabriksutrustning är nära att gå sönder) eller att generera nytt innehåll (t.ex. översätta text på ett främmande språk, hitta den bästa rutten till en plats, vägleda en robot som automatiskt rengör ytor).

1.3. Vilken är funktionen för en ingenjör inom maskininlärning?

En person med kunskaper i maskininlärning brukar kallas maskininlärningsingenjör. Rollen är ganska ny, även om begreppet "maskininlärning myntades första gången 1959 av Arthur Samuel, en amerikansk pionjär inom datorspel och artificiell intelligens.

En ingenjör inom maskininlärning är främst ansvarig för att bygga, utveckla och underhålla ett företags maskininlärningsmodeller.

Rollen omfattar valet av rätt maskininlärningsmetod för företaget samt vilken metod för modellutvärdering som föredras. Ingenjören är också ansvarig för kvalitetskontroll och övervakar införandet i produktionsskedet. Efter produktionen övervakar och justerar ML-ingenjören modellen i enlighet med den förändrade marknadssituationen. En lista över deras ansvarsområden omfattar bland annat följande:

  • Kör experiment med maskininlärning med hjälp av ett programmeringsspråk med bibliotek för maskininlärning,
  • Implementering av lösningar för maskininlärning i produktion,
  • Optimering av lösningar för prestanda och skalbarhet,
  • Datateknik, dvs. att säkerställa ett bra dataflöde mellan databas och backend-system,
  • Implementera anpassad kod för maskininlärning,
  • Analys av data.

1.4. Liknar arbeten inom maskininlärning andra arbeten?

En maskininlärningsingenjör är en specialiserad position, som liknar en datavetare - men en datavetare är utbildad för att utföra mer varierande uppgifter.

Även om det finns en överlappning, övergår datavetare med mjukvaruingenjörsbakgrund ofta till roller som ingenjörer inom maskininlärning. Datavetare fokuserar på att analysera data, ge affärsinsikter och ta fram prototyper av modeller, medan maskininlärningsingenjörer fokuserar på att koda och distribuera komplexa, storskaliga maskininlärningsprodukter.

Kunskaper om maskininlärning

Vad är viktigt för en IT-rekryterare att veta om maskininlärning?

Genomförandet av maskininlärning innebär i huvudsak att ett system inte längre begränsas av programmerarnas mänskliga vision längre. Nu kan en maskin lära sig sina egna metoder genom nya och innovativa processer som programmerare eller analytiker kanske inte ens har tänkt på.

Detta är mycket användbart eftersom det gör det möjligt för programmerare att skapa programvara med ett specifikt mål i åtanke, utan att behöva fokusera på hela processen för hur den gör det.

Att hitta sätt att programmera datorer för att tolka så stora mängder information har blivit en utmaning även för de bästa programmerarna. Maskininlärning gör det möjligt att skapa metoder bortom mänsklig planering och förutseende.

2.1. Hur ofta förändras miljön/utmaningarna?

Landskapet för maskininlärning förändras ständigt. Data blir alltid större och problemen alltid svårare, så nya tekniker utvecklas och nya ramar kommer att följa.

2.2. Finns det många resurser/verktyg/tekniker (bibliotek, ramverk osv.) för maskininlärning?

Många verktyg för maskininlärning finns i Python, medan R är mindre vanligt. Vissa ramverk för djupinlärning finns i C++ eller Java, eftersom det är snabbare och mer minneseffektivt än Python. I Python omfattar de mest populära biblioteken pandas, scikit-learn, PyTorch och TensorFlow.

2.3. Vilka färdigheter, verktyg och tekniker för maskininlärning bör en ingenjör känna till?

En framgångsrik maskininlärningsingenjör bör ha ett stort matematiskt sinne. De måste också vara experter på både programmering och statistik där de använder sin problemlösningsförmåga för att få en djup kunskap om modeller för maskininlärning. Python är det obestridda lingua franca för maskininlärning.

2.4. Vilka AI-färdigheter, verktyg och tekniker bör en ingenjör inom maskininlärning känna till?

God förståelse för programmeringsspråk, företrädesvis Python, R, Java och C++. Det rekommenderas att du har en god förståelse för begreppen matriser, vektorer och matrismultiplikation. Kunskaper om derivat och integraler och deras tillämpningar är dessutom nödvändiga för att även förstå enkla begrepp som gradientavsättning. En solid grund och expertis inom algoritmteori är säkert ett måste.

Erfarenhet av neurala nätverksarkitektur är det mest exakta sättet att lösa många problem, t.ex. översättning, taligenkänning och bildklassificering, som spelar en central roll på AI-avdelningen.

Goda färdigheter i kommunikation och snabb prototypframställning samt en bred kunskap om området är viktiga egenskaper för en ingenjör inom maskininlärning.

2.5. Vilken typ av erfarenhet är viktig att söka hos en ingenjör inom maskininlärning?

För projekt som endast avser forskning är akademisk eller vetenskaplig erfarenhet den mest avgörande och väl avrundade. När det gäller att skapa produktionsmodeller är det dock tidigare erfarenhet av att arbeta med andra produktionsmodeller som ger dig den bästa insikten.

Hur verifierar man färdigheter i maskininlärning?

Hur verifierar man färdigheter i maskininlärning i screeningfasen?

De flesta rekryterare prioriterar testning av färdigheter när de letar efter den perfekta kandidaten. I slutändan kan det vara ett dyrt misstag att anställa någon som saknar tekniska färdigheter. Framgångsrika maskininlärningsingenjörer har dock också värdefulla egenskaper som ett färdighetstest inte ensamt kan identifiera. Många av dessa kan du inte lära dig från en bok.

Vad är de och hur identifierar man dem?

Det är också ironiskt att företag och rekryterare är alltmer använder sig av artificiell intelligens och maskininlärningsbaserade lösningar för att hitta rätt person.

3.1. Vad ska man ta hänsyn till när man granskar ett CV?

Ingenjörer inom maskininlärning bör vara väl förtrogna med matematiska och statistiska begrepp som linjär algebra, multivariat kalkyl, varians, derivat, integraler och standardavvikelser osv.

De måste också känna till grundläggande sannolikhetsbegrepp som Bayes-regeln, Gaussiska blandningsmodeller och Markovs beslutsprocesser. Tidigare erfarenhet av bibliotek för maskininlärning är ett måste.

Kandidaten bör ha en bakgrund inom datavetenskap/mjukvaruteknik och behärska minst ett programmeringsspråk flytande med tillräcklig erfarenhet av kodning hävdar Tsisana Caryn, HR-specialist från Tjänster för skrivande av uppdrag. Det är viktigt att ha en djupgående förståelse för datavetenskapliga begrepp som datastrukturer, datorarkitektur, algoritmer, beräkningsbarhet och komplexitet.

Se till att kontrollera om kandidaten har en god affärsmässighet och en väl avvägd förståelse för affärsmässiga grunder och principer. Det är en stor fördel om kandidaten kan redogöra kvantitativt för sina prestationer inom en organisation.

3.2. Vilka ordlistatermer är viktiga att känna till inom maskininlärning (inklusive ramverk, bibliotek och språkversioner)?

  • Klassisk maskininlärning - lösa uppgifter med hjälp av modeller som linjär eller logistisk regression, beslutsträd, slumpmässiga skogar, boosting, stödvektormaskiner, faktorisering av icke-negativa matriser, K-means, k-nearest neighbors.
  • Neurala nätverk - en typ av maskininlärning som är inspirerad av hur den mänskliga hjärnan fungerar. Det är ett datorsystem som består av sammankopplade enheter (som neuroner) som bearbetar information genom att reagera på externa signaler och vidarebefordra information mellan varje enhet. Processen kräver flera genomgångar av data för att hitta kopplingar och härleda mening från odefinierade data.
  • Djupinlärning - lösa uppgifter med hjälp av neurala nätverk (som att efterlikna hjärnan). Några typer av neurala nätverk är konvolutionella neurala nätverk och återkommande neurala nätverk. Djupinlärning används för att upptäcka objekt, känna igen tal, översätta språk och fatta beslut. Djupinlärande AI kan lära sig utan mänsklig övervakning och hämtar data som är både ostrukturerade och omärkta.
Bibliotek för datamanipuleringI Python: I R: dyplr, tidyr
Bibliotek för distribuerad databehandlingI Python: Dask i Scala, Java och Python: Spark
Allmänna bibliotek för maskininlärningI Python: scikit-learn I Python, R, Java, Scala, C++: H2O.ai I R: caret, e1071
Bibliotek för djupinlärningI Python: Keras, Tensorflow, PyTorch I R: Nnet I C++: Caffe

3.3. Vilka certifieringar finns tillgängliga och vilka respekteras? Hur användbara är de när det gäller att fastställa färdigheter i maskininlärning?

Det sägs mycket om att intyg inte har någon större betydelse för rekryterare. Tvärtom bevisar certifieringen att du kan ämnet på en hög nivå och visar också att du är motiverad att fortsätta att lära dig. Dessutom kan ingenjörer lägga till projektarbetet i sin portfölj. Några respekterade kurser är bl.a:

  • Certifiering av maskininlärning från Stanford University (Coursera)
  • Artificiell intelligens (Northwestern | Kellogg School of Management)
  • Maskininlärning med TensorFlow på Google Cloud Platform
  • Artificiell intelligens: Affärsstrategier och tillämpningar (Berkeley ExecEd)
  • Deep Learning-certifiering av DeepLearning.ai - Andrew Ng (Coursera)
  • Certifiering i maskininlärning och datavetenskap från Harvard University (edX)
  • Maskininlärning - certifiering i datavetenskap från IBM (Coursera)
  • Professionellt certifikatprogram i maskininlärning och artificiell intelligens (MIT Professional Education)
  • Certifiering av maskininlärning (University of Washington)

3.4. Vilka andra rader på ett CV kan visa på färdigheter i maskininlärning?

Att delta i tävlingar om maskininlärning kan också vara en stor fördel. Plattformar som Kaggle.com, topcoder.com, crowdai.org och knowledgepit.ml ger alla möjlighet att tävla om priser inom området.

Att bläddra i en kandidats LinkedIn- och GitHub-konton kan vara användbart för att bedöma kandidatens kontur och för att se hur skicklig han eller hon är i projekt med öppen källkod.

Teknisk screening av färdigheter inom maskininlärning under en teknisk intervju per telefon/video.

De som söker jobb inom maskininlärning kan förvänta sig följande ett antal olika typer frågor under en intervju, säger Colin Shaw, chef för maskininlärning på RevUnit.

"Bra maskininlärningsingenjörer har en blandning av olika färdigheter och vet också hur man omvandlar denna kunskap till kod som kan tas i produktion. De allmänna intresseområden som vi letar efter är bland annat matematik och statistik, maskininlärning och datavetenskap, djupinlärning, allmän kunskap och problemlösning samt datavetenskap och programmering."

4.1. Frågor som du bör ställa om en MLE:s erfarenhet. Varför ska du ställa var och en av dessa frågor?

  1. Kan du beskriva vilken typ av maskininlärningsproblem du har löst?
    Detta är en uppvärmningsfråga, en introduktionsfråga, men den visar också hur omfattande kandidatens kunskaper på området är. Eftersom det finns en mängd olika problem är det bäst att hitta personer som har erfarenhet av de frågor som du rekryterar till.
  2. Vilken typ av modeller för maskininlärning har du använt tidigare?
    Syftar till att ta reda på omfattningen av ingenjörens kunskaper om specifika ML-tekniker. Det finns en betydande skillnad mellan klassiska ML-algoritmer och algoritmer för djupinlärning, så kunskap om den ena innebär inte kunskap om den andra.
  3. Vilket är det mest intressanta projekt du någonsin har arbetat med?
    Detta är en bra fråga eftersom den ger kandidaterna en chans att tala om något de brinner för och visa upp sina kunskaper om något som de känner till mycket väl. Dessutom hjälper det nervösa kandidater att känna sig mer bekväma och visar upp deras bästa egenskaper.
  4. Hur lång tid tog projektet? Har du tagit det i produktion och/eller vidareutvecklat modellen?
    Syftet är att kontrollera om ingenjören har tidigare erfarenhet av produktion av modeller för maskininlärning, vilket innebär en särskild delmängd av utmaningar som annars skulle vara okända.

4.2. Frågor som du bör ställa om en MLE:s Kunskaper och åsikter.. Varför ska du ställa var och en av dessa frågor?

  • Hur kan du kontrollera att en modell fungerar som den ska?
    Den idealiska metoden är att dela upp datasetet i delar: träningsuppsättning, valideringsuppsättning och testuppsättning. Träningsuppsättningen är den enda som är tillgänglig för modellen och utgör grunden för träningsprocessen. Modellens parametrar fastställs med hjälp av valideringsuppsättningen och modellens effektivitet testas på testuppsättningen.
  • Vilka är skillnaderna mellan klassiska ML-modeller och modeller för djupinlärning?
    Modeller för djupinlärning använder alltid neurala nätverk och kräver inte lika mycket funktionsteknik som klassiska modeller. De kräver dock vanligtvis större träningsuppsättningar för att lära sig mönster än klassiska modeller.
  • Vilket ML-bibliotek/vilka ML-bibliotek skulle du använda för ett dataset som består av bilder?
    För närvarande är den bästa metoden för bilddata att använda antingen OpenCV - ett bibliotek som möjliggör omfattande bildhantering. Samt alla typer av bibliotek för djupinlärning som t.ex: Keras, Tensorflow, pyTorch, Caffe.

4.3. Beteende frågor som du bör ställa till en MLE. Varför ska du ställa var och en av dessa frågor?

  • Vilken typ av problem vill du lösa i framtiden? Vilka typer av ML-modeller skulle du vilja använda?En fråga för att kontrollera kandidatens preferenser för modeller/problem, eller för att se om de har en specialisering och vilket område de kan prestera bäst. Den här frågan kan också hjälpa till att dra slutsatser om hur en kandidat planerar att utvecklas inom området maskininlärning.
  • Var hittar du information om nya tekniker för maskininlärning?
    Den här frågan ställs för att ta reda på hur engagerad eller oengagerad en kandidat är i teknikvärlden och hur intresserad han eller hon är av att lära sig nya färdigheter inom ett område som ständigt utvecklas. Alla dessa källor är lämpliga: konferensbidrag, workshopbidrag, MOOCs, Facebook- eller mailgrupper med tema maskininlärning, eller till och med lärande från en mentor.
  • Vad anser du vara din största framgång och ditt största misslyckande inom maskininlärning?
    Det är en ganska allmän fråga, men den visar på kandidatens förmåga till självreflektion. Detta är nödvändigt i inlärningsprocessen, som är en viktig del av att vara en bra maskininlärningsingenjör.
Kodningstester för maskininlärning

5. Teknisk screening av en MLE:s färdigheter med hjälp av ett kodningstest online.

Att anställa en bra maskininlärningsingenjör är fortfarande en utmaning för rekryterare - inte bara på grund av bristen på ML-talanger utan också på grund av brist på relevant erfarenhet bland rekryteringsspecialister. Maskininlärning är fortfarande ett nytt och obskyrt område för de flesta rekryterare. Vi ska visa dig hur du bäst screenar för att hitta en maskininlärningsingenjör!

5.1. Vilket onlinetest för färdigheter i maskininlärning ska du välja?

När du letar efter rätt Test av färdigheter i maskininlärning bör du se till att den uppfyller följande kriterier:

  • Testet återspeglar kvaliteten på det yrkesmässiga arbete som utförs.
  • Det är inte alltför lång tid, högst en till två timmar.
  • Testet kan skickas automatiskt och är enkelt till sin natur.
  • Svårighetsnivån motsvarar kandidatens förmåga.
  • Testet går längre än att kontrollera om lösningen fungerar - det kontrollerar kodens kvalitet och hur väl den fungerar i randfall.
  • Den ligger så nära den naturliga programmeringsmiljön som möjligt och ger kandidaten tillgång till relevanta resurser.
  • Det ger kandidaten möjlighet att använda alla bibliotek, ramverk och andra verktyg som de regelbundet stöter på.

5.2. DevSkiller färdiga online-tester för maskininlärning

DevSkillers kodningstester använder vår RealLifeTesting™-metodik för att spegla den faktiska kodningsmiljön som din kandidat arbetar i. I stället för att använda obskyra akademiska algoritmer kräver DevSkiller-testerna att kandidaterna bygger applikationer eller funktioner. De betygsätts helt automatiskt och kan genomföras var som helst i världen. Samtidigt har kandidaten tillgång till alla resurser som de normalt skulle använda, inklusive bibliotek, ramverk, StackOverflow och till och med Google.

Företag använder DevSkiller för att testa kandidater med hjälp av sin egen kodbas var som helst i världen. För att göra det enkelt erbjuder DevSkiller också ett antal färdighetstester för datavetenskap som de här:

Python
MIDDLE
Testade färdigheter
Varaktighet
104 minuter max.
Utvärdering
Automatisk
Översikt över testet

Frågor om valmöjligheter

bedömning av kunskaper om Keras, Maskininlärning, Python

Programmeringsuppgift - Nivå:

Python | NLP, Keras | Sentimentanalys av kundrecensioner - Utför en sentimentanalys och taggning av kundrecensioner av filmer och flygbolag med hjälp av en neuronal nätverksmodell med flera utgångar.

Python
MIDDLE
Testade färdigheter
Varaktighet
72 minuter max.
Utvärdering
Automatisk
Översikt över testet

Frågor om valmöjligheter

bedömning av kunskaper om Maskininlärning, Förstärkningsinlärning

Programmeringsuppgift - Nivå:

Python | PyTorch | Reinforcement Learning | Deep Q-Network - Slutför implementeringen av DQN-algoritmen.

Python
JUNIOR
Testade färdigheter
Varaktighet
63 minuter max.
Utvärdering
Automatisk
Översikt över testet

Frågor om valmöjligheter

bedömning av kunskaper om Maskininlärning, PyTorch

Programmeringsuppgift - Nivå:

Python | PyTorch, Computer Vision | Model Builder - Slutför implementeringen av en modellträningsledning.

Python
MIDDLE
Testade färdigheter
Varaktighet
70 minuter max.
Utvärdering
Automatisk
Översikt över testet

Frågor om valmöjligheter

bedömning av kunskaper om Maskininlärning, Python

Programmeringsuppgift - Nivå:

Python | DNA Analyzer | Skapa och rengöra DNA-strängar - Implementera två metoder i Python som skapar och rengör DNA-strängar.

Python
JUNIOR
Testade färdigheter
Varaktighet
49 minuter max.
Utvärdering
Automatisk
Översikt över testet

Frågor om valmöjligheter

bedömning av kunskaper om Maskininlärning

Programmeringsuppgift - Nivå:

Python | DNA Analyzer - Implementera en metod i Python som genererar en statistisk DNA-rapport.

Python
MIDDLE
Testade färdigheter
Varaktighet
80 minuter max.
Utvärdering
Automatisk
Översikt över testet

Frågor om valmöjligheter

bedömning av kunskaper om Maskininlärning, Python

Programmeringsuppgift - Nivå:

Python | DNA Analyzer | Skapa och rengöra DNA-strängar - Implementera två metoder i Python som skapar och rengör DNA-strängar.

Python
MIDDLE
Testade färdigheter
Varaktighet
80 minuter max.
Utvärdering
Automatisk
Översikt över testet

Frågor om valmöjligheter

bedömning av kunskaper om Maskininlärning, Python

Programmeringsuppgift - Nivå:

Python Data Extraction, Processing - Komplettera och uppdatera koden för programmet som extraherar bearbetar PDF-filer och konverterar dem till ett specifikt format för visning/utgång.

Android
MIDDLE
Testade färdigheter
Varaktighet
102 minuter max.
Utvärdering
Automatisk
Översikt över testet

Frågor om valmöjligheter

bedömning av kunskaper om Maskininlärning, Android

Programmeringsuppgift - Nivå:

Android | Logga in i sociala nätverk - Implementera saknade delar av LoginActivity och MainActivity, LoginManager och CredentialsStorage.

Dela inlägg

Läs mer om rekrytering av tekniker

Prenumerera på vår Learning Hub för att få nyttiga insikter direkt i din inkorg.

Kontrollera och utveckla kodningsfärdigheter utan problem.

Se DevSkillers produkter i praktiken.

Säkerhetscertifieringar och efterlevnad. Vi ser till att dina data är säkra och skyddade.

DevSkillers logotyp TalentBoost logotyp TalentScore-logotyp