Это случилось: в русском переводе вышла самая объемная из когда-либо издававшихся книг по машинному и глубокому обучению. "Machine Learning with PyTorch and Scikit-Learn" Себастьяна Рашки и его соавторов — это огромное, почти на 800 страниц, руководство по практическому применению Python в сфере Data Science. Книга изначально планировалась как 4-е издание "Python Machine Learning", но из-за множества изменений авторы решили выпустить его под новым названием. Ввиду достаточно высокой цены книги, вам пригодится наш промокод SSPSOFT для покупки со скидкой 25% на сайте издательства БХВ.

***

Напомним, недавно мы делали рецензию на еще одну новую книгу по Machine Learning. «Обработка данных на Python. Data Wrangling и Data Quality» — также переводное издание, в котором много внимания уделяется оценке качества данных. Поэтому может служить хорошим дополнением к той книге, что рассматриваем сегодня.

Для кого эта книга и как ее рекомендуется использовать

Начнем с того, что авторы позиционируют книгу, как «большое универсальное пособие», которое подойдет как начинающим дата-сайентистам, включая слушателей ИТ-курсов, так и опытным экспертам в ML и DL (Machine Learning & Deep Learning). Считается, что первые найдут в ней фундаментальные концепции и пошаговые инструкции, а вторые станут использовать книгу как справочник, куда будут периодически заглядывать в поиске ответов по теории и инструментарию ML и DL, а также другим концепциям анализа и обработки данных, которые ими еще недостаточно освоены.

Чтобы купить книгу «Машинное обучение с PyTorch и Scikit-Learn» и любую другую компьютерную литературу со скидкой 25% на сайте издательства БХВ, введите промокод SSPSOFT как подарок от наше��о блога для читателей Хабра. 

На первый взгляд, такое «универсальное» позиционирование выглядит как маркетинговый посыл, чтобы книгу больше покупали. Ведь главный вопрос читателей — как рационально осилить почти 800 страниц, не бросив эту затею и не сойдя с дистанции? Покопавшись в интернете, мы нашли на Амазон полезный совет от читателя Richard Hackathorn по использованию знаний из книги, и этот совет нам кажется довольно толковым и рациональным. Поэтому о нем и расскажем.
Итак, действительно существует как минимум два способа использования этой книги:

Для экспертов в области ML и DL

Для экспертов в области машинного обучения — это справочник, который стоит иметь в своей библиотеке, чтобы углубиться в интересующие вас или ранее не изученные разделы.Как справочник, эта книга также подходит, если вы ориентированы на TensorFlow, но хотите расширить свои знания, освоив передовые модели и инструменты, закодированные в PyTorch. Концепции, обсуждаемые в книге, подкреплены примерами кода и имеют ссылки на источники.

Для новичков в области машинного обучения

Для новичков в машинном обучении — это учебник для пошагового разбора и практики, а не просто чтения. Отведите на его изучение значительный период времени, пусть это будет даже 1 год. Если вы знаете, что машинное обучение — это ключевой навык для вашей дальнейшей ИТ-карьеры, рассматривайте этот учебник как часть вашей ежедневной учебной практики (по 10-30 минут в день).

Можно посоветовать новичкам следующее: сначала клонируйте репозиторий GitHub, настройте свою Python-среду и изучайте раздел за разделом. Если что непонятно, то смотрите и смежные темы, и постоянно экспериментируйте с кодом. Делайте это максимально методично как часть своей ежедневной учебной практики, и не бойтесь переходить к следующим главам, чтобы подготовиться к очередному самостоятельному занятию. В книге достаточно полезного материала для целого года работы.

Структура книги: вначале ML, затем DL

Источник: блог автора https://sebastianraschka.com/blog/2022/ml-pytorch-book.html
Источник: блог автора
https://sebastianraschka.com/blog/2022/ml-pytorch-book.html

Книга «Машинное обучение с PyTorch и Scikit‑Learn» разделена на две основные части:

1. Традиционное машинное обучение (главы 1-11):

   - Первые одиннадцать глав книги посвящены обучению с использованием библиотеки Scikit-Learn, одной из самых популярных библиотек для машинного обучения. Эти главы охватывают темы предварительной обработки данных, оценки модели и настройки гиперпараметров. Рассматриваются основные алгоритмы машинного обучения, такие как линейная регрессия, логистическая регрессия, деревья решений, методы ансамблей и кластеризация.

   - Даны практические примеры с примерами кода и упражнениями, что позволяет читателям применять теорию на практике.

2. Глубокое обучение (главы 12-18):

   - Работа с PyTorch, начиная с главы 12. Здесь фокус смещается на PyTorch, популярную библиотеку для глубокого обучения. В этой части рассматриваются такие темы, как классификация изображений, генерация текста, работа с графовыми данными и обучение с подкреплением. Книга также включает разделы по использованию PyTorch Lightning, что упрощает многие сложные аспекты глубокого обучения, включая обучение на нескольких GPU.

   - Современные архитектуры трансформеров для обработки естественного языка (NLP). Описаны архитектуры GPT и BERT, их применение и настройка для различных задач NLP. “Что такое трансформеры”, объясняется от базовых принципов до практического применения.

   - Графовые нейронные сети в виде отдельной главы. Она посвящена графовым нейронным сетям, что является относительно новым направлением в глубоком обучении. Рассматриваются методы работы с данными, структурированными в виде графов, и приводятся примеры использования графовых нейронных сетей для прогнозирования молекулярных свойств.

Чем отличается новое издание от серии книг “Python Machine Learning”?

Первое отличие — переход от TensorFlow к PyTorch. PyTorch концептуально и практически более удобен для обучения. С PyTorch, по мнению авторов, можно достичь большей квалификации себя как эксперта и с меньшими усилиями, а также можно при необходимости адаптировать свои наработки к TensorFlow. Кроме того, большинство передовых исследований в области ML/AI/DL сейчас проводится с использованием PyTorch. Полезно читать свежие статьи на arXiv, клонировать их репозитории, запускать Colab-уроки и повторять эксперименты, попутно осваивая множество новых трюков и советов по кодированию.

Второе отличие — внимание к практике отслеживания и настройки моделей. Это часто упускается в других учебниках и курсах по машинному обучению. По мере того, как читатели переходят от простых демонстрационных примеров к реальным задачам, они понимают, что настоящая работа заключается в практических упражнениях, чтобы понять, как архитектура модели и гиперпараметры влияют на набор данных. В книге хорошо освещены такие темы, как пайплайны scikit-learn, сеточный поиск и оценка производительности моделей.

Третье отличие — быстрое развитие практики ML/AI/DL. Каждую неделю появляются новые пакеты и сервисы, которые могут существенно облегчить выполнение текущих  задач, над которыми работают дата-сайентисты. Это издание включает такие современные новшества, как трансформеры, самообучение, автоэнкодеры и GAN, графовые нейронные сети, DBSCAN, t-SNE (с кратким упоминанием UMAP) и PyTorch-Lightning.

Плюсы и минусы книги

Еще раз вернемся к отзывам на Амазон и воспользуемся комментарием опытных пользователей на тему плюсов и минусов книги. Вот что пишет читиатель Gabe Rigall:

Плюсы: 

1. Полнота содержания: Книга охватывает как традиционные методы машинного обучения, так и современные подходы к глубокому обучению. Включены темы, которые редко освещаются в подобных изданиях, такие как графовые нейронные сети и обучение с подкреплением.

2. Практическая направленность: Книга изобилует примерами кода и проектами, что позволяет читателям применять теорию на практике. Практические упражнения способствуют лучшему усвоению материала.

3. Современные инструменты: Переход с TensorFlow на PyTorch делает книгу актуальной и соответствующей текущим тенденциям в области глубокого обучения. PyTorch широко используется в исследовательских проектах и промышленных приложениях, что делает книгу полезной для широкой аудитории.

4. Поддержка и ресурсы: Книга включает ссылки на дополнительные материалы и репозиторий GitHub, что облегчает доступ к коду и примерам. Это особенно полезно для самостоятельного обучения и углубленного изучения.

Минусы:

1. Объем: Книга содержит почти 800 страниц, что может показаться чрезмерным для новичков. Тем не менее, объем объясняется глубиной и подробностью изложения материала.

2. Сложность для начинающих дата-сайентистов: Некоторые читатели без предварительных знаний в области машинного обучения могут найти сложные темы, такие как трансформеры и графовые нейронные сети, очень трудными для усвоения. Однако, авторы постарались сделать объяснения как можно более доступными.

Заключение

"Машинное обучение с PyTorch и Scikit-Learn" — это исчерпывающее и актуальное руководство по машинному и глубокому обучению. Книга представляет собой один из самых полных и полезных ресурсов для разработчиков и исследователей, предлагая теорию и практику с использованием современных инструментов. Она включает как традиционные методы машинного обучения, так и современные подходы к глубокому обучению, охватывая широкий спектр тем и предоставляя множество примеров и практических упражнений.

Авторы смогли детально рассмотреть архитектуры моделей, сопровождая их хорошо объясняющими кодами и иллюстрациями. Читатели смогут интуитивно понять концепции внимания и самовнимания, что сделает эту важную архитектуру для NLP более ясной. В книге также используются предварительно обученные модели из библиотеки HuggingFace, что помогает получить практический опыт работы с большими наборами данных. Цитируются многочисленные внешние ресурсы, что вызывает интерес к более глубокому изучению темы ML и DL. В целом, книга не пугает, даже если вы никогда не работали с PyTorch.

Издание станет незаменимым ресурсом для тех, кто хочет углубить свои знания в области машинного и глубокого обучения и применить их на практике. Независимо от того, являетесь ли вы полным новичком или уже имеете опыт в этой области.

Добавим каплю рекламы от нашего блога: компания SSP SOFT приглашает на позиции инженеров QA и DevOps, системного аналитика, разработчиков на Java, JS, React и Python, 1С — см. страницу на hh.ru. Если вашей специальности нет в текущих вакансиях, все равно присылайте резюме, т.к. новые позиции в командах открываются еженедельно (пишите в Telegram или на почту job@ssp-soft.com ).

Успехов в обработке и анализе данных!