Мене звати Ольга Мажара. Я викладаю «Штучний інтелект» в КПІ ім. Ігоря Сікорського і є Senior Java розробницею в Intellias. Колись я вчилася в КПІ на теплоенергетичному факультеті за спеціальністю “програміст”. У той далекий час Data Science і ML не були мейнстримом і вивчалися фрагментарно в рамках інших курсів, таких як штучний інтелект або математичні методи.
Пізніше, після закінчення аспірантури, я викладала машинне навчання на цій же кафедрі. Паралельно працювала в Samsung R&D Institute Ukraine. Багато кухонних розмов на роботі були присвячені підходам до вивчення Data Science. Мені було цікаво порівнювати думка колег і студентів.
Зараз я викладаю на ФІОТ основи штучного інтелекту. Сьогодні Data Science і Machine Learning стали доволі популярними - чверть дисциплін і половина дипломних робіт на курсі присвячені цьому напрямку. Однак, якщо раніше була проблема в нестачі інформації, зараз є запит на структуризацію і допомогу у виборі курсу, який дасть необхідний для роботи мінімум навичок. Ця стаття написана для тих, хто хоче спробувати себе в Data Science і машинному навчанні, але не знає, з чого почати і які знання для цього потрібні.
Що таке Data Science і Machine Learning
Перш ніж говорити про навчання, почнемо з розбору термінології. Data Science - це загальна назва дисциплін з вивчення даних, а Machine Learning - це підрозділ Data Science, яке займається побудовою розумних моделей. Такі моделі можуть використовуватися для передбачення покупки товару користувачем, рекомендацій в соцмережах (рекомендаційні системи), розпізнавання зображень тощо.
Data Science фахівці займаються дослідженнями. В іноземних компаніях такій посаді відповідають позиції research-інженерів - це здебільшого математики, які працюють з теоретичною частиною алгоритмів і досліджують різноманітні закономірності. Machine Learning інженери зі свого боку займаються побудовою моделей на основі отриманих даних. Але такий поділ існує лише в теорії або ж тільки в деяких країнах. В Україні Data Science і Machine Learning раніше використовувалися як слова-синоніми, зараз же ці поняття вже починають розділяти. У наших реаліях вакансії, де необхідне знання Machine Learning, найчастіше називаються Data Scientist і навпаки. Тому, якщо ви хочете працювати з даними, вам слід вивчити і те, і інше.
Процес навчання Data Science і Machine Learning можна розбити на п'ять блоків:
- Математика
- Мова програмування
- Алгоритми машинного навчання
- Deep Learning
- Окремі спеціалізації
Розгляньмо кожен з них більш детально.
- Математика
Для початку розберімося, чи потрібна взагалі математика в роботі з Data Science і Machine Learning. Коротка відповідь - так, потрібна. Безумовно, є багато прикладів того, як успішні Data Scientists займають призові місця на Кaggle-змаганнях, не маючи при цьому технічної освіти. Але навіть вони погодяться, що знання математики дає значну перевагу в роботі з Data Science. Незважаючи на те, що майже всі алгоритми реалізуються в бібліотеках Python і R, розуміння базових математичних концепцій значно спростить ваше навчання і виконання прикладних завдань. Крім того, в більшості статей про машинному навчанні містяться математичні викладки, читати які без знань математики буде важко.
Для успішної роботи мінімально потрібно розуміти три розділи математики: Основи лінійної алгебри, основи математичного аналізу (інтегрування, похідні і приватні похідні) та основи теорії ймовірностей і математична статистика.
- Мова програмування
Для роботи з даними ви повинні вміти програмувати. Наприклад, щоб завантажити дані, розпарсити, синтезувати нові ознаки або втілити в життя будь-яку іншу вашу ідею. Основною мовою програмування більшості Data Science фахівців є Python. Python сам по собі дуже проста мова, в ньому реалізовано безліч бібліотек для обробки і аналізу даних. Популярні раніше R і Matlab сьогодні зустрічаються все рідше і рідше, тому, якщо ви тільки починаєте освоювати Data Science, зосередьтеся на вивченні Python.
- Базові алгоритми машинного навчання
Для того, щоб почати свій професійний шлях в машинному навчанні, вам необхідно знати основні класи задач Machine Learning, які існують алгоритми і які підходи дозволяють вирішити той чи інший клас задач. Ви також повинні розрізняти алгоритми різних спеціалізацій, розуміти їх переваги та недоліки. На Coursera є хороший курс з легкою і наочною подачею матеріалу, який допоможе розібратися у всіх цих аспектах. Незважаючи на те, що в цьому курсі використовується Octave, а не Python, вам варто його пройти. Тут ви вивчите основи і принципи машинного навчання, а також отримаєте необхідні знання з лінійної алгебри. Курс не вимагає будь-якої попередньої підготовки і підходить всім, хто збирається вивчати Data Science.
Теоретична частина курсів на Coursera безкоштовна, а практична - платна. Але, якщо у вас немає можливості заплатити за практику, ви можете пошукати рішення інших студентів і фахівців на GitHub. Крім того, є різні спеціалізовані курси від університетів - Стенфорда, Гарварда, Мічигану, Університету Дюка та інших.
Також не забувайте, що машинне навчання - практична дисципліна, тому дуже важливо застосовувати отримані знання на реальних даних. Візьміть за правило заходити на Kaggle - це платформа для змагань з Data Science. Тут ви знайдете безліч датасетів, на яких зможете розібрати рішення інших учасників і попрактикувати свої аналітичні навички. І з часом зможете спробувати щастя в якомусь відкритому конкурсі.
- Deep Learning
Маючи базове розуміння принципів машинного навчання і знання Python, можна приступити до вивчення Deep Learning. Це один з розділів машинного навчання, в основі якого лежить використання нейронних мереж. Тут я рекомендую до вивчення курс Deep Learning Specialization.
- Окремі спеціалізації
Окремі спеціалізації в машинному навчанні можна проходити, коли ви вивчили матеріали 1-3 блоків і вирішили кілька прикладних кейсів. Якщо підсумувати, ваше навчання може виглядати так:
Що повинен знати Data Scientist
Чи складно вивчити Data Science
Все залежить від вашого бекграунду і менталітету. З добре розвиненими аналітичними здібностями і знанням математики ваш шлях в Data Science буде доволі простим. Якщо ви на даний момент вчитеся в школі чи в університеті, намагайтеся брати участь в математичних олімпіадах. Вони допоможуть сформувати базис аналітичного мислення і значно полегшать освоєння професії в майбутньому.
Якщо ж ви вирішили перейти в Data Science з іншої сфери, я б рекомендувала вирішувати практичні завдання на Kaggle. Вирішуйте їх самостійно, розбирайте рішення інших людей - все це допомагає розвивати логіку та аналітику. Зверніть увагу на блоги різних Data Scientists, YouTube-канали з розбором і описом того, як вони будували модель, яку логіку вкладали в рішення.
Крім того, у вільному доступі є багато даних, на яких можна практикуватися. Візьміть, наприклад, статистику по захворюваності COVID-19 і спробуйте знайти закономірності (такий конкурс недавно проводили на Kaggle). Ви можете подивитися на чужі гарні рішення, розібрати логіку і поступово покращувати свої знання алгоритмів. При постійній практиці і наявності аналітичного мислення, дуже скоро ви почнете робити перші успіхи в Data Science.
Що почитати
Хоча профільна література може допомогти у вашому навчанні, не забувайте, що технології розвиваються дуже швидко, а інформація в книгах стає застарілою. Для успіху в Data Science важлива практика, розуміння предметної області, завдань та інструментів, якими ви володієте. І все ж раджу почитати:
1. Hands-on Machine Learning with Scikit-Learn and TensorFlow;
2. Deep Learning (Adaptive Computation and Machine Learning series);
3. arXiv - ресурс з науковими статтями не тільки по Machine Learning, але і по інших наук, в тому числі і фундаментальним.