DOU Books: 5 книг по машинному обучению, которые советует Артем Чернодуб, Chief Scientist в Clikque Technology

От редакции: в рубрике DOU Books участники сообщества рассказывают о пяти любимых книгах — тех, которые меняют мировоззрение и могут быть полезны читателям-коллегам.

[Артем Чернодуб, Chief Scientist в Clikque Technology. Более 10 лет опыта работы с алгоритмами машинного обучения, распознавания изображений и нейронных сетей. Кандидат технических наук, преподаватель в Украинском католическом университете, член программного комитета нескольких научных конференций IEEE]

— Слушай, а ты, вообще, понимаешь, что делаешь?
— У меня очень точные данные по анатомии человека.
— Ну конечно. Это же помогает тебе эффективнее нас убивать, да?
— Именно так!

© к/ф «Терминатор 2», сцена с зашиванием Т-800 раны Сары Коннор


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

Ian Goodfellow, Yoshua Bengio, Aaron Courville «Deep Learning»

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

Эта книга хорошо подойдет для любого уровня подготовки. Пробовали ли вы запускать нейронные сети, читали научные статьи или блоги на эту тему и хотите углубить и систематизировать свои знания, или же у вас уже есть своя публикация на NIPS, у вас должна быть эта книга! Она хорошо структурирована, содержит приличное количество математики (хотя, конечно, чем более свежие подходы приводятся, тем меньше становится формул и больше текста) и ссылки на оригинальные статьи. Также книга хороша в роли справочника и источника для цитирования вместо книги С. Хайкина «Нейронные сети: полный курс» (2006), сейчас уже устаревшей. Это must-have книга для каждого, кто работает с нейронными сетями. Как минимум, чтобы класть ее на ночь под подушку, чтобы знания сами впитывались во время сна, поскольку последовательно прочитать более 1000 страниц, конечно, никаких сил и времени нет.

Christopher Bishop «Pattern Recognition and Machine Learning»

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

Более свежий конкурирующий аналог — Kevin P. Murphy «Machine Learning: A Probabilistic Perspective», 2012.

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

Очень практическая книга, написанная специально для новичков. В отличие от двух предыдущих трактатов, математики она почти не содержит. Зато есть быстрое введение в популярные python-библиотеки для машинного обучения и визуализации (numpy/scikit-learn/matplotlib), дается базовая культура работы с данными и интересные задачки-примеры, сделанные на коленке from scratch. А ведь все знают, что нет лучше способа понять, как работает сложная система, чем собрать ее самому на коленке from scratch! Среди примеров для воспроизведения есть: рекомендательная система для онлайн магазина, анализ эмоциональной окраски твитов, классификация музыкальных жанров по аудио, классификация музыкальных изображений и даже есть пример с обсчетом больших данных на AWS. Хотя эта книга немного сыровата и содержит небольшие ошибки, достоинств у нее явно больше, чем недостатков. Рекомендована девелоперам, которые хотят заняться машинным обучением. Достойная альтернатива на ту же тему — Stephen Marsland «Machine Learning: An Algorithmic Perspective, Second Edition», 2014.

arXiv.org

Позволю себе читинг, приведя вместо книги сайт-библиотеку научных статей arXiv.org (произносится как «архив»). Здесь публикуются препринты научных статей с самыми свежими результатами, часто даже перед их публикацией на конференциях или в научных журналах. Я встречал девелоперов, интересующихся AI/ML, которые без проблем читают длинные мануалы на английском и разбирают сложный чужой код, но почему-то стесняются читать научные статьи в оригинале. Напрасно! Во-первых, читать научные статьи (или «пейперы», прилипло к ним такое словечко!) это просто: хорошие научные статьи написаны по принципу «мыльной оперы», когда сценарий изложения материала очень стандартный: обзор существующих решений, мотивация своего решения и его описание, эксперимент и анализ его результатов. Если потренироваться, то читать их на самом деле легче, чем статьи на Хабре или популярные блоги в силу лучшей структурированности. Во-вторых, сейчас к научным статьям в области машинного обучения принято прилагать код на GitHub, который можно попробовать у себя, на своих примерах и для своих задач. Пробуйте! Если вы хотите быть в курсе самых последних новостей в мире машинного обучения, лучше arXiv.org ничего не бывает.

Владимир Лобас «Желтые короли. Записки нью-йоркского таксиста»

Если машины все-таки победят, нам всем придется переквалифицироваться в таксисты. И тут нам на помощь придет очень интересный опыт советского диссидента и киевлянина Владимира Лобаса, который в семидесятых уехал из СССР по еврейской визе и вкусил трудный хлеб нью-йоркского кэбби. Просто классная проза, которая читается на одном дыхании. Рекомендую!

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному1
LinkedIn

Схожі статті




19 коментарів

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

Коментар порушує правила спільноти і видалений модераторами.

Вопрос по теме. Возникают задачи на поиск соответствий, например, фотография с распознанными лицами и распознанный список людей из подписи к фотографии. Паттерн достаточно примитивный. Чтобы автоматически соотносить одно с другим, показав пример на какой-то выборке, это в какую сторону копать?

Есть типа такой картинки goo.gl/q25my2, лица уже распознаны, имена уже тоже распознаны (допустим они есть все, а не как на картинке). На мой профанский взгляд, я хочу создать учебный датасет, в котором укажу как правильно сопоставлять имена и лица, натренировать на нем сеть, а потом скормить весь датасет.

А что у вас на выходе распознавателя лиц — не имена?

на выходе распознавателя лиц — лица, а в распознавателе имен — имена =\

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

можно с этого начать drive.google.com/...​qQp6QMMfOjNzE1M1I1bHdORGc
там есть какие-то данные, но я их толком не понимаю

Да, хотел, но вот не получилось одновременно то и другое. Буду дальше железками заниматься, наверное.

Спасибо. Еще хороша новая книга Hands-On Machine Learning with Scikit-Learn and TensorFlow от Aurélien Géron (много доступных примеров), ну а также Introduction to Information Retrieval Маннинга — это уже классика. Плюс на Курсере началась новая специализация по deep learning от Andrew Ng.

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

помітив тенденцію — Поганий той девелопер який не хоче стати Дата Сайтістом.

Спасибо! Мне понравилась книга «Программируем коллективный разум» Сегарана, она довольно старая и базовая, но понятно и интересно написана — для начального уровня ок.

Я встречал девелоперов, интересующихся AI/ML, которые без проблем читают длинные мануалы на английском и разбирают сложный чужой код, но почему-то стесняются читать научные статьи в оригинале

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

Мне для простейших формул понадобилось брать листочек, каждую букву отдельно записывать со своим определением, и тогда получалось понять, о чём речь. За годы программирования привык-то к переменным типа corpus_size, а не N, и намного привычнее и понятнее запись for doc in documents, а не d ∈ D.

Я курил Artificial Intelligence: A Modern Approach, потребовалось заново выработать привыкание к нотации. Хорошая книжка, тяжёлая)

Підписатись на коментарі