Якщо ви розробник, який переходить на наукову інформацію, ось ваші найкращі ресурси

Схоже, всі хочуть бути вченими-даними в наші дні - від аспірантів до аналітиків даних до вашого старого сусіда по службі в коледжі, який тримає Linkedin для обміну повідомленнями, щоб "схопити каву".

Можливо, у вас було те саме, що вам слід хоча б вивчити деякі позиції в галузі наукових даних і подивитися, про що йдеться в шуміху. Можливо, ви бачили статті, як-от "Наука даних Вікі Бойкіс", зараз відрізняються, коли йдеться про:

Зрозумілим стає те, що на пізній стадії циклу ажіотажу наука даних асимптотично наближається до інженерії, а навички, необхідні науковцям даних, рухаються вперед - це менш візуалізація та основана на статистиці, і більше відповідає традиційній інформатиці …:
Такі поняття, як тестування одиниць та безперервна інтеграція, швидко знайшли шлях до жаргону та набору інструментів, які зазвичай використовуються вченим-даними та вченим-числом, який працює над інженерією ML.

або твіти, як-от Тіма Хоппера:

Незрозуміло, як ви можете використовувати свій досвід роботи як програмного інженера на позицію наукових даних. Деякі інші питання у вас можуть бути:

Що я повинен надавати пріоритет навчанню?

Чи є найкращі практики чи інструменти, які відрізняються для науковців із даних?

Чи перейде мій поточний набір навичок на роль науки в галузі даних?

У цій статті ви знайдете інформацію про роль науковця даних і чому ваш фон може бути найкращим придатним для наукових даних, а також відчутні поетапні дії, які ви, як розробник, можете вжити, щоб розширити науку про дані.

Хочете побачити найновіші ролі науки в галузі даних? Підпишіться на інформаційний бюлетень ML Jobs щотижня, щоб відкрити нові робочі місця в науковій службі даних.

Data Scientist та Data Engineer

Спочатку слід розрізнити дві взаємодоповнюючі ролі: Data Scientist та Data Engineer. Хоча обидві ці ролі стосуються моделей машинного навчання, їх взаємодія з цими моделями, а також вимоги та характер роботи для науковців даних та інженерів даних сильно різняться.

Примітка. Роль Інженера даних, спеціалізована для машинного навчання, може також проявлятися в описах завдань як "Інженер програмного забезпечення, машинне навчання" або "Інженери машинного навчання"

У рамках робочого процесу машинного навчання науковець буде виконувати статистичний аналіз, необхідний для визначення, який підхід до машинного навчання використовувати, а потім розпочати прототипування та створення цих моделей.

Інженери машинного навчання часто співпрацюють із науковцями даних до та після цього процесу моделювання: (1) побудувати трубопроводи даних для подачі даних у ці моделі та (2) розробити інженерну систему, яка буде обслуговувати ці моделі для забезпечення постійного здоров’я моделі.

Наведена нижче схема - це один із способів переглянути цей континуум навичок:

Існує велика кількість інтернет-ресурсів про різницю між Data Scientist та Data Engineers - переконайтеся, що це:

  • Панорамно: Яка різниця між інженером даних та науковцем даних?
  • Трамплін: Інженер машинного навчання проти даних
  • O’Reilly: Інженери даних проти науковців

Як відмова від відповідальності, ця стаття в першу чергу охоплює роль Data Scientist з деяким киванням на сторону машинного навчання (особливо актуально, якщо ви шукаєте позицію в меншій компанії, де вам, можливо, доведеться виконувати функції обох). Якщо вам цікаво побачити, як ви можете перейти до роботи з інженером даних або інженером машинного навчання, повідомте нас у коментарях нижче!

Ваша перевага як розробника

На шкоду усім, заняття навколо машинного навчання, такі як "Вступ до наукових даних в Python" або курс Ендрю Нґа, не охоплюють поняття та найкращі практики з інженерії програмного забезпечення, такі як тестування одиниць, написання модульного коду для багаторазового використання, CI / CD або управління версіями. Навіть деякі найбільш передові команди машинного навчання все ще не використовують ці практики для свого машинного коду навчання, що призводить до тривожної тенденції ...

Піт Уорден описав цю тенденцію як «кризу машинного навчання відтворюваності»:

ми все ще повертаємося в темну епоху, коли йдеться про відстеження змін та відновлення моделей з нуля. Це так погано, що іноді здається, що відступаєш у часі, коли ми кодуємось без контролю джерела.

Хоча ви, можливо, не бачите цих навичок «інженерії програмного забезпечення», чітко зазначених в описах завдань вченого, але добре розуміння цих навичок як частина вашого досвіду вже допоможе 10-кратній вашій роботі в якості даних. Крім того, вони стануть у користуванні, коли настане час відповісти на ці питання програмування під час інтерв'ю з інформацією про дані.

З цікавої точки зору з іншого боку, ознайомтеся з твором Трей Касі на тему «Навички розробки програмного забезпечення для науковців даних» про навички, які він рекомендує вченим з даних повинні навчитися «писати кращий код, краще взаємодіяти з розробниками програмного забезпечення та, в кінцевому рахунку, заощадити час та головні болі ».

Розгортання науки про дані

Чудово, що ви маєте добру основу на основі свого програмного забезпечення, але який наступний крок до того, щоб стати науковцем? Джош Уілль, що цікавий твіт про визначення науковця даних, напрочуд точний:

Він натякає на одну з тем, яку ви повинні зайняти, якщо ви зацікавлені у виконанні ролі чи кар’єри вченого: статистики. У цьому наступному розділі ми розглянемо великі ресурси для:

  • Побудова знань, пов'язаних з ML
  • Будівництво галузевих знань
  • Інструменти в стеку ML
  • Навички та кваліфікація

Побудова знань, пов'язаних з ML

Найбільш ефективно побудувати комбінацію теоретичних знань щодо ймовірності та статистики, а також прикладних навичок у таких речах, як моделі складання даних або навчальні моделі на GPU / розподіленому обчисленні.

Один із способів обрамлення знань, які ви здобуваєте, - це посилання їх на робочий процес машинного навчання.

Спрощений вигляд робочого процесу машинного навчання
Дивіться цей детальний робочий процес від Skymind AI

Тут ми перераховуємо деякі найкращі ресурси, які ви можете знайти навколо машинного навчання. Було б неможливо скласти вичерпний список та заощадити простір (і час для читання), ми не згадали про дуже популярні ресурси, наприклад, курс Курсу Ендрю Нґ або Кагл.

Курси:

  • Fast.ai MOOC (безкоштовні курси, які викладають дуже прикладні навички в практичному глибокому навчанні для кодерів, різкому глибокому навчанні для кодерів, обчислювальної лінійної алгебри та вступу до машинного навчання для кодерів)
  • Академія хана
  • 3Blue1Видобраний та математичниймонтажний канал youtube
  • Курси Udacity (включаючи попередню обробку для машинного навчання на Python)
  • Спеціальна доріжка AI / ML для трампліну

Підручники: * намагався знайти безкоштовні PDF-файли в Інтернеті для більшості з них *

  • Імовірнісне програмування та байєсівські методи для хакерів
  • Ймовірність та випадкові процеси
  • Елементи статистичного навчання
  • Лінійна алгебра зроблена справа
  • Вступ до лінійної алгебри
  • Дизайн алгоритму

Посібники:

  • Посібник з машинного навчання розробників Google
  • Навчальні майстерності з машинного навчання (для хорошої відправної точки дивіться цей міні-курс про машинне навчання Python)
  • Pyimagesearch (для комп'ютерного зору)

Зустрічі: * в основному на NYC *

  • Роботи, які ми любимо
  • Нью-Йорк Штучний інтелект та машинне навчання
  • DataCouncil.ai
  • NY Штучний інтелект
Для початкової точки зору ознайомтеся з "Майстрами машинного навчання з відкритим кодом" Вольфа про те, як ви можете структурувати свій час на вивчення конкретних тем та роботу над проектами, щоб продемонструвати досвід у віддаленому віддаленому місці.

Побудова знань для галузей

Якщо у вас є думка про те, що ви хотіли б бути конкретною галуззю, як охорона здоров'я, фінансові послуги, товари народного споживання, роздрібна торгівля тощо ..., це неоціненно наздогнати точки болю та розвиток цієї галузі, оскільки це стосується даних та машини навчання.

Один із підказок = ви можете сканувати веб-сайти для запуску AI, орієнтованих на вертикаль, і бачити, як вони позиціонують свою ціннісну пропозицію та де грає машинне навчання. Це дасть вам ідеї щодо конкретних областей машинного навчання та вивчення проектів для демонстрації вашої роботи.

Ми можемо проаналізувати приклад: скажімо, мені цікаво працювати в галузі охорони здоров’я.

  1. Швидкий пошук в Google за "машинним навчанням охорони здоров'я" знайшов цей список із Healthcareweekly.com на темі "Найкращі стартапи охорони здоров’я, на які слід спостерігати у 2019 році"
Ви також можете здійснити швидкий пошук на Crunchbase або AngelList, використовуючи ключові слова "охорони здоров'я"

2. Візьмемо для прикладу одну з компаній, включену до списку, BenevolentAI.

3. На веб-сайті BenevolentAI зазначено:

Ми - компанія AI, яка має цілісні можливості від раннього виявлення ліків до клінічної розробки на пізній стадії. BenevolentAI поєднує в собі потужність обчислювальної медицини та сучасного ШІ з принципами відкритих систем та хмарних обчислень, щоб перетворити спосіб розробки, розробки, тестування та виведення лікарських засобів на ринок.
Ми побудували благотворну платформу, щоб краще зрозуміти хвороби та розробити нові та вдосконалити існуючі методи лікування з величезної кількості біомедичної інформації. Ми вважаємо, що наша технологія дає змогу вченим розробляти ліки швидше та економічно ефективніше.
Новий дослідницький документ публікується кожні 30 секунд, проте вчені зараз використовують лише частину наявних знань, щоб зрозуміти причину захворювання та запропонувати нові методи лікування. Наша платформа приймає, «читає» та контекстуює величезну кількість інформації, яка береться з письмових документів, баз даних та експериментальних результатів. Він здатний зробити нескінченно більше відрахувань і висновків через ці різні, складні джерела даних, виявляючи та створюючи взаємозв'язки, тенденції та закономірності, які людині було б неможливо зробити самостійно.

4. Відразу можна побачити, що BenevolentAI використовує природну обробку мови (NLP) і, ймовірно, працює з деякими графіками знань, якщо вони виявляють взаємозв'язок між захворюваннями та дослідженнями лікування

5. Якщо ви переглянете сторінку кар’єри BenevolentAI, ви можете побачити, що вони наймаються на роботу для старшого дослідника машинного навчання. Це старша роль, тому це не ідеальний приклад, але погляньте на навички та кваліфікації, які вони просять нижче:

Примітка:

  • обробка природної мови, висновок графіка знань, активне навчання та біохімічне моделювання
  • структуровані та неструктуровані джерела даних
  • байєсівська модель підходів
  • знання сучасних інструментів для МЛ

Це має дати вам декілька кроків, до яких слід підходити далі:

  • робота зі структурованими даними
  • робота з неструктурованими даними
  • класифікація взаємозв'язків у графіках знань (хороший ресурс див. тут)
  • вивчення байєсівської вірогідності та моделювання підходів
  • робота над проектом NLP (тому текстові дані)

Ми не рекомендуємо звертатися до компаній, яких ви знайдете під час пошуку, а скоріше подивіться, як вони описують больові точки своїх клієнтів, ціннісні пропозиції їхньої компанії та які навички вони перелічують у своїх посадових інструкціях, щоб керувати вашими дослідженнями.

Інструменти в стеку ML

У описі завдання BenevolentAI Senior Machine Learning Research вони просять "знання сучасних інструментів для ML, таких як Tensorflow, PyTorch тощо".

Вивчення цих сучасних інструментів для ML може здатися страшним, оскільки простір завжди змінюється. Щоб розбити процес навчання на керовані частини, не забудьте підкріпити своє мислення навколо машинного навчального процесу зверху - "Який інструмент може допомогти мені у цій частині робочого процесу?"

Щоб побачити, які інструменти супроводжують кожен етап цього робочого процесу машинного навчання, перегляньте "Введення в стек машинного навчання" Роджера Хуанга, який охоплює такі інструменти, як Docker, Comet.ml та dask-ml.

Тактично кажучи, Python і R - найпоширеніші мови програмування, якими користуються вчені, і ви можете зустріти додаткові пакети, призначені для додатків для наукових даних, таких як NumPy і SciPy, і matplotlib. Ці мови інтерпретуються, а не складаються, залишаючи вченим даними можливість зосередитися на проблемі, а не на нюансах мови. Варто вкласти час на вивчення об’єктно-орієнтованого програмування, щоб зрозуміти реалізацію структур даних як класи.

Щоб наздогнати такі рамки ML, як Tensorflow, Keras і PyTorch, переконайтесь, що перегляньте їх документацію та спробуйте впроваджувати їх підручники в кінці.

Зрештою, ви хочете переконатися, що ви розробляєте проекти, які демонструють ці сучасні інструменти для збору та суперечки, управління машинним експериментом та моделювання.

Щоб отримати натхнення для своїх проектів, перегляньте твір Едуарда Гарріса на тему "Проблема холодного старту: як скласти портфель машинного навчання"

Навички та кваліфікація

Ми залишили цей розділ для останнього, оскільки він збирає значну частину інформації з попередніх розділів, але спеціально орієнтований на підготовку інтерв'ю для наукових даних. Під час інтерв'ю вченого даних є шість основних тем:

  1. Кодування
  2. Товар
  3. SQL
  4. A / B тестування
  5. Машинне навчання
  6. Ймовірність (див. Хороше визначення порівняно зі статистикою тут)

Ви помітите, що одна з цих тем не схожа на інші (Продукт). Для позицій науки щодо інформації важливим є повідомлення про технічні концепції та результати, а також про бізнес-метрику та вплив.

Деякі корисні узагальнення питань інтерв'ю з науковими даними:
https://github.com/kojino/120-Data-Science-Interview-Questions
https: //github.com/iamtodor/data-science-interview-questions-and-answers
https://hookedondata.org/red-flags-in-data-science-interviews/
https://medium.com/@XiaohanZeng/i-interviewed-at-five-top-companies-in-silicon-valley-in-five-days-and-luckily-got-five-job-offers-25178cf74e0f

Ви помітите, що ми включили Хукейд до твору Дані на тему "Червоні прапори в інтерв'ю з науковими даними" - під час інтерв'ю для ролей ви натрапите на компанії, які все ще створюють свою інфраструктуру даних або, можливо, не мають чіткого розуміння того, як їхня команда з наукових даних вписується в більшу цінність компанії.

Ці компанії, можливо, все ще піднімають цю ієрархію потреб нижче.

Популярна AI Ієрархія потреб від Моніки Рогаті

Для деяких очікувань щодо інтерв'ю з науковими даними я рекомендую прочитати твір Тіма Хоппера на тему "Деякі роздуми про те, як відмовитись на багатьох роботах з наукових даних".

Дякуємо за прочитане! Ми сподіваємось, що цей посібник допоможе вам зрозуміти, чи є наука про дані кар’єри, яку ви повинні розглянути, і як розпочати цю подорож!

Хочете побачити найновіші ролі науки в галузі даних? Підпишіться на інформаційний бюлетень ML Jobs щотижня, щоб відкрити нові робочі місця в науковій службі даних: