Книги о машинном обучении для новичков

Аватарка пользователя Елена Капаца

Сделали для новичков в Machine Learning подборку из четырех книг, которые помогут обогатить и упростить ваше обучение.

Обложка поста Книги о машинном обучении для новичков

Учебная воронка на курсах по машинному обучению жестока: несмотря на лояльность онлайн-университетов, больше половины студентов уходят (так было у меня), потому что не выдерживают нагрузку или теряют интерес. Частично справиться с этим: повторить материал, узнать что-то за рамками программы — помогают книги. Здесь я собрала небольшой список тех, которые погрузят в тему и разрушат популярные мифы.

«Python. Большая книга примеров» Антона Марченко

Книги о машинном обучении для новичков 1

Гайд от преподавателя МГУ, в котором есть часть основ для подготовки к собеседованию на позицию Junior Python Developer. Книга знакомит с основной терминологией языка на доступных примерах. В ней много иллюстраций и примеров. А код будет понятен новичкам.

Вот роскошно раскомментированный пример создания анимированной диаграммы на Matplotlib:

			import matplotlib.pyplot as plt
from matplotlib.animation import ArtistAnimation
import numpy

def gaussian(x, delay, sigma):
  # Функция, график которой будет отображаться в процессе анимации
  return numpy.exp(-((x - delay) / sigma) ** 2)


if __name__ == '__main__':
  # Параметры отображаемой функции
  maxSize = 200
  sigma = 10.0
  # Диапазон точек для расчета графика функции
  x = numpy.arange(maxSize)
  # Значения графика функции
  y = numpy.zeros(maxSize)
  # Создание окна для графика
  fig, ax = plt.subplots()
  ax.grid()
  # Установка отображаемых интервалов по осям
  ax.set_xlim(0, maxSize)
  ax.set_ylim(-1.1, 1.1)

  # Создание списка линий, которые будут последовательно
  # переключаться и предъявляться при изменении номера кадра
  frames = []
  for delay in numpy.arange(-50.0, 200.0, 1.0):
    y = gaussian(x, delay, sigma)
  # список рисунков линий 
  # голубой цвет линии задаётся параметром '-b'
    line, = ax.plot(x, y, '-b')
  # Поскольку на каждом кадре может меняться несколько объектов, 
  # каждый элемент списка - это список изменяемых объектов
    frames.append([line])
  
  # Задержка между кадрами в мс
  interval = 30
  # Использовать ли буферизацию для устранения мерцания 
  blit = True
  # Будет ли анимация циклической 
  repeat = True
  # Создание анимации 
  animation = ArtistAnimation(
    fig, # Figure (это ссылка на глобальную fig)
    # Объект рисунка, используемый для получения
    # необходимых событий, таких как
    # рисование или изменение размера. 
    frames, # Источник данных - список линий, которые
    # будут последовательно переключаться и
    # предъявляться при изменении номера кадра interval=interval, 
    # Временной интервал между кадрами
    blit = blit, # Использовать буферизацию для устранения мерцания
    repeat = repeat)
  plt.show()
		

Если честно, не ожидала от Matplotlib возможности анимироваться!

Если посмотреть требования к Junior Python Developer в вакансии, то окажется, что книга хорошо знакомит со следующими компетенциями:

  • Алгоритмы и анализ сложности;
  • Архитектура вычислительных систем;
  • Компьютерные сети;
  • Математическая логика и теория алгоритмов;
  • Математический анализ;
  • Методы реализации СУБД;
  • Моделирование информационных процессов;
  • Операционные системы;
  • Основы программирования;
  • Программная инженерия;
  • Тестирование программного обеспечения;
  • Технологии Интернет и веб-программирования

Кафедра автора Антона Леонардовича — сейсмология, так что опытным разработчикам материал тоже может быть интересен — как взгляд необычного для сферы профессионала.

«Python и Машинное обучение» Себастьяна Рашка

Книги о машинном обучении для новичков 2

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

Книги о машинном обучении для новичков 3

Авторы освещают базис нейронных сетей (перцептроны, веса, оптимизация), и знакомят со «швейцарским ножом» ML-библиотекой scikit-learn. В следующих главах уже решаются классические проблемы Data Science: понижение размерности, подбор гиперпараметров и проч.

Особый интерес, на мой взгляд, представляет глава про встраивание модели в веб-приложение. Ведь когда-нибудь модель должна выйти в мир!

Книга стала бестселлером в США, недавно вышло третье издание. В продолжение темы Рашка предлагает «сиквел» — «Машинное обучение с PyTorch и Scikit-learn».

Книги о машинном обучении для новичков 4

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

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

Книги о машинном обучении для новичков 5

«Машинное обучение без лишних слов» Андрея Буркова

Книги о машинном обучении для новичков 6

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

С “Машинным обучением без лишних слов” вы вспомните операции над матрицами и производные с минимальным количеством боли.

Прилагать многоэтажный сниппет не буду, но покажу, какие концепции автор решил раскрыть: здесь и градиентный спуск (Gradient Descent), и ядерный трюк (Kernel Trick), и недо-/переобучение (Under/Overfitting):

Книги о машинном обучении для новичков 7

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

Книги о машинном обучении для новичков 8
“Книга Андрея, фантастическим образом устраняя всё лишнее, идёт на полной скорости прямо к цели с самой первой страницы”.

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

Из любопытного: в первой главе представлен интересный философский раздел, который не встретить в других учебниках — «Когда следует применять Машинное обучение»:

  • когда задача является слишком сложной для учета всех условий;
  • когда условия постоянно меняются;
  • когда речь идет о задаче восприятия;
  • когда это неизученное явление;
  • когда задача имеет простую целевую функцию;
  • когда это выгодно.

Это помогает плавно вникнуть в вопрос людям, которые только начали программировать.

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

«Машинное обучение доступным языком» Елены Капаца

Книги о машинном обучении для новичков 9

Краткое руководство для новичков в машинном и глубоком обучении. Здесь вы найдете основные концепции и инструменты, примеры кода, подробно разъяснённые.

Главы — это последовательный рассказ о том, как подготовить данные клиентов банка и загрузить их в модель и понять, кого стоит «дожимать» средствами маркетинга, а кого нет.

Практиковаться во время чтения — это прекрасный способ учиться, так что я взяла реальный проект и перенесла его в книгу, перевела с «программистского» на русский. Выбрала банковскую сферу, потому что она всегда была богатой и проектов достаточно, чтобы разжевать самый тонкий нюанс в данных и в коде.

Поясняющих комментариев воистину много, вы сможете наглядно сравнить, как глубокое обучение «обгоняет» классическое машинное по эффективности. Например, в первой части я показываю работу Дерева решений. После предварительного преобразования датасета мы обучаем модель всего за пару строк и получаем исчерпывающий ответ: какого клиента прозванивать, а какого лучше не трогать:

			tr = tree.DecisionTreeClassifier(max_depth=3, random_state=25)
tr.fit(X_train, y_train)
		
Книги о машинном обучении для новичков 10

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

Вы можете бесплатно скачать материал на Литрес (ссылка).

Заключение

Книги — хороший способ дополнить образование. Но практика всё равно остаётся в приоритете. В случае с наукой о данных, когда необходимый объём знаний изначально большой и постоянно обновляется, печатными изданиями хочется скорее развлекаться время от времени.

Но всё же магия «толстого и умного справочника», стоящего на полке в силе: всегда приятно осознавать, какую сложную вещь можешь осилить.

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

Python
Машинное обучение
Data Science
4753