Некоторые причины, по которым вы должны это прочитать

Моя книга Системы машинного обучения недавно вышла в печать. Какое-то время книга находилась в стадии открытой разработки в рамках Программы раннего доступа Мэннинга (MEAP). Распечатка бумажной версии книги - отличный способ завершить этот этап сбора отзывов и постепенного улучшения примеров.

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

Акцент на целые системы машинного обучения

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

Шаблоны проектирования для компонентов машинного обучения

На протяжении большей части моей карьеры в области машинного обучения я чувствовал, что в этой области слишком мало широко используемых фреймворков или хорошо задокументированных шаблонов проектирования. Шон Оуэн проделал некоторую новаторскую работу в этой области с проектом Oryx, который он обсуждает в предисловии к книге. Эталонные архитектуры и фреймворки действительно являются важными способами сбора племенных знаний и их синтеза в наиболее общей форме. В Системах машинного обучения я попытался запечатлеть как можно больше шаблонов проектирования и методов программирования, которые у меня были личные знания о том, как они могут быть полезны разработчикам, создающим распределенные системы для машинного обучения.

Контексты проблем в реальном мире

Каждая глава представляет новую команду, решающую новую проблему. Хотя эти примеры вымышлены, они сильно вдохновлены реальными продуктами, а реальные команды создают реальные системы для их поддержки. Мне пришлось сильно упростить, чтобы объединить некоторые из этих продуктов в отдельные главы книги, но вы никогда не увидите примеров без бизнес-контекста. Набор данных iris и его друзей нигде не найти. Вместо этого вы найдете команды, создающие приложения для такси, сайты микроблогов, приложения для знакомств и другие узнаваемые продукты.

Методы функционального программирования

Язык книги - в первую очередь Скала. На то есть множество причин. В Scala есть отличная реализация модели акторов Akka, которая очень помогает в обсуждении таких понятий, как передача сообщений и надзор. Точно так же он имеет мощный фреймворк для распределенной обработки данных Spark, который делает создание конвейеров данных удовольствием. Spark также поставляется с очень функциональной библиотекой машинного обучения MLlib, которая позволяет читателям получить доступ к высокомасштабируемым эталонным реализациям различных функций машинного обучения. Все это связано воедино последовательной моделью программирования, которая отдает предпочтение неизменяемым данным, функциям первого класса и возможностям богатой системы типов для выражения ограничений в вычислениях.

Проблемы науки о данных и инженерии

Эта книга действительно предназначена для двух аудиторий. Во-первых, это группа людей, имеющих более аналитический или исследовательский фон, которые могут быть более знакомы со статистикой и темами моделирования в книге. Во-вторых, это люди, у которых больше опыта в разработке программного обеспечения, но которые не углубились в тему машинного обучения. Я приложил огромные усилия, чтобы поддержать обоих читателей в их путешествии по созданию систем машинного обучения. Независимо от того, являетесь ли вы опытным исследователем НЛП или заядлым приверженцем Haskell, вы должны найти материал, который вам нужен, чтобы применить свои существующие навыки к задачам построения систем машинного обучения.

Масштабируемость как постоянная проблема

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

Наглядные пособия

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

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

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

Если у вас есть еще вопросы, вы всегда можете написать мне в Twitter или мой сайт.