Нейросети переживают второй Ренессанс. Сначала еще казалось, что сообщество, решив несколько прикладных задач, быстро переключится на другую модную тему. Сейчас очевидно, что спада интереса к нейросетям в ближайшем будущем не предвидится. Исследователи находят новые способы применения технологий, а следом появляются стартапы, использующие в продукте нейронные сети.
Стоит ли изучать нейросети не специалистам в области машинного обучения? Каждый для себя ответит на этот вопрос сам. Мы же посмотрим на ситуацию с другой стороны — что делать разработчикам (и всем остальным), которые хотят больше знать про методы распознавания образов, дискриминантный анализ, методы кластеризации и другие занимательные вещи, но не хотят расходовать на эту задачу лишние ресурсы.
Ставить перед собой амбициозную цель, с головой бросаться в онлайн-курсы — значит потратить много времени на изучение предмета, который, возможно, вам нужен лишь для общего развития. Есть один проверенный (ретроградный) способ, занимающий по полчаса в день. Книга — офлайновый источник информации. Книга не может похвастаться актуальностью, но за ограниченный период времени даст вам фундаментальное понимание технологии и способов ее возможной реализации под ваши задачи.
Neural Network Design
Если у вас уже есть базовые знания в области машинного обучения, и вы хотите двигаться дальше, то авторы «Neural Network Toolbox для MATLAB» предложат вам четкое и подробное погружение в фундаментальные основы архитектуры нейронных сетей и методов обучения. Методы обучения приводятся как для нейронных сетей прямого распространения (включая многослойные и радиальные сети), так и для рекуррентных сетей. Дополнительно к книге можно получить иллюстрации и код для примеров (сайт).
Deep Learning (Adaptive Computation and Machine Learning series)
Священная книга сверточных нейронных сетей и глубокого обучения — без шуток, это действительно очень важная книга, которую рекомендуют многие успешные разработчики… и не только они. «Написанная тремя экспертами, "Deep Learning" является единственной всеобъемлющей книгой в этой области», — так сказал Илон Маск, и если вы верите в надежность автопилота Tesla и перспективы проекта OpenAI, то ему можно верить. :)
Книга предлагает математический инструментарий и фундаментальные основы, охватывающие линейную алгебру, теории вероятностей и теории информации, численные методы и непосредственно машинное обучение. В «Deep Learning» описываются методы глубокого обучения, используемые специалистами-практиками в промышленности, в том числе глубокие сети прямого распространения, алгоритмы оптимизации, сверточные сети, методы Монте-Карло, построение сетевой модели и т.д. Кроме того, вы узнаете много интересного про обработку естественного языка, распознавание речи, компьютерное зрение, системы рекомендаций, биоинформатику и даже игры. Проще сказать, чего в этой книге нет… хотя и это сложно — если вы чего-то не найдете на 800 страницах, есть еще сайт к книге с дополнительными материалами.
P.S. Электронная версия книги выложена в открытый доступ.
Neural Networks: A Systematic Introduction
Классика жанра, фундаментальный труд 1996 года из эры до глубокого обучения. Если вы хотите не только познакомиться с предметом машинного обучения, но и стать специалистом в этой области, стоит познакомиться и с таким взглядом на проблематику. В книге меньше (по сравнению с другими в этой подборке) чистой математики, вместо этого делается попытка дать читателю интуитивное понимание концепции нейронных сетей. Делается это за счет глубины подхода — нет попыток сходу написать свою сеть; автор сначала предлагает изучить теоретические законы и модели на примере биологии. Не будем забывать, что каждый человек обладает своей собственной нейронной сетью. На простых примерах показывается, как изменяются свойства моделей, когда вводятся общие вычислительные элементы и сетевые топологии.
Pattern Recognition and Machine Learning (Information Science and Statistics)
Если вам понравится предыдущая книга из подборки, то можете усилить знания схожим по концепции изданием 2006 года. «Распознавание образов и машинное обучение» стал первым учебником по распознаванию образов, представляющим Байесовский метод (хотя сама формула Байеса была опубликована аж в 1763 году). В книге представлены алгоритмы вывода, которые позволяют быстро найти ответы в ситуациях, когда точные ответы невозможны. Автор Кристофер Бишоп, директор лаборатории Microsoft Research Cambridge, первым дал пояснение графическим моделям для описания вероятностных распределений.
P.S. В 2013 году подразделение Microsoft Research выпустила в открытый доступ отдельную книгу Deep Learning.
Programming Collective Intelligence
Одна из лучших книг по основам машинного обучения (в связке с Python), написанная за несколько лет до того, как нейросети обрели культовый статус. Но возраст ей не помеха — методы коллаборативной фильтрации, байесовская фильтрация, метод опорных векторов сохраняют актуальность. Затрагиваются принципы работы поисковых систем (поисковые роботы, индексы, механизмы запросов и алгоритм PageRank), алгоритмы оптимизации, неотрицательная матричная факторизация и другие темы.
Make Your Own Neural Network
Пошаговое путешествие по математике нейронных сетей к созданию собственных сеток с помощью Python. Большой плюс книги — заниженные требования к объему знаний читателя. В области математики потребуются лишь школьные знания (без глубокого погружения). Авторы поставили себе цель дать представление о нейросетях самому широкому кругу читателей. Похвально, учитывая, как много книг написано для продвинутых специалистов.
После прочтения вы сможете сделать главное: писать код на Python, создавать свои собственные нейронные сети, обучая их распознавать различные изображения, и даже создавать решения на базе Raspberry Pi. Математика в книге тоже есть, но она не заставит кричать от ужаса (что возможно, если область вашей деятельности сильно далека от алгоритмов) — математические идеи, лежащие в основе нейронных сетей, даются с большим количеством иллюстраций и примеров.
P.S. Если вы заинтересовались, но не можете заниматься по книге, рекомендуем одноименный блог с большим количеством полезных статей.
Python Machine Learning
«Машинное обучение на Python» это сборник полезных советов для начинающих специалистов по машинному обучению. Почему Python? Так автор захотел, просто ему язык нравится. Себастьян Рашка объясняет самые общие концепции, дополняет их необходимым математическим аппаратом для понимания темы на внутрисистемном уровне, приводит примеры и объясняет способы реализации. Также есть репозиторий на GitHub с общей информацией и примерами кода. Планируется перевод книги на русский язык.
Learning From Data
Эта книга кратко познакомит вас с миром машинного обучения. Кроме того, читателям предоставляется бесплатный доступ к онлайн-главам, которые постоянно обновляются в соответствии с тенденциями в области машинного обучения. Это книга рекомендуется тем, кто только-только начал знакомиться с предметом и не понимает, что значит высказывание «обучение на массиве данных».
Авторы соблюдают баланс между теоретической и практической частью машинного обучения. Эта книга используется в качестве учебного пособия в Калифорнийском технологическом институте, Политехническом институте Ренсселера (США) и Национальном университете Тайваня. Авторы также активно консультируются с финансовыми и коммерческими компаниями по приложениям, использующим машинное обучение.
Artificial Intelligence: A Modern Approach
Популярная книга от известных авторов Stuart Russell и Peter Norvig, которая пережила уже третье издание. Полное, современное введение в теорию и практику искусственного интеллекта, предназначенное для учащихся первых курсов вуза. Книга используется в качестве введения в тему на огромном количестве курсов по Data science и ИИ. Если вас интересует применение нейросетей именно для создания искусственного интеллекта, с нее можно начать путь в этой увлекательной и очень сложной области.
Artificial Intelligence: A Modern Approach есть в открытом доступе.
Neural Networks and Deep Learning
Эта «книга» не совсем книга — у нее даже обложки нет. Но перед вами действительно полноценное издание, выложенное в открытый доступ (по ссылке выше). Майкл Нильсен дает отличное введение в нейронные сети в серии пошаговых примеров, посвященных проблемам распознавания рукописных цифр. Книга хорошо подходит для тех, у кого уже есть опыт машинного обучения, и хочется глубже вникнуть в нейронные сети.
Заключение
Теперь даже программисты, которые почти ничего не знают о технологии глубокого машинного обучения, могут использовать простые и эффективные инструменты для создания самообучающихся программ.
Что касается книг по нейросетям на русском, то отзывы о них противоречивые. «Нейронные сети. Полный курс» Саймона Хайкина отличается повышенной сложностью и неоднозначным переводом (но если вас не пугает, можете ознакомиться). Найти книгу, которая была бы на таком же уровне качества, как и другие издания в подборке, нам так и не удалось. Если вы можете что-то порекомендовать, напишите в комментариях.
Автор: randall