Машинное обучение: материалы для начинающих специалистов
Машинное обучение — одно из самых перспективных направлений IT. По некоторым прогнозам, мировой рынок Machine Learning к 2027 году вырастет до $117,19 млрд (а еще в 2019 году он составлял только $8,43 млрд). Специалисты по машинному обучению становятся все более востребованными, так что, если вы подумываете об IT-карьере или уже ее строите, ML может стать неплохим вариантом. А чтобы вам было легче на первых порах, T&P попросили экспертов отрасли посоветовать материалы для начинающих специалистов.
Никита Учителев
Руководитель группы машинного обучения и анализа данных, Яндекс Маркет
Если начинающий специалист сможет разобраться хотя бы с половиной каждой из этих книг, он точно справится с большинством современных прикладных задач.
Книги
The Elements Of Statistical Learning
Trevor Hastie
Издательство: Springer, 2009
Справочник по большинству классических методов и алгоритмов машинного обучения на английском языке. Давно стал для меня настольной книгой на работе, раз в пару месяцев заглядываю и освежаю в памяти какие-то детали. Интересно еще следить за ходом мысли — какой метод из какого вытекает. Это помогает понять, зачем вообще его использовать.
«Создаем нейронную сеть»
Тарик Рашид
Издательство: «Вильямс», 2017
Предыдущая книга посвящена классическим методам, а вот изучение нейросетевых технологий, на мой взгляд, лучше всего начинать с этой. Здесь много наглядных материалов на тему того, как работают конкретные архитектуры сетей, а еще понятно излагаются базовые принципы, которые закладывались в эту технологию. Вывести их самому, по примерам в открытом доступе, довольно сложно.
Quantifying The User Experience
Jeff Sauro
Издательство: Morgan Kaufmann, 2012
Неплохая книга про метрики и продукт. Когда вы получаете практический опыт обучения ML-моделей, техническая составляющая постепенно отходит на второй план. В фокусе оказывается анализ различных метрик, которые меняются под действием продуктов на основе этих моделей. Советую начать разбираться с этими процессами как можно раньше: они часто бывают такими же сложными, как и разработка самих моделей.
«Конечномерные векторные пространства»
Пол Халмош
Издательство: Государственное издательство физико-математической литературы, 1963
Необычная рекомендация, во время учебы в МФТИ читал эту книгу как сборник стихов. Написано и переведено очень интересным языком — пример того, как в математике нужно формулировать мысли и причинно-следственные связи. Учит, на мой взгляд, именно этому. А еще корректирует структуру мыслительного процесса, будет полезна многим и вообще читается как учебник по черной магии.
Валерий Лобанов
Data Scientist, специалист в области динамического ценообразования, Spacecode
В ML нужно начинать не только с теории и практики. Важно попутно заполнять пробелы в знаниях математики.
Курсы
Курс лекций «Машинное обучение», Соколов Е. А.
На мой взгляд, нет ничего лучше для освоения базового курса ML. Много информации в максимально понятном формате как по классическому ML (github), так и по DL (github) с разбором реальных приложений.
Репозиторий ШАД Яндекса
Загляните сюда, если предыдущий курс покажется легким. Здесь есть отдельные материалы по каждой области DS.
«Байесовские методы машинного обучения», Ветров Д. П.
Курс лекций, который отлично подходит для расширения кругозора.
Книги и статьи
«Глубокое обучение. Погружение в мир нейронных сетей»
Николенко С. И.
Издательство: «Питер», 2019
Отличная книга, чтобы узнать о ML в целом. За последние годы она уже стала классикой по ML на русском языке, читается легко — почти как художественная.
«Вероятность. В 2 книгах. Книга 1»
Ширяев А. Н.
Издательство: МЦНМО, 2021
Поможет освежить математическую базу, а лекторий ФПМИ заполнит пробелы в других областях.
«Компьютерный анализ данных: теория обучения машин»
Червоненкис А. Я.
Издательство: «Яндекс», 2009
Немного устаревшая, но классическая книга одного из основателей советской школы ML. Подходит для расширения кругозора.
Статьи на arxiv, paperswithcode и т. д.
Для тех, кто разобрался с предыдущими материалами и все понял.
Татьяна Савельева
CEO, Yandex SupportAI
Хорошо бы «заботать» фундамент, понять базовые вещи, а потом читать статьи, которые вышли за последний месяц. В сфере глубокого обучения все меняется примерно каждые полгода. Здесь нужно выучить ствол дерева и ветви, а листья постоянно обновлять, руководствуясь любопытством и пользой для конкретных задач.
Курсы
Курс лекций, Воронцов К. В.
Фундаментальная штука, создает очень хорошую базу с понятной аксиоматикой и очень строгими выводами.
Книги
«Думай медленно… решай быстро»
Даниэль Канеман
Издательство: «АСТ», 2021
Перед тем как разбираться с искусственным мозгом, стоит разобраться со своим и начать с себя.
«Глубокое обучение»
Ян Гудфеллоу
Издательство: «ДМК Пресс», 2017
Это хардкор, для тех, кто хочет разобраться в глубинах.
Константин Гаврильчик
Руководитель двух команд машинного обучения «Модерация» и «Десант», ЦИАН
Курсы
Deep Learning course at Skoltech / Yandex School of Data Analysis
Поставил слеш, потому что это почти один и тот же курс от одних и тех же экспертов. Домашние задания курса подходят новичкам, но будут полезны даже middle-специалистам. Позволяют понять, как DL работает на низком уровне, а не на уровне формул и черных ящиков-фреймворков.
Deep Learning Specialization, Andrew Ng
Серия лекций, автор хорошо объясняет на пальцах. Отлично помогают понять, что вообще происходит в тех или иных задачах и областях. Несколько лет назад я читал оригинальные статьи по Contrastive Loss, Triplet Loss, ArcFace, когда пытался разобраться с Metric Learning, но упорно не понимал, о чем вообще идет речь. Эти лекции очень пригодились, и статьи пошли намного легче!
Книги
«Математическая статистика»
Натан А. А., Горбачев О. Г., Гуз С. А.
Издательство: «МЗ Пресс», 2005
Думаю, далеко не лучшая книга по статам, не самая простая, но в свое время она очень помогла мне на одном из курсов Физтеха.
«Алгоритмы: построение и анализ»
Автор: Т. Кормен
Издательство: «Вильямс», 2021
Мне эта книга помогла научиться по-другому мыслить и, соответственно, писать намного более эффективный код в реальных продакшен-системах. На моей практике за последний год даже несколько раз пришлось имплементировать достаточно нетривиальные алгоритмы на графах.
Помимо всего прочего, я бы рекомендовал просто читать статьи. Сегодня уже можно найти огромное количество классических материалов. Конечно, чтобы в них разобраться, нужно иметь неплохую математическую базу, но тем не менее это позволяет намного больше узнать об ML. А еще иногда полезно почитать исходники кода популярных библиотек: xgb, lgb, тот же sklearn, — открывает много нового. Правда, это уже вряд ли подойдет новичкам.
Глеб Ершов
Senior Data Analyst, AliExpress Russia
Начинающим специалистам я бы советовал планомерно разбираться в теории и параллельно смотреть какие-то практические вещи.
Курсы
«Deep Learning на пальцах»
Лекции, которые читают магистрантам НГУ и студентам CS центра Новосибирска.
«Прикладная статистика»
Курс лектора НИУ ВШЭ Филиппа Ульянкина на GitHub.
Книги
«Математическая статистика»
Чернова Н. И.
Издательство: Новосибирский государственный университет, 2007
Это то, что точно стоит почитать из множества хороших учебников по статистике.
«Теория вероятностей»
Боровков А. А.
Издательство: URSS, 2021
А эту книгу я бы порекомендовал, если с мат. аппаратом уже все хорошо. Как мерило собственных знаний можно использовать вот эту шпаргалку: желательно понимать все, что там написано.
Когда вам окончательно станет понятно, что такое лосс-функция, можно начать разбираться, как работают нейронки, например. Есть очень понятная методичка по их основным принципам от того же Филиппа Ульянкина. А дальше читайте «Глубокое обучение. Погружение в мир нейронных сетей» Николенко и «Глубокое обучение» Гудфеллоу. Последнюю скромно называют Библией нейронных сетей.
Екатерина Малышева
Senior Data Scientist, S7 TechLab
Список материалов отсортирован от простых к сложным — как я бы сама изучала.
Курсы
Специализация «Машинное обучение и анализ данных» от МФТИ и Яндекса
Вводный курс машинному обучению и анализу данных от МФТИ и Яндекса с примерами из бизнеса. Все материалы есть на GitHub.
Курс лекций «Машинное обучение», Соколов Е. А.
Хорошая основа для прохождения собеседований.
Samsung Research Russia Open Education
Несложные курсы от Samsung по CV и NLP на Stepik. Много практики, приятно проходить. Рекомендую «Нейронные сети и компьютерное зрение» и «Нейронные сети и обработка текста».
Курс лекций «Машинное обучение», Воронцов К. В.
Зубодробительные, но очень полезные лекции Воронцова по статистическим тестам. Подходят для более глубокого погружения в тему и изучения не только стандартных методов.
Книги и статьи
Блог Александра Дьяконова
Полезные статьи с более детальным погружением в отдельные темы. Советую читать после курсов Соколова. А потом можно приступить к «Глубокому обучению» Гудфеллоу — книге об основах машинки и глубокого обучения. Хорошо подходит для плавного вкатывания в DL.