Увійти в машинне навчання: 5 кроків, які зроблять з тебе профі

Привіт і Слава Україні!

Мене звати Богдан Питайчук, і я CIO AI HOUSE. Активно працюю в індустрії AI протягом п’яти років. За цей період отримав досвід роботи і в аутсорсингових компаніях, і в продуктових стартапах. При цьому я не лише реалізовував технічну частину, але й багато комунікував з власниками бізнесів — під час проєктної роботи та на фазі продажу послуги розробки ML.

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

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

І тому вже зараз я вирішив підготувати матеріал-підказку всім, хто хоче пов’язати життя з машинним навчанням.

Крок 1: починай з бази

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

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

Вона надасть розуміння, що насправді стоїть за детермінантом, чим допомагає зміна базису, та як геометрично виглядає правило Крамера.

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

Крок 2: обери свою вертикаль

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

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

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

Хороша компанія обов’язково запитає тебе:

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

Краще підготуйся до таких питань заздалегідь :)

Поекспериментуй з генерацією зображень і відео. Раджу спробувати згенерувати твій перший AI Art. Отримай «вау» ефект і дізнайся, яким же чином нейронна мережа з тексту створює артворк.

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

У тебе може виникнути бажання перейти до створення розмовних чатботів, але раджу глибоко в цю тему не занурюватись. Задача створення саме якісного продукту дуже складна. Тому дотримуйся принципу KISS у виборі твоїх перших NLP проєктів.

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

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

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

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

Якщо твоєю ціллю є отримання оферу протягом 4-6 місяців, раджу тримати фокус на проєктах, використовуючи один тип даних. Таким чином ти швидше виростеш до рівня дійсно гарного спеціаліста саме цієї вертикалі. І це стане твоєю перевагою.

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

Але ти вже робитимеш це спокійніше, адже залендив першу роботу з ML.

Крок 3: слідкуй за трендами

Однією зі специфік індустрії ML є систематичні релізи свіжих пейперів та алгоритмів. І, власне, швидка інтеграція нового підходу може надати бажаної цінності продукту або бізнесу. Ти ж завжди пам’ятаєш про те, що йому потрібно, чи не так (див. Крок 5)? А «вау» ефект від свіжого підходу, який ти знайшов та запропонував, зможе вивести бізнес на якісно новий рівень.

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

Наш власний канал в Телеґрамі, де ми ділимося найактуальнішими новинами та розробками зі світу AI/ML. Пишемо легко й коротко. Також слідкуй за анонсами курсів, івентів та оглядів актуальних пейперів, які ми будемо проводити.

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

  • Twitter

Раджу налаштувати свій твіттер таким чином, щоб увесь контент був ML-related. Мій особистий улюблений аккаунт — ak92501. Тут постійно постять нові пейпери, які потрапляють у загальні новини аж за декілька тижнів після цього.

Також раджу підписатися на наступні сторінки:
svpino
slashML
omarsar0
marktenenholtz

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

Arxiv-sanity — ресурс, куди потрапляють лише найактуальніші та найбільш якісні роботи. Це свого роду фільтр найкращих пейперів, які публікуються на основному джерелі новинок індустрії — Arxiv.org.

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

А нещодавно систему Arxiv-sanity було повністю переписано, внаслідок чого з’явився ресурс Arxiv-sanity-lite.

Крок 4: став запитання та розвивай продуктове мислення

Наступна історія сталася на території Starbase — простору, де компанія Ілона Маска SpaceX будує ракети майбутнього. Під час екскурсії по заводу журналісти запитали одного зі співробітників, чим він займався.

Співробітник: Створюю деталі корпусу з неіржавної сталі.

Журналіст: А чому саме цей матеріал?

Співробітник: Я поясню. Місія компанії — зробити людство міжпланетарним видом.
А для цього потрібні регулярні польоти на Марс. Задля їх забезпечення ми маємо виробляти літальні пристрої, спроможні витримувати велику кількість космічних рейсів. Польоти своєю чергою мають бути доступними, а значить, виробництво — недорогим.

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

Якби журналісти запитали будь-кого з 12 тисяч співробітників SpaceX, то почули б схожу історію. А все тому, що співробітники мають розуміти на глибокому рівні те, як працює компанія.

Цінного ML спеціаліста відрізняє розуміння не лише алгоритмів, але й бізнесу загалом. Недостатньо просто реалізовувати функціонал. У справжнього професіонала цей функціонал впливає на зростання прибутку компанії.

Талановитий ML спеціаліст мислить наступними категоріями:

  • Що насправді потрібно компанії, де я працюю?
    Відповідь: збільшення прибутку.
  • Як я можу цього досягнути?
    Відповідь: створення нових потоків кешу, а також оптимізація тих, що існують.
  • Яка у компанії бізнес-модель? Які існують грошові потоки зараз?
    Розібратися в цих питаннях до молекул — одне з головних завдань ML профі.
  • Який з цих процесів можна оптимізувати ML механікою? Який — замінити?
    Для цього потрібно якомога швидше почати збирати дані.
  • Чи вийшов нещодавно новий алгоритм, інтеграція якого принесе прибуток компанії?
    Див. Крок 3
  • Я зараз вирішую біль чи створюю функціонал, який ні нащо не вплине?

Крок 5: все успішне починається з малого

Створення ML функціоналу є доволі довгим процесом. Спочатку потрібно зібрати дані (часто їх немає взагалі). Потім — обробити, проаналізувати і трансформувати їх. І нарешті будувати декілька варіацій алгоритмів та архітектур, валідувати якість їх роботи, вибрати кращу. Повторювати даний процес знову і знову, поки не буде досягнуто потрібного результату.

... Чи все ж таки можна інакше?

А якщо ти — на хакатоні й у тебе є лише 48 годин на виконання цього функціоналу?
Або за два тижні реліз продукту і тобі потрібно створити щось не ідеальне, проте робоче? Що ти робитимеш?

Перед створенням будь-якого функціоналу, роби наступний рісьорч:

  • Чи існують уже готові рішення цієї проблеми?
  • Чи можна застосувати підхід zero shot learning до цієї задачі? Яку саме якість він показує?
  • Чи є вже натреновані нейронні мережі, до яких можна застосувати процес fine-tuning на твоїх даних?
  • Якщо даних немає, де їх можна взяти? Чи існують ресурси, з яких можна витягнути необхідну інформацію через scraping?

❗️ До речі. Нещодавно суд США постановив: вся інформація, що публічно знаходиться в мережі інтернет, є вільною для збирання.

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

Отже

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

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

Успіхів!

Сподобалась стаття? Натискай «Подобається» внизу. Це допоможе автору виграти подарунок у програмі #ПишуНаDOU

👍ПодобаєтьсяСподобалось30
До обраногоВ обраному13
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Зі збору кількох десятків тисяч знятих з дрону зображень воєнної техніки, а потім — розмітки цих зображень.
А спец то діло наживне :)

Так само як і будь-якого іншого спеціаліста, благо варіант «прошити знання прямо в моск» ще не розробили.
Оптимально — взяти готового спеца :)

Ігор привіт!

Спеціаліст AI тексту потенційно також зможе виконати цю задачу. Проте часу на це піде в рази більше :)

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

Дана експертиза є доволі унікальною, тому вам дуже пощастить знайти спеціаліста з подібним досвідом.
Якщо не пощастить, то найкраща порада — Just Do It.
За допомогою гугла, онлайн туторіалів та можливості тестувати функціонал на прикладному рівні (якщо є дрон під рукою з яким можна працювати)
Хороший спеціаліст не потребує детального step-by-step процессу.
Він створить його сам та заделіверить результат.

Хей мен!
Дякую за чудову статтю. Чесно кажучи я такої топової не знаходив навіть на західних ресурсах. Бомба.
Скажи пліз, котра математика потрібна для роботи з текстом?
Дякую.

Артем привіт!
Дякую тобі, радий отримату таку високу оцінку

Все залежить від задачі, яку ти будеш виконувати.
Рекомендація нових товарів в залежності від їх опису?
Парсинг тексту на певні морфологічні одиниці?
Отримання скороченого варіанту багатьох сторінок тексту?
Генерація нових полідовностей?

Загальна відповідь — вивчи основи лінійної алгебри й теорії ймовірності.
Також раджу самому з нуля написати популярні нейронні архітектури (MLP, LSTM, Transformer)
Це дасть інтуіцію того, як працює під капотом backprop. А також особливості роботи з матрицями (тензорами).

Проте найкращий варіант — берись за певну ідею/продукт.
Пробуй її реалізувати. Дивися, які знання тобі необхідні для цього. Вчи з нуля або підтягуй вже по ходу створення
І на співбесідах буде що показати ;)

Дякую. Ще точно не вирішив, що подобається. Це точно має бути текст і напевно я буду пробувати різні аспекти роботи з текстом.

А от рекомендація брати ідею та втілювати її — це найкраще навчання, що може бути. Плюс ще якийсь стартап може вийти, лол.

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

Приємно, що матеріал сподобався :)

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

Раджу ще на етапі ідеї добре подумати над останнім пунктом — аби розробка справді допомагала у реальному житті. І резонувала з тобою особисто, щоб ти горів роботою над нею.
Хто зна, можливо все складеться так, що ти розвиватимеш її рішення наступні декілька років ;)

І в твою роботу вирішить проінвестувати компанія або наукова установа (цікаво було б рахувати період піврозпаду в CERN-і, чи не так?)
Або ж ти збереш компанію однодумців і ви створите стартап, який прогримить на увесь світ ;)

Дуже дякую за розгорнуту відповідь, тепер все зрозуміло)

Підписатись на коментарі