Ingineri de învățare automată: mituri vs. realități

Publicat: 2018-05-08

Învățarea automată este ceea ce oferă computerelor capacitatea de a învăța și de a se îmbunătăți în mod iterativ sarcinile lor. Se concentrează pe dezvoltarea algoritmilor dinamici care se pot schimba (modifica) atunci când sunt expuși la un nou set de date. Vorbind în termeni simpli, învățarea automată este ceea ce face Facebook să spună „doriți să vă etichetați prietenii în această imagine?” , de fiecare dată când încărcați o fotografie de grup. Oamenii care lucrează în culise pentru ca toate acestea să se întâmple sunt cunoscuți cu umilință ca ingineri de învățare automată.
Acum, la fel ca în orice alt domeniu sub umbrela largă a științei datelor, și învățarea automată are o mulțime de concepții greșite despre asta. Și eliminarea lor este tocmai scopul nostru pentru astăzi. Dar, este esențial să vă ghidăm mai întâi prin viața unui inginer de învățare automată, inclusiv abilitățile și instrumentele pe care le posedă.
Ingineri de învățare automată
În primul rând, să delimităm în mod clar învățarea automată de știința datelor.

Cuprins

Sunt inginerii de învățare automată oameni de știință ai datelor?

Știința datelor este un termen cuprinzător, dar există ceva fundamental diferit în modul în care funcționează învățarea automată. Știința datelor și analiștii explorează în esență datele și încearcă să găsească abordări sau modele care se potrivesc cerințelor lor de afaceri.
Învățarea automată, pe de altă parte, schimbă în întregime acest model. Inginerii de învățare automată nu au de-a face direct cu datele. Ei știu rezultatele pe care le doresc, dar lasă algoritmii să facă treaba pentru ei. Învățarea automată creează o mașină care îi învinge pe campionii Go sau care etichetează fotografii sau care traduce între limbi. Aceste obiective nu sunt atinse printr-o explorare atentă a datelor – spre deosebire de cazul analizei datelor. Există o mulțime de date de explorat și mult prea multe dimensiuni de abordat (de exemplu, care este dimensionalitatea unui joc Go? Sau, un limbaj?) Promisiunea învățării automate este că construiește modelul în sine: își face explorarea datelor și tuning.
Diferența dintre Data Science, Machine Learning și Big Data!

Drept urmare, inginerii de învățare automată nu „explorează” la fel de mult ca oamenii de știință de date sau analiștii – cel puțin nu în adevăratul sens al cuvântului. Scopul lor nu este să găsească semnificația datelor lor – ei cred că semnificația este deja acolo. În schimb, ei urmăresc să construiască un model/algoritm/mașină/sistem care poate analiza datele și produce rezultate. Sau, pentru a crea o rețea neuronală care să funcționeze – care poate fi ajustată pentru a produce rezultate fiabile pe orice set de date de intrare.
Să ne uităm la câteva puncte cruciale care gravitează în jurul inginerilor de învățare automată:

  • Ei au abilități de inginerie software mai puternice decât analiștii/oamenii de știință tipici de date. Inginerii de învățare automată lucrează cu inginerii responsabili cu întreținerea sistemelor de producție. Prin urmare, ei trebuie să înțeleagă metodologia de dezvoltare a software-ului, practicile agile și cele mai moderne instrumente de dezvoltare software. Trebuie să fie amănunți cu totul, de la IDE-uri precum Eclipse sau IntelliJ până la componentele unei conducte de implementare a software-ului.
  • Inginerii de învățare automată se concentrează pe a face ca produsele de date să funcționeze în producție. Drept urmare, ei sunt holistici în abordarea lor. Ei formează o parte esențială a oricărei echipe de dezvoltare de software și, prin urmare, știu ce este testarea A/B. Ei nu numai că „înțeleg”, dar știu și cum să efectueze teste A/B pe sistemele de producție. Ei înțeleg importanța logării și a securității pentru soarta oricărei aplicații.
  • Sunt la curent când vine vorba de monitorizarea produselor de date în producție. Deși există multe resurse pentru automatizarea procesului de monitorizare a aplicațiilor, cerințele învățării automate merg cu un pas mai departe. Conductele de date, modelele, algoritmii sau chiar sistemele pot deveni obținute și trebuie reinstruite. Un sistem de învățare automată poate fi ușor distorsionat prin compromiterea conductelor de date care îl alimentează. Prin urmare, inginerii de învățare automată trebuie întotdeauna să știe cum să detecteze aceste compromisuri.
Rețele neuronale pentru manechini: un ghid cuprinzător

Câteva abilități necesare pentru un inginer de învățare automată de succes:

  • Cunoștințe fundamentale de informatică și programare
  • Probabilitate și statistică
  • Modelarea și evaluarea datelor
  • Găsirea bibliotecii ML potrivite pentru a o folosi și ajustarea ei după cum este necesar
  • Inginerie software și modelare

Mitul #1: Inginerii de învățare automată fac sistemele să gândească exact ca oamenii.

Deși acesta este un eventual obiectiv final, este departe de adevăr în acest moment. Comparați pe scurt procesul de învățare al unui copil cu cel al unei mașini și vă veți da seama că învățarea automată este încă la început. De exemplu, un bebeluș nu are nevoie să observe sute de oameni pentru lucruri simple precum mersul pe jos sau mâncarea. Ei își stabilesc propriile obiective, îi percep pe ceilalți oameni din jur, își creează în mod intuitiv strategia de învățare și o perfecționează prin încercare și eroare până când reușesc. Chiar și fără prea multă intervenție sau îndrumare externă, un bebeluș poate învăța cu succes cum să meargă, împreună cu alte lucruri esențiale.
Mașinile, pe de altă parte, necesită supraveghere la fiecare pas de învățare. În plus, un copil combină fără efort diversele inputuri primite de la mai multe organe de simț în mod holistic și eficient. De exemplu, un copil va fi capabil să recunoască imagini într-o clipă și, de asemenea, să înțeleagă orice text scris peste ele. Dar, pentru a învăța o mașină același lucru, avem nevoie de algoritmi sofisticați separati, fiecare pentru recunoașterea datelor, identificarea zgomotelor și înțelegerea textului.

Mitul #2: Toate datele sunt utile pentru inginerii de învățare automată.

Nu există nicio îndoială că și inginerii de învățare automată au nevoie de date, dar nu toate sunt relevante pentru învățarea automată. Au nevoie de date reprezentative care să acopere tiparele și rezultatele pe care sistemul lor va trebui să le gestioneze. Datele nu ar trebui să aibă modele irelevante incluse, deoarece modelul de învățare automată va reflecta acele modele fără legătură și le va căuta în datele cu care va fi folosit.
Toate datele pe care le utilizați pentru antrenament trebuie să fie bine etichetate și etichetate cu funcțiile care se potrivesc cu întrebările pe care le veți adresa sistemului de învățare automată, ceea ce necesită multă muncă. Toate aceste date trebuie să fie bine etichetate cu caracteristicile care se potrivesc cu întrebările pe care le veți pune sistemului dumneavoastră. De asemenea, ar trebui să fie curat și fără orice inconsecvență sau erori. Deci, toate datele nu sunt valoroase pentru inginerii de învățare automată – doar datele relevante sunt!
Fiți cu ochii pe următorul lucru important: învățarea automată

Mitul #3: Inginerii de învățare automată ignoră cunoștințele preexistente.

Experții din multe domenii resping învățarea automată pentru că adoptă o abordare de tip „tablă goală” în algoritmii lor de învățare. Ei presupun că fiecare algoritm de învățare automată începe de la zero – fără cunoștințe despre datele preexistente. Inginerii de învățare automată înțeleg mai bine că învățarea este un proces lung care necesită monitorizare constantă. Nu poate fi imitat doar prin introducerea datelor într-un algoritm. Prin urmare, nu toți algoritmii de învățare încep cu o tablă goală; unii folosesc seturi de date pentru a rafina un bazin de cunoștințe preexistent. La sfârșitul zilei, depinde de cerințele de afaceri ale organizației.
Mitul #4: Modelele de învățare automată mai simple sunt întotdeauna mai precise.

Acest lucru este în conformitate cu briciul lui Occam. Dar, să vă spunem că briciul spune doar că explicațiile mai simple sunt de preferat, nu de ce. Sunt preferați pentru că sunt mai ușor de înțeles, de reținut și de tratat. Cu toate acestea, când vine vorba de învățarea automată, uneori, cea mai simplă ipoteză în concordanță cu datele este mai puțin precisă pentru predicție decât una mai complicată. Unii dintre cei mai puternici algoritmi de învățare scot modele care par elaborate gratuit – uneori chiar continuă să le adauge după ce s-au potrivit corect cu datele – dar așa le înving pe cele mai puțin puternice.

Învață cursul ML online de la cele mai bune universități din lume. Câștigă programe de masterat, Executive PGP sau Advanced Certificate pentru a-ți accelera cariera.

Este matematica o necesitate pentru inginerii de învățare automată?

Deoarece învățarea automată este o parte a științei datelor, o combinație de informatică și matematică, cunoașterea matematicii este o necesitate pentru inginerii de învățare automată. Veți avea nevoie de cunoștințe despre concepte matematice precum algebra liniară, calculul, optimizarea, probabilitatea și statisticile pentru a crea și înțelege algoritmii de învățare automată. Pentru a fi mai exact, va trebui să aveți o idee de bază despre operațiile matematice care ajută la analiza datelor. Dar cea mai bună parte este că puteți învăța aceste concepte de bază ale matematicii cu timpul în timp ce învățați Machine Learning, iar majoritatea acestor concepte sunt moderat ușor de înțeles.

Oamenii de știință de date au nevoie de învățare automată?

Știm că Data Science și Machine Learning sunt indisolubil legate, așa că Machine Learning va fi la fel de bună decât datele pe care le oferă și capacitatea algoritmilor de a le ingera. Oamenii de știință de date vor trebui să aibă o înțelegere de bază a învățării automate. Oamenii de știință de date extrag cunoștințe utile din cantități masive de date. Aceștia descoperă tendințe și ajută la dezvoltarea de soluții pentru automatizarea anumitor operațiuni de afaceri. Pentru prognoze și estimări precise, oamenii de știință în domeniul datelor trebuie să înțeleagă învățarea automată. Acest lucru poate ajuta roboții să emită judecăți mai bune și să întreprindă acțiuni mai înțelepte în timp real, fără a fi nevoie de interacțiune umană. Exploatarea și interpretarea datelor sunt transformate de Machine Learning. Procedurile statistice tradiționale au fost înlocuite de seturi automate mai precise de algoritmi generici.

Ce limbaj de codare este preferat de inginerii ML?

Python este cel mai folosit limbaj pentru analiza datelor și învățare automată. Majoritatea inginerilor de Machine Learning aleg Python pentru provocările NLP, R sau Python sunt preferate pentru lucrările de analiză a sentimentelor, iar Java este folosit pentru alte aplicații de Machine Learning, cum ar fi securitatea și detectarea amenințărilor. Python a devenit limbajul preferat pentru analiza datelor, învățarea automată și inteligența artificială (AI) datorită ecosistemului său extins de biblioteci, care permite profesioniștilor în învățarea automată să acceseze, să gestioneze, să convertească și să analizeze cu ușurință datele. Python este popular printre dezvoltatorii de învățare automată datorită independenței platformei, simplității și lizibilității.