Учебная воронка на курсах по машинному обучению жестока: несмотря на лояльность онлайн-университетов, больше половины студентов уходят (так было у меня), потому что не выдерживают нагрузку или теряют интерес. Частично справиться с этим: повторить материал, узнать что-то за рамками программы — помогают книги. Здесь я собрала небольшой список тех, которые погрузят в тему и разрушат популярные мифы.
«Python. Большая книга примеров» Антона Марченко
Гайд от преподавателя МГУ, в котором есть часть основ для подготовки к собеседованию на позицию Junior Python Developer. Книга знакомит с основной терминологией языка на доступных примерах. В ней много иллюстраций и примеров. А код будет понятен новичкам.
Вот роскошно раскомментированный пример создания анимированной диаграммы на Matplotlib:
Если честно, не ожидала от Matplotlib возможности анимироваться!
Если посмотреть требования к Junior Python Developer в вакансии, то окажется, что книга хорошо знакомит со следующими компетенциями:
— Алгоритмы и анализ сложности;
— Архитектура вычислительных систем;
— Компьютерные сети;
— Математическая логика и теория алгоритмов;
— Математический анализ;
— Методы реализации СУБД;
— Моделирование информационных процессов;
— Операционные системы;
— Основы программирования;
— Программная инженерия;
— Тестирование программного обеспечения;
— Технологии Интернет и веб-программирования
Кафедра автора Антона Леонардовича — сейсмология, так что опытным разработчикам материал тоже может быть интересен — как взгляд необычного для сферы профессионала.
«Python и Машинное обучение» Себастьяна Рашка
В книге раскрыты методологии, которые используются при решении популярных задач, будь то распознавание лиц на изображениях или предсказания цен. Вы познакомитесь с науками, которые позволили создать гибридную дисциплину — машинное обучение. И увидите, как строится типовой конвейер от данных до готовой модели.
Авторы освещают базис нейронных сетей (перцептроны, веса, оптимизация), и знакомят со «швейцарским ножом» ML-библиотекой scikit-learn. В следующих главах уже решаются классические проблемы Data Science: понижение размерности, подбор гиперпараметров и проч.
Подсказка: Особый интерес, на мой взгляд, представляет глава про встраивание модели в веб-приложение. Ведь когда-нибудь модель должна выйти в мир!
Книга стала бестселлером в США, недавно вышло третье издание. В продолжение темы Рашка предлагает «сиквел» — «Машинное обучение с PyTorch и Scikit-learn».
Читатели пишут, что это необходимый минимум по предмету, без излишеств и чрезмерных усложнений, материалы даже используются на курсах колледжей. Однако без предварительной подготовки во вторую часть про Глубокое обучение лучше не заходить. В целом этот раздел читать проще тем, кто уже практикует.
Не все может быть понятно, но она позволит свыкнуться с основной терминологией с помощью всевозможных кейсов.
«Машинное обучение без лишних слов» Андрея Буркова
Издание описывает основные алгоритмы машинного обучения и обещает познакомить с основами всего за 100 страниц. Прекрасно ещё и то, что репозиторий с кодом можно клонировать с GitHub (ссылка) — а скрипты внутри запустить. От других изданий эту книгу отличает то, что она доступно и дозировано объясняет высшую математику.
Подсказка: С “Машинным обучением без лишних слов” вы вспомните операции над матрицами и производные с минимальным количеством боли.
Прилагать многоэтажный сниппет не буду, но покажу, какие концепции автор решил раскрыть: здесь и градиентный спуск (Gradient Descent), и ядерный трюк (Kernel Trick), и недо-/переобучение (Under/Overfitting):
И, например, в четвертой главе эксперт рассказывает о видах регрессии. И на графике ниже показывает, как для нее подбирается лучшая функция с помощью градиентного спуска:
Книга известна за рубежом, ведь Андрей Бурков релоцировался в Канаду и работает в Gartner. Кроме того, у неё есть сайт (themlbook.com) с кучей положительных отзывов и рекомендациями профессионалов.
Из любопытного: в первой главе представлен интересный философский раздел, который не встретить в других учебниках — «Когда следует применять Машинное обучение»:
— когда задача является слишком сложной для учета всех условий;
— когда условия постоянно меняются;
— когда речь идет о задаче восприятия;
— когда это неизученное явление;
— когда задача имеет простую целевую функцию;
— когда это выгодно.
Это помогает плавно вникнуть в вопрос людям, которые только начали программировать.
В завершение хочу похвастаться своей книгой, тем более что она бесплатная.
«Машинное обучение доступным языком» Елены Капаца
Краткое руководство для новичков в машинном и глубоком обучении. Здесь вы найдете основные концепции и инструменты, примеры кода, подробно разъяснённые.
Главы — это последовательный рассказ о том, как подготовить данные клиентов банка и загрузить их в модель и понять, кого стоит «дожимать» средствами маркетинга, а кого нет.
Подсказка: Практиковаться во время чтения — это прекрасный способ учиться, так что я взяла реальный проект и перенесла его в книгу, перевела с «программистского» на русский. Выбрала банковскую сферу, потому что она всегда была богатой и проектов достаточно, чтобы разжевать самый тонкий нюанс в данных и в коде.
Поясняющих комментариев воистину много, вы сможете наглядно сравнить, как глубокое обучение «обгоняет» классическое машинное по эффективности. Например, в первой части я показываю работу Дерева решений. После предварительного преобразования датасета мы обучаем модель всего за пару строк и получаем исчерпывающий ответ: какого клиента прозванивать, а какого лучше не трогать:
На верхних уровнях видны названия параметров (доходность, длительность звонка и проч.). В целом становится понятно, как выглядит процесс отбора целей рекламной кампании
Вы можете бесплатно скачать материал на Литрес (ссылка).
Заключение
Книги — хороший способ дополнить образование. Но практика всё равно остаётся в приоритете. В случае с наукой о данных, когда необходимый объём знаний изначально большой и постоянно обновляется, печатными изданиями хочется скорее развлекаться время от времени.
Но всё же магия «толстого и умного справочника», стоящего на полке в силе: всегда приятно осознавать, какую сложную вещь можешь осилить.
Если вы любите читать, напишите в комментариях, какие книги по программированию оказали на вас наибольшее влияние и почему.
Добавить комментарий