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

XakeR

Member
Регистрация
13.05.2006
Сообщения
1 912
Реакции
0
Баллы
16
Местоположение
Ukraine
Учебная воронка на курсах по машинному обучению жестока: несмотря на лояльность онлайн-университетов, больше половины студентов уходят (так было у меня), потому что не выдерживают нагрузку или теряют интерес. Частично справиться с этим: повторить материал, узнать что-то за рамками программы — помогают книги. Здесь я собрала небольшой список тех, которые погрузят в тему и разрушат популярные мифы.

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


Обложка книги Python. Большая книга примеров0


Гайд от преподавателя МГУ, в котором есть часть основ для подготовки к собеседованию на позицию 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 и Машинное обучение» Себастьяна Рашка​


Обложка книги Python и Машинное обучение1


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

Описание датасета ирисов2


Доступнее про датасет ирисов не рассказывал, наверное, никто

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

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

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

Сравнение книг цикла3


Сравнение первой и второй книг

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

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

Нелинейное понижение размерности4


Нелинейное понижение размерности

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


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


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

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

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

Репозиторий книги Буркова Машинное обучение без лишних слов6


Ноутбуки, дополняющие главы

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

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


Подбор наилучшей функции регрессии с помощью большого числа эпох

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

Суджит Варахеди
технический руководитель в eBay

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

Middle/Senior Backend Developer (Python) в команду Атом.Око АО «Гринатом», , можно удалённо, От 200 000 до 350 000 ₽ tproger.ru Вакансии на tproger.ru

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

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

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

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

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


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


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

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

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

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

tr = tree.DecisionTreeClassifier(max_depth=3, random_state=25) tr.fit(X_train, y_train)
Дерево решений банковского датасета 9


Как принимается решение о включении клиента в список к прозвону

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

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

Заключение​


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

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

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

Сделали для новичков в Machine Learning подборку из четырех книг, которые помогут обогатить и упростить ваше обучение.
 
198 114Темы
635 085Сообщения
3 618 401Пользователи
EeOneНовый пользователь
Верх