Naukowiec danych a inżynier uczenia maszynowego


66

Jakie są ewentualne różnice między „naukowcem danych” a „inżynierem uczenia maszynowego”?

W ciągu ostatniego roku „inżynier uczenia maszynowego” zaczął pojawiać się często na ofertach pracy. Jest to szczególnie zauważalne w San Francisco, co jest zapewne początkiem terminu „naukowiec danych”. W pewnym momencie „badacz danych” wyprzedził „statystykę” i zastanawiam się, czy to samo zaczyna powoli przydarzać się „badaczowi danych”.

Porady dotyczące kariery są wymienione na tej stronie jako nie na temat, ale uważam, że moje pytanie jest bardzo trafne, ponieważ pytam o definicje; Nie pytam o rekomendacje, biorąc pod uwagę moją własną ścieżkę kariery lub osobiste okoliczności, tak jak inne pytania nie na temat.

To pytanie dotyczy tematu, ponieważ może kiedyś mieć znaczące implikacje dla wielu użytkowników tej witryny. W rzeczywistości ta witryna wymiany stosów mogłaby nie istnieć, gdyby nie nastąpiła ewolucja „statystyki” kontra „naukowiec danych”. W tym sensie jest to dość trafne, potencjalnie egzystencjalne pytanie.


2
Data scientistbrzmi jak oznaczenie z niewielką jasnością co do faktycznej pracy, a machine learning engineerjest bardziej szczegółowe. W pierwszym przypadku Twoja firma wyznaczy cel i musisz dowiedzieć się, jakie podejście (uczenie maszynowe, przetwarzanie obrazu, sieć neuronowa, logika rozmyta itp.) Zastosujesz. W drugim przypadku Twoja firma już zawęziła się do tego, jakie podejście należy zastosować.
gurvinder372

Powiązane: nauka danych a badania operacyjne . Ponadto naukowiec to coś innego niż inżynier . Niestety, przemysł nie przejmuje się tym.
Dyskretna jaszczurka

1
Jak ktoś zauważył, inżynier ML to po prostu ktoś, kto wprowadza modele ML do produkcji. Nie oczekuje się, że dogłębnie zrozumie rzeczywiste modele predykcyjne i ich leżącą u ich podstaw matematykę, są one jednak wymagane do opanowania narzędzi programowych, które sprawiają, że modele te są użyteczne. Oczekuje się, że Data Scientist dogłębnie rozumie statystyki / matematykę i ML / AI i często jest osobą, która tworzy narzędzia używane przez inżynierów ML. Inżynier ML jest więc zasadniczo bliższy wyspecjalizowanego inżyniera oprogramowania, a DS jest bliżej statystyki obliczeniowej.
Digio,

Odpowiedzi:


55

Dobre pytanie. W rzeczywistości istnieje wiele nieporozumień na ten temat, głównie dlatego, że oba są całkiem nowymi miejscami pracy. Ale jeśli skupimy się na semantyce, prawdziwe znaczenie zadań stanie się jasne.

Wcześniej lepiej porównać jabłka z jabłkami, mówiąc o jednym temacie, czyli danych. Uczenie maszynowe i jego podgatunek (Głębokie uczenie się itp.) To tylko jeden aspekt świata danych, wraz z teoriami statystycznymi, akwizycją danych (DAQ), przetwarzaniem (które może być oparte na uczeniu maszynowym), interpretacja wyników itp.

Zatem dla mojego wyjaśnienia rozszerzę rolę Inżyniera uczenia maszynowego na Inżyniera danych.

Nauka dotyczy eksperymentu, prób i niepowodzeń, budowania teorii, zrozumienia fenomenologicznego. Inżynieria polega na pracy nad tym, co nauka już wie, doskonaleniu jej i przenoszeniu do „prawdziwego świata”.

Pomyśl o zastępstwie: jaka jest różnica między naukowcem jądrowym a inżynierem nuklearnym?

Naukowiec nuklearny to ten, który zna naukę stojącą za atomem, interakcja między nimi, ten, który napisał przepis pozwalający na pozyskiwanie energii z atomów.

Inżynier nuklearny to facet, którego zadaniem jest wzięcie przepisu naukowca i przeniesienie go do prawdziwego świata. Zatem jego wiedza na temat fizyki atomowej jest dość ograniczona, ale on również wie o materiałach, budynkach, ekonomii i wszystkim innym, co jest przydatne do budowy odpowiedniej elektrowni jądrowej.

Wracając do świata danych, oto kolejny przykład: ludzie, którzy opracowali Convolutional Neural Networks (Yann LeCun), to Data Scientist, facet, który wdraża model do rozpoznawania twarzy na zdjęciach, jest inżynierem uczenia maszynowego. Facet odpowiedzialny za cały proces, od gromadzenia danych do rejestracji obrazu .JPG, jest inżynierem danych.

Zasadniczo 90% Data Scientist to w rzeczywistości inżynierowie danych lub inżynierowie uczenia maszynowego, a 90% pozycji otwartych, ponieważ Data Scientist naprawdę potrzebuje inżynierów. Łatwa kontrola: w wywiadzie zostaniesz zapytany o liczbę modeli ML wdrożonych do produkcji, a nie o liczbę artykułów na temat nowych metod, które opublikowałeś.

Zamiast tego, gdy zobaczysz ogłoszenia o „Inżynierze uczenia maszynowego”, oznacza to, że rekruterzy są świadomi różnicy i naprawdę potrzebują kogoś, kto mógłby wprowadzić jakiś model do produkcji.


Nigdy nie myślałem o naukowcach nuklearnych kontra inżynierach. Myślę, że to dokładna odpowiedź. Z mojego doświadczenia wynika, że ​​kiedy robię analizy, to jest jak ten biały fartuch laboratoryjny (jupyter i ładne wykresy). Kiedy „brudzę sobie ręce” pracami inżynieryjnymi (kontenery etl i webapp), ciągle znajduję dziwne przypadki, błędy i nieprzyjemny zapach kodu.
Tony

Czy Yann LeCun nie jest informatykiem? A naukowcem danych byłby ktoś, kto używa gotowych algorytmów i technik komputerowych (wynalezionych przez takich naukowców jak Yann LeCun) do przeprowadzania naukowej analizy danych? W ten sam sposób, w jaki inni naukowcy wykorzystują komputery w swojej pracy? Czy zatem gromadzenie danych, czyszczenie ich, łączenie różnych technik analizy (kreślenie, dopasowywanie wzorców, modele ML itp.) Razem w celu poznania ukrytych prawd w danych?
Didier A.

YLC jest rzeczywiście informatykiem, ale specjalizuje się w danych. CS stało się zbyt szeroką dziedziną, z której wyłoniły się wszystkie nowe definicje (jak DS). I tak używanie CS nie jest tak naprawdę dyskryminujące. Podobnie jak apelacyjny „fizyk” kilkaset lat temu: dziś to słowo w rzeczywistości nie definiuje czyjejś pracy, chyba że lepiej ją sprecyzujesz (np. Particle P., Solid State P. itp.). Ale w każdym razie Naukowiec (CS, DS, dowolny -S) nie jest kimś, kto ogranicza się do korzystania z odkryć innych. Zamiast tego jego zadaniem jest rozumienie, a tym samym dokonywanie odkryć.
Vincenzo Lavorini

Czy mógłbyś uprzejmie odpowiedzieć na to pytanie dotyczące Data Engineerporadnictwa zawodowego.
stom

Jak nauka ma się do „zrozumienia fenomenologicznego”?
ubadub

10

Warunki są mgliste, ponieważ są nowe

Będąc w trakcie poszukiwania pracy w dziedzinie „analizy danych”, myślę, że dzieje się tutaj dwie rzeczy. Po pierwsze, zadania są nowe i nie ma ustalonych definicji różnych terminów, więc nie ma wspólnego uzgodnienia dopasowania terminów z opisami zadań. Porównaj to z „programistą internetowym” lub „programistą back-end”. Są to dwie podobne prace, które mają dość dobrze uzgodnione i odrębne opisy.

Po drugie, wiele osób zajmujących się publikowaniem ofert pracy i wstępnymi rozmowami kwalifikacyjnymi nie wie dobrze, po co zatrudniają. Jest to szczególnie prawdziwe w przypadku małych i średnich firm, które zatrudniają osoby rekrutujące w celu znalezienia kandydatów na nich. To ci pośrednicy publikują opisy ofert pracy w CareerBuilder lub na jakimkolwiek forum. Nie oznacza to, że wielu z nich nie zna się na swoich rzeczach, wielu z nich ma dość dużą wiedzę na temat firm, które reprezentują i wymagań w miejscu pracy. Jednak bez dobrze zdefiniowanych terminów opisujących różne konkretne stanowiska często powstają mgliste tytuły.

Istnieją trzy ogólne działy w tej dziedzinie

Z mojego doświadczenia wynika, że ​​istnieją trzy ogólne podziały „przestrzeni roboczej” w dziedzinie danych.

Pierwszym z nich jest rozwój technik matematycznych i obliczeniowych, które umożliwiają naukę danych. Obejmuje to między innymi badania statystyczne nowych metod uczenia maszynowego, wdrożenie tych metod oraz budowę infrastruktury obliczeniowej w celu zastosowania tych metod w świecie rzeczywistym. Jest to oddział najbardziej oddalony od klienta i najmniejszy. Wiele z tych prac wykonują naukowcy lub badacze w dużych firmach (Google, Facebook itp.). Dotyczy to między innymi tworzenia Google TensorFlow, sieci neuronowych SPSS IBM lub jakiejkolwiek następnej bazy dużych grafów.

Drugi dział wykorzystuje podstawowe narzędzia do tworzenia pakietów specyficznych dla aplikacji w celu przeprowadzenia analizy danych. Ludzie są zatrudniani do korzystania z Pythona lub R lub cokolwiek innego w celu budowania możliwości analizy na pewnym zestawie danych. Z mojego doświadczenia wynika, że ​​wiele z tych prac polega na „praniu danych”, przekształcaniu surowych danych w dowolnej formie w coś użytecznego. Kolejną dużą częścią tej pracy jest bazowanie danych; zastanawianie się, jak przechowywać dane w taki sposób, aby można było uzyskać do nich dostęp w dowolnej osi czasu, w której są potrzebne. To zadanie nie polega na pobieraniu narzędzi, ale na wykorzystaniu istniejących baz danych, statystyk i bibliotek analizy graficznej, aby uzyskać pewne wyniki.

Trzeci dział tworzy analizy na podstawie nowo zorganizowanych i dostępnych danych. Jest to strona najbardziej skierowana do klienta, w zależności od organizacji. Musisz opracować analizę, którą liderzy biznesu mogą wykorzystać do podejmowania decyzji. Byłby to najmniej techniczny z trzech działów; wiele miejsc pracy jest w tym momencie hybrydami między drugim i trzecim dywizją, ponieważ nauka danych jest w powijakach. Ale w przyszłości mocno podejrzewam, że pomiędzy tymi dwoma miejscami pracy będzie bardziej przejrzysty podział, przy czym ludzie zdobędą drugą pracę wymagającą edukacji technicznej, informatycznej lub statystycznej, a ta trzecia praca wymaga jedynie edukacji ogólnej.

Ogólnie rzecz biorąc, wszyscy trzej mogliby określić się jako „naukowcy danych”, ale tylko dwaj pierwsi mogliby się rozsądnie określić jako „inżynier uczenia maszynowego”.

Wniosek

Na razie będziesz musiał dowiedzieć się, co pociąga za sobą każda praca. Moja obecna praca zatrudniła mnie jako „analityka”, aby zajął się uczeniem maszynowym. Ale kiedy zabraliśmy się do pracy, stało się jasne, że baza danych firmy jest nieodpowiednia i teraz prawdopodobnie 90% mojego czasu spędzam na pracy z bazami danych. Moja ekspozycja w zakresie uczenia maszynowego polega teraz na szybkim przeglądaniu różnych pakietów scikit-learn, które wydają się najbardziej odpowiednie, i przesyłaniu plików csv do analityków z trzeciego działu, aby tworzyć prezentacje PowerPoint dla klienta.

Pole jest zmienne. Wiele organizacji próbuje dodać procesy decyzyjne do analizy danych do swoich procesów, ale nie wiedząc dokładnie, co to oznacza. To nie ich wina, trudno jest przewidzieć przyszłość, a konsekwencje nowej technologii nigdy nie są bardzo jasne. Dopóki pole nie zostanie bardziej ustalone, wiele miejsc pracy będzie równie mglistych, jak określenia użyte do ich opisania.


9

[Całkowicie osobista opinia]

Kiedy termin „Data Scientist” wyprzedził „Statistician”, bardziej skupia się na brzmieniu chłodnym, niż na jakiejkolwiek większej różnicy. Podobnie termin „głębokie uczenie się”. To tylko sieci neuronowe (będące innym algorytmem uczenia maszynowego) z kilkoma dodatkowymi warstwami. Nikt nie może wyjaśnić, kiedy konkretną sieć neuronową można nazwać DL, a nie ML, ponieważ sama definicja jest rozmyta. Tak więc jest to termin „Data Scientist”.

Jednak w miarę jak firmy przyjmują podejście DevOps do nauki danych, termin ML Engineer ewoluował.

Jakie jest nastawienie DevOps do nauki danych?

To tutaj budujesz model, wdrażasz go, a także spodziewasz się, że utrzymasz go w produkcji. Pomaga to uniknąć dużego tarcia w zespołach oprogramowania.

[PS: DevOps to sposób tworzenia oprogramowania, bardziej jak filozofia. Używając go jako oznaczenia, znów mnie dezorientuję].

Tak więc inżynierowie ML powinni znać niuanse inżynierii systemów, ML i statystyk (oczywiście).

Niejasne uogólnienie to Inżynier danych + Naukowiec = Inżynier ML.

To powiedziawszy, oznaczenia w tej przestrzeni z dnia na dzień stają się niejasne, a termin „statystyka” staje się coraz bardziej odpowiedni (ironia!).


2
Uczenie maszynowe to znacznie więcej niż tylko sieci neuronowe (na przykład weź pod uwagę wszystkie rodzaje klasyfikatorów opartych na drzewach), więc nie rozumiem, jak „Głębokie uczenie się to tylko uczenie maszynowe z kilkoma dodatkowymi warstwami”.
S. Kolassa - Przywróć Monikę

@StephanKolassa Tak. Zgodzić się. Nie powinienem był zbytnio uogólniać :) Dzięki za wskazanie tego.
Dawny33

1
(+1), ale nie sądzę, aby „statystyka” stała się bardziej istotna, to ironia, po prostu… oczekiwane przejście? Gdzie są obecnie „badacze operacyjni”? ;)
usεr11852

7

Może się różnić w zależności od firmy, ale Data Scientist jako nazwa istnieje już od jakiegoś czasu i zwykle służy do wydobywania wiedzy i spostrzeżeń z danych .

Widziałem naukowców zajmujących się danymi

  • Pisanie algorytmów przetwarzania i rozpoznawania obrazów,
  • Projektuj i wdrażaj drzewa decyzyjne dla przypadku użycia biznesowego,
  • Lub po prostu zaprojektuj i zaimplementuj niektóre raporty lub napisz ETL do transformacji danych.

Nauka dane , jednak jest super domena uczenia maszynowego

Wykorzystuje techniki i teorie zaczerpnięte z wielu dziedzin w szerokim zakresie matematyki, statystyki, informatyki i informatyki, w szczególności z poddomen uczenia maszynowego, klasyfikacji, analizy skupień, kwantyfikacji niepewności, nauk obliczeniowych, eksploracji danych, baz danych, i wizualizacja .

Inżynier uczenia maszynowego wydaje się być oznaczeniem, w którym Twój pracodawca zawęził się już do

  • Podejście,
  • Przybory,
  • i przybliżony model (tego, co dostarczyć)

w celu wydobycia wiedzy lub spostrzeżeń z danych za pomocą uczenia maszynowego, a twoja praca będzie polegać na zaprojektowaniu i wdrożeniu algorytmów uczenia maszynowego, aby zapewnić to samo .


5

Inżynierowie ds. Uczenia maszynowego i inżynierowie danych są tacy sami, ale nie wszyscy inżynierowie danych są inżynierami. Około 5 lat temu prawie wszyscy Data Scientist byli inżynierami, np. Musieli pisać kod produkcyjny. Teraz jednak istnieje wiele ról Data Scientist, które są w przeważającej części: granie w notatniku Jupyter, rozumienie danych, tworzenie ładnych wykresów, wyjaśnianie klientom, menedżerom, analitykom ... Nie robią żadnej inżynierii. I uważam, że termin Inżynierowie uczenia maszynowego wymyślił, aby podkreślić, że jest to pozycja inżynierska.


2

TL; DR: To zależy od tego, kto pyta.

Odpowiedź na to pytanie zależy w dużej mierze od oczekiwań, wiedzy i doświadczenia każdego, kto prosi. Analogiczne pytanie z równie niejasną odpowiedzią to:

Jaka jest różnica między twórcą oprogramowania, inżynierem oprogramowania i informatykiem?

Dla niektórych osób, szczególnie osób studiujących lub uczących informatyki i inżynierii oprogramowania, istnieje duża i określona różnica między tymi dziedzinami. Ale dla przeciętnego pracownika HR, rekrutera technicznego lub kierownika są to po prostu „ludzie komputerowi”.

Uwielbiam ten cytat Vincenta Granville'a , podkreśl moje:

Wcześniej w mojej karierze (około 1990 r.) Pracowałem nad technologią teledetekcji obrazu, między innymi w celu identyfikacji wzorów (lub kształtów lub cech, na przykład jezior) na zdjęciach satelitarnych i przeprowadzania segmentacji obrazów: w tym czasie moje badania zostały oznaczone jako obliczeniowe statystyki, ale ludzie, którzy robią dokładnie to samo w dziale informatyki obok mojego macierzystego uniwersytetu, nazwali swoje badania sztuczną inteligencją. Dzisiaj nazwano by to nauką danych lub sztuczną inteligencją, a poddomenami były przetwarzanie sygnałów, widzenie komputerowe lub Internet Rzeczy.


1

Uczenie maszynowe jest bardziej szczegółowe i w tej dziedzinie musisz opanować następujące kwestie:

  • Funkcje vs etykiety
  • Dane testowe a dane treningowe
  • Normalizacja funkcji
  • Typowe struktury danych (tablice tablic)
  • Wybór funkcji

0

Nie zgadzam się z żadną z udzielonych odpowiedzi. Myślę jednak, że istnieje rola Data Scientist, która jest opisywana praktycznie we wszystkich odpowiedziach tutaj. Większość tych odpowiedzi mówi coś w stylu „Cóż, inżynier po prostu pisze i wdraża model ...”. Chwileczkę - na tych dwóch krokach jest dużo pracy!

Moją podstawową definicją Data Scientist jest ktoś, kto stosuje naukową metodę do pracy z danymi. Dlatego ciągle myślę o hipostezach, projektowaniu testów, gromadzeniu danych i wykonywaniu tych testów, sprawdzaniu wyników krzyżowej weryfikacji, wypróbowywaniu nowych podejść, przekształcaniu danych itp. Itd. Zasadniczo to właśnie wchodzi w skład „po prostu pisze i wdraża model „w profesjonalnym otoczeniu.

Tak więc dla twojej odpowiedzi myślę, że „diabeł tkwi w szczegółach”, ponieważ nie można po prostu przeoczyć niektórych z tych kroków / warunków. Ponadto, jeśli szukasz pracy, powinieneś być ostrożny, ponieważ „inżynier danych” i „naukowiec danych” mogą mieć żałośnie różne skale płac - nie chcesz być naukowcem danych w sprawie pensji inżyniera danych!

Zawsze pracuję jako informatyk, mówię firmom, że pracuję na modelach predykcyjnych (nie tylko analitycznych) i że nie jestem dżokejem Excela - piszę w językach programowania (R, Python itp.). Jeśli potrafisz znaleźć stanowisko, które pozwala ci wykonywać oba te zadania, jesteś na dobrej drodze, aby zostać naukowcem danych.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.