Кар'єра в IT : посада Data Scientist / Machine Learning Engineer
via Shutterstock .
Взимку - навесні цього року на DOU був хороший цикл статей про IT - посади , починаючи від QA Engineer і закінчуючи CTO . Я хотів би продовжити цей цикл статтею про поки рідкісні в Україні , але вже дуже популярні в розвинених країнах посади Data Scientist і Machine Learning Engineer . Зазначу , що дана стаття - плід моєї суб'єктивного ( а значить , недосконалого ) розуміння ситуації. І якщо хтось захоче поправити мене або доповнити , я буду дуже радий . Data Science і Machine Learning Згідно Вікі , " Data Science - це область дослідження , що вивчає проблеми аналізу , обробки представлення даних в цифровій формі " . Поки звучить не дуже круто . Але далі йде дещо цікавіше : " Об'єднує методи з обробки даних в умовах великих обсягів і високого рівня паралелізму , статистичні методи , методи інтелектуального аналізу даних і додатки штучного інтелекту для роботи з даними , а також методи проектування і розробки баз даних. " А далі - більше : " ... з початку 2010 - х років вважається однією з найпривабливіших , високооплачуваних і перспективних професій " . Т.е . Data Science - це такий же великий " парасольку " , як і Computer Science , тільки спрямований на обробку даних і витяг з них корисної інформації. Добре , з Data Science ми поверхнево розібралися . Що ж таке машинне навчання ( Machine Learning ) ? " Machine Learning - це обширний підрозділ штучного інтелекту , що вивчає методи побудови моделей , здатних навчатися , і алгоритмів для їх побудови та навчання" . Але особисто мені набагато більше подобається інше визначення by Arthur Samuel :" Machine Learning is a field of study that gives computers the ability to learn without being explicitly programmed " . Тобто глобальна мета машинного навчання - це навчити машину вирішувати різні складні завдання , які складно вирішити алгоритмічно , використовуючи лише звичні нам цикли і розгалуження . Наприклад , дізнаватися людські обличчя або інші об'єкти , розуміти голос , водити автомобіль ( Google Self - Driving Car ) , діагностувати захворювання за симптомами ( Watson ) , розуміти тональність або зміст тексту , приймати рішення про ризики видачі кредиту , пророкувати продажу і попит на оренду велосипедів в місті , радити товари , книги ( Amazon ) , фільми ( Netflix ) , виконувати функції особистого помічника або секретаря ( Siri , Android Now , Cortana ) , захоплювати світ і багато інших. Т.е . незважаючи на те , що алгоритми машинного навчання складають базу тих самих " інтелектуального аналізу даних" і " додатків штучного інтелекту " для Data Science , спектр їх застосування та формати оброблюваних даних набагато ширше. Так чим же займаються Data Science і Machine Learning фахівці? Позиція Data Scientist Якщо подивитися на вакансії Data Scientist від різних компаній , можна побачити досить велику різноманітність завдань і вимог . Іноді під Data Scientist позиціями розуміють навіть звичайних Data Analyst . Однак певна серединна лінія все ж простежується. Стандартні завдання: Виділяти , агрегувати і синтезувати дані з різних структурованих і неструктурованих джерел Дослідити , розробляти і застосовувати інтелектуальне навчання на даних , отриманих з реального світу , забезпечувати важливі висновки та успішні дії , грунтуючись на них Аналізувати та надавати дані , зібрані в організації Проектувати і будувати нові процеси для моделювання , інтелектуального аналізу даних і впровадження Розробляти прототипи , алгоритми , що прогнозують моделі , прототипи Виконувати запити на аналіз даних і доносити їх висновки і рішення Крім того , є й більш специфічні завдання , що залежать від домену , в якому працює роботодавець або виконується проект. Для виконання цих завдань в основному потрібні такі знання і навички : Дискретна математика , статистика і статистичний аналіз Machine Learning алгоритми Уміння працювати з сховища даних ( реляційними і нереляціоннимі ) , володіння SQL та іншими мовами запитів Інструменти для аналізу даних і моделювання:
R Python ( NumPy/SciPy ) Matlab SPSS/SAS У разі обробки великих обсягів даних ( Big Data ) часто додаються : Hadoop і весь спектр супутніх технологій та інструментів : Pig , Hive і т.д. Java Візуалізація даних Розуміння предметної області ( вкрай важливо !) Високий рівень комунікації На тему експертизи , необхідної Data Scientist для роботи , є хороша картинка :
Найцікавіше , що Data Scientist не зобов'язаний вміти добре програмувати , а може обмежитися інструментами на зразок Matlab , SPSS , SAS і ін . Можливо , тому на цю позицію часто претендують не стільки розробники , скільки бізнес аналітики ( Business Analyst ) , аналітики даних ( Data Analyst ) та інші фахівці з аналізу . Через невеликого присутності в спеціальності програмістів чисто технічні навички , такі як вміння програмувати , працювати з Big Data і базами даних , дуже цінуються . За оцінкою Payscale.com знання Python , Java і Hadoop можуть додати до середньої зарплати від 5 % до 14 %. Таким чином , позиція Data Scientist може бути цікава не тільки програмістам , а й фахівцям у прикладній математиці і статистиці , Machine Learning , Business Intelligence , а також аналітикам даних. Позиція Machine Learning Engineer Позиція Machine Learning Engineer є більш " технічної " , якщо можна так висловитися . Іншими словами , ML Engineer має більше спільного з класичним Software Engineering , ніж Data Scientist . Стандартні завдання ML Engineer в цілому схожі на Data Scientist . Також необхідно вміти працювати з даними , експериментувати з різними Machine Learning алгоритмами , які дозволять вирішити поставлене завдання , створювати прототипи і готові рішення . Необхідні знання та навички для даної позиції теж багато в чому перетинаються з Data Scientist . З ключових відмінностей я б виділив : Сильні навички програмування в одному або декількох популярних мовах (як правило , Python і Java) , а також в базах даних; Менший упор на вміння працювати в середовищах для аналізу даних , але більший упор на алгоритми Machine Learning ; R і Python для моделювання переважніше Matlab , SPSS і SAS ; Уміння використовувати в додатку готові бібліотеки для різних стеків , наприклад , Mahout , Lucene для Java , NumPy/SciPy для Python ; Уміння створювати розподілені додатки , використовуючи Hadoop та інші рішення . Крім того , для більш вузьких застосувань потрібні додаткові знання: Natural Language Processing , Computer Linguistics , Sentiment Analysis для обробки , розуміння та оцінки тональності тексту; Computer Vision для розпізнавання зображень і відео ; Digital Signal Processing для роботи зі звуком , сенсорними даними і різними іншими сигналами; Recommender Systems для побудова рекомендаційних систем . Для Data Scientist подібні вимоги зустрічаються набагато рідше . Як я вже згадував , вони більше працюють з датасета . Крім того , досить часто компанії , які спеціалізуються в більш вузьких областях , можуть і свої позиції називати вже , наприклад , Text Mining Engineer , Senior Computer Vision Engineer , Computer Vision Scientist і т.д . Як бачите , позиція ML Engineer (або більш вузькі) вимагає більше знань в Software Engineering , і, відповідно , добре підійде досвідченим розробникам . Досить часто спрацьовує кейс , коли звичайному розробнику за службовим обов'язком доводиться вирішувати ML задачу , і він починає розбиратися в потрібних алгоритмах і бібліотеках . Переваги та перспективи А тепер я постараюся пояснити , кому саме і чому це може бути потрібно . По-перше , створення додатків , які виходять за рамки звичайного прикладного програмування , шалено цікаво. Це робота , яка напружує ваші звивини до межі , змушуючи робити десятки , а іноді й сотні експериментів , читати наукові статті , шукати рішення , щоб домогтися поставленої мети. І треба сказати , не завжди результат виявляється задовільним , а задача - розв'язуваної на даному етапі розвитку алгоритмів . Сергій Шельпук , керівник напрямку Data Science в VITech : "Зазвичай наша , програмістів , робота полягає в написанні бізнес - логіки ' if - then - else ' . Вона дозволяє програмам працювати набагато швидше , ніж могли б ми самі - комп'ютер не в приклад продуктивніше людини в обчисленнях . Але таким способом ми не можемо створити програму , яка була б розумнішою , ніж той , хто її написав . Але в Data Science ми створюємо системи , які розумніші за нас . Ми вчимо їх вчитися і , аналізуючи дані , приймати рішення самостійно. Це як шашки Артура Семьюела - його програма навчилася грати краще , ніж він сам. Створення систем , які розумніші свого творця , - цей елемент ' магії ' приваблює мене в Data Science найбільше :) " Віталій Юр'єв , Data Scientist в Eleks : " Data Science я почав займатись около 2 лет назад . Перше моє знайомство Почалося з Computer Vision , колі Прийшла Завдання від клієнта Розробити систему по знаходженню и розпізнаванню пляшок різніх брендів. Для Виконання цього Завдання мені Знадоби знання з университета по матаналізу , статістіці , Теорії ймовірності и лінійної алгебри . После розробки прототипу я зрозумів , что Machine Learning - Це ті , чім я хочу займатись . За ці два роки я успішно пройшов декілька онлайн - курсів на Coursera , Udacity та других MOOC . Data Science для мене - Це не buzzword , а надзвійчайно Складний и наукоємній процес , результатом которого є создания грандіозніх РІШЕНЬ , Які роблять наше життя простішім . " По-друге , Machine Learning дозволяє компаніям і стартапам будувати інтелектуальні продукти і сервіси , які дають користувачам можливості абсолютно нового рівня і вирішують проблеми , які не можуть бути вирішені звичайним програмуванням . Навіть звичайний, не - айтішной бізнес звернув пильну увагу на Data Science і Big Data в останні роки. Великі компанії та їх навколишнє середовище генерують величезну кількість даних , використовуючи які , можна отримати серйозні переваги перед конкурентами . Все це призвело до того , що попит на аналітиків і різних фахівців з обробки даних та машинному навчанню в розвинених країнах виріс в рази і набагато перевищує пропозицію на ринку праці. Якщо порівняти зарплати Software Engineer і Data Scientist на тому ж Payscale.com , то можна побачити , що і діапазон , і медіана вище для Data Scientist :
- Software Engineer - $ 75K
- Data Scientist - $ 95.5K Така ж тенденція спостерігається , коли ми додамо приставку Senior до обох позиціях:
- Senior Software Engineer - $ 100.5K
- Senior Data Scientist - $ 124K (К слову , рекомендую подивитися докладніше інформацію на сайті , особливо тим , хто планує завести трактор в Штати - вельми цікаві графіки , у тому числі є й розбивки по містах і найбільшим роботодавцям ) . Безумовно , зарплата програмістів відрізняється в залежності від стека , але навіть подібні поправки , на жаль , не виправляють ситуацію на користь розробників . Сервіс пошуку роботи Indeed.com , який використовує іншу методику збору даних , також вважає , що за Machine Learning і Data Science роботодавці платять більше грошей :
- Software Engineer - $ 102K
- Machine Learning - $ 112K
- Data Scientist - $ 117K Великі й імениті компанії , наприклад , Google або Amazon , пропонують дуже багато вакансій по Machine Learning і Data Science . Якщо вам цікаво, чому існує подібна ситуація на ринку праці , раджу також почитати непогану статтю Why Data Scientists Get Paid So Much , а також So you want to be a data scientist ? . Як бачите , все дуже серйозно: ) Ситуація в Україні Дуже добре , - скажете ви , - але далеко. Яке нам діло до роботи на заході , якщо в локомотивах українського IT - аутсорсингових компаніях - проектів , де потрібні подібні фахівці , як і раніше не так багато? На це я можу лише відповісти , що кількість таких проектів постійно росте , про що свідчить зростання числа вакансій на ринку праці , не кажучи вже про те , що деякі компанії вже створили відділи по Data Science/Machine Learning і розвивають цю послугу. Півроку тому я написав статтю Ландшафт штучного інтелекту в Україні , де перерахував продуктові та сервісні компанії , які були мені відомі на той момент. У коментарях мені накидали ще багато назв компаній , про які я не знав. Крім того , коли ми почали підготовку конференції AI Ukraine 2014 , на нас вийшли представники ще кількох українських компаній , які активно використовують ШІ алгоритми у своїй роботі , наприклад. Представники багатьох з них виступлять на нашій конференції і розкажуть про свій досвід. З чого почати В описах обох позицій були перераховані галузі знань , мови та інструменти , які потрібно знати для того , щоб займатися Data Science . Якщо ви зацікавилися , але не знаєте , з чого почати : 1 . Data Science/Machine Learning
Є безліч курсів по Machine Learning і Statistical Learning на Coursera , Udacity та інших ресурсах . Раджу почати з кількох :
- Machine Learning by Stanford
- Introduction to Data Science by UoW
- Data Analysis by Johns Hopkins
- Data Science by Harvard 2. Мова R
- Swirl : swirlstats.com
- Try R : tryr.codeschool.com
- Computing for Data Analysis by Johns Hopkins .
- R Tutorial 3.Statistics
- Statistical Learning by Stanford
- Statistics by UoT
- Statistics One by Princeton Також є досить багато книг по даних темах , в основному англійською мовою , якщо комусь простіше читати підручники. Після того як ви трохи розберетеся з R , аналізом даних і Machine Learning , можна спробувати виконати навчальні завдання на Kaggle . Наприклад , спробувати передбачити виживаність пасажирів Титаніка , розпізнати рукописні цифри або передбачити попит на оренду велосипедів у місті. Конференція AI Ukraine 2014 Якщо ви дочитали статтю до цього місця , то ви, мабуть зацікавилися темою :) У зв'язку з цим запрошую вас на конференцію AI Ukraine 2014 , де буде набагато більше прикладів використання Data Science і Machine Learning в реальних проектах. Я відповідаю за складання програми конференції і можу сказати , що ми постаралися знайти і відібрати найцікавіші доповіді, які покривають різні галузі ІІ . Розклад конференції , інфо про кожній доповіді та доповідачів , а також реєстрація - на сайті AI Ukraine 2014 . Для цього достатньо клікнути на доповіді в програмі . Всі новини конференції публікуються на нашій сторінці в Facebook. Для користувачів DOU діє знижка 5 % по промокодом DOU . На завершення хочеться сказати , що це перша масштабна конференція , присвячена застосуванню різних алгоритмів штучного інтелекту в Харкові, і одна з перших в Україні . Тут будуть цікаві доповіді на будь-який смак . Не пропустіть її !
P.S . Якщо ви зацікавилися Data Science і Machine Learning - напишіть у коментарях , які теми були б вам цікаві, і ми з колегами постараємося розповісти про них .
Опубліковано: 30/09/14 @ 06:40
Розділ Різне
Рекомендуємо:
6 жовтня, Київ - Одноденний семінар « Сегментація клієнтів по товарних перевагам » від експерта в області Machine Learning
Швидка веб - розробка з NReco
Дайджест : зарплати топ - менеджерів , фільм " Сегалович " , війна і хайтек , що не можна говорити при звільненні
Дайджест цікавих вакансій № 155
29 вересня, Київ - Курс " Mobile testing "