Найти в Дзене
Квантовый скачок

18+ книг по машинному обучению. Кому и что лучше почитать

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

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

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

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

Чтобы упорядочить изложение будем ориентироваться на следующие критерии оценки:

1. степень объяснения теории;

2. уровень сложности;

3. практическая значимость (как источника готового кода);

4. простота структуры (для использования в качестве справочника);

5. широта раскрытия тем в области машинного обучения (предполагает освещение инструментария для сбора, обработки, визуализации, машинного анализа, в том числе глубокого обучения).

Сразу отмечу, что все пособия требуют знания базовых концепций программирования и языка Python. Если их нет, сначала рекомендую почитать «Простой Python. Современный стиль программирования» (Б. Любанович) или «Python 3. Самое необходимое» (Н. Прохоренок, В. Дронов). Перейдем к описанию.

1. «Python для сложных задач: наука о данных и машинное обучение» (Дж. Вандер Плас).

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

2. «Python и машинное обучение» (С. Рашка, В. Мирджалили).

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

3. «Прикладное машинное обучение с помощью Scikit-Learn и TensorFlow» (О.Жерон).

Данное пособие имеет практически такие же характеристики, как и предыдущее. При этом приводимые в этих книгах теоретические основы хорошо дополняют друг друга. Отличием является больший уклон на объяснение основ глубокого обучения (работа библиотеки TensorFlow).

4. «Глубокое обучение: готовые решения» (Д. Осинга).

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

5. «Машинное обучение & TensorFlow» (Н. Шакла).

Является хорошим и несложным пособием для начала изучения глубокого обучения с использованием TensorFlow. Приводятся примеры решения различных задач машинного обучения, в то же время имеются отдельные места, сложные для понимания новичков.

6. «Основы Data Science и Big Data» (Д. Силен, А. Мейсман, М. Али).

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

7. «Data Science. Наука о данных с нуля» (Д. Грас).

Это издание не похоже на большинство книг по машинному обучению, так как автор совсем не пытается продемонстрировать современные инструменты машинного обучения. Основной целью является реализация ряда алгоритмов с нуля, базируясь только на примитивные конструкции языка Python. Это делает книгу исключительным пособием для глубокого понимания работы некоторых алгоритмов машинного обучения. Является сложным для новичков, но желательным для изучения после приобретения некоторого опыта в области машинного обучения.

8. «Глубокое обучение на Python» (Ф. Шолле).

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

9. «Анализ социальных медиа на Python» (М. Бонцанини).

Из названия следует, что издание нацелено в первую очередь на освещение вопросов сбора информации из различных социальных платформ. Область машинного обучения освещается кратко и преимущественно касается анализа текста. Степень сложности – легкая.

10. «Data Mining» (М. Рассел. М. Классен).

Содержание информации, уровень раскрытия и сложность аналогичны предыдущему пособию.

11. «Прикладной анализ текстовых данных на Python» (Б. Бенгфорт, Р. Билбро, Т. Охеда).

Книга освещает различные аспекты анализа текстовой информации. Вместе с тем издание содержит много опечаток, даже простые концепции изложены сложным языком. Для тех, кто не собирается специализироваться на анализе текстовой информации, не рекомендую начинать изучение с этой книги. В противном случае в силу отсутствия аналогов (для сравнения жду книгу «Обработка естественного языка в действии», Л. Хобсон,Х. Ханнес, Х. Коул) ее прочтение является важным.

12. «Введение в статистическое обучение с примерами на языке R» (Г. Джеймс, Д. Уиттон, Т. Хасти, Р. Тибширани).

В книге хорошо освещены теоретические основы алгоритмов машинного обучения, есть математика, степень сложности – средняя.

13. «Построение систем машинного обучения на языке Python» (В. Ричарт, П. Коэльо).

Считаю самым понятным и доступным пособием для начинающих изучать машинное обучение. Издание не может претендовать на самодостаточность, но в качестве старта подойдет. Единственный недостаток – пособие не переиздавалось с 2016 г. и некоторые возможности изменились, поэтому его использование как справочника нецелесообразно.

14. «Библиотека Keras – инструмент глубокого обучения» (А. Джулли, С. Пал).

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

15. «Крупномасштабное машинное обучение вместе с Python» (Б. Шарден, Л. Массарон, А. Боскетти).

Отличительной особенностью издания является описание способов адаптации имеющихся инструментов машинного обучения для работы в условиях больших данных (нехватка ресурсов одного компьютера для их анализа). Требует знаний основ данной дисциплины, поэтому новичку будет сложной для понимания.

16. «Скрапинг веб-сайтов с помощью Python» (Р. Митчелл).

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

17. «Python и анализ данных» (У. Маккинни).

Автор основной библиотеки для обработки данных (Pandas) освещает теоретические и практические вопросы работы с ней. Книга содержит незаменимый набор приемов, единственным недостатком является тот факт, что издание устарело (с 2015 г. не переиздавалось), некоторые функции изменились, переименованы, инструменты мигрировали в другие библиотеки.

18. «Основы глубокого обучения» (Н. Будума).

В пособии предпринята попытка изложить концепции глубокого обучения и их реализацию на библиотеке TensorFlow. Некоторые теоретические нюансы в книге хорошо объяснены, вместе с тем перевод плохой, много опечаток, верстка выполнена с грубыми ошибками, делающими код непонятным, так как не соблюдаются даже отступы. Может автор потрудился на славу, но адаптация пособия на русский язык самая плохая из всех, которые мне доводилось встречать.

Резюмируя изложенное, отмечу, что новичкам в сфере машинного обучения легче начать свой путь с книги «Построение систем машинного обучения на языке Python» и для более целостного понимания продолжить чтением фундаментальных пособий «Python для сложных задач: наука о данных и машинное обучение», «Python и машинное обучение» и «Прикладное машинное обучение с помощью Scikit-Learn и TensorFlow». Остальные книги также полезны, их области применения более специфичны. Соответственно, порядок освоения зависит от сферы деятельности и предпочтений конкретного читателя.

Также отмечу, что нейросети являются самым сложным инструментом машинного обучения, поэтому их изучение целесообразно начинать с освоения высокоуровневой библиотеки Keras. В этом случае лучшим помощником станет пособие «Глубокое обучение на Python».

Среди низкоуровневых библиотек глубокого обучения наиболее популярна Tensorflow, разработанная в Google. Помимо того, что ее поддержка обеспечивается таким отраслевым гигантом, по сравнению с конкурентами она намного лучше освещена в литературе. Ее изучение можно начать как с книг «Python и машинное обучение» и «Прикладное машинное обучение с помощью Scikit-Learn и TensorFlow», так и «Машинное обучение & TensorFlow».

Следует отметить, что все книги такой динамично развивающейся сферы, как машинное обучение, быстро устаревают. Более того, зачастую на момент их издания на русском языке проходит несколько лет (например, «Основы глубокого обучения» в России издана в 2020 г., через три года после выхода в свет оригинала). Вместе с тем все издания содержат незаменимые приемы и уникальную точку зрения каждого автора на различные аспекты машинного обучения, поэтому устаревание не является большой проблемой. А посмотреть, какая функция пришла на замену заданной или в какую библиотеку мигрировала, не представляет большой трудности.

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