Мы живем в эпоху, когда создается больше данных, чем когда-либо прежде. По оценке IBM, 90% данных в современном мире было создано за последние два года. Каждый день эта сумма увеличивается на 2,5 квинтиллиона байт. Все эти данные означают, что компании могут заниматься аналитикой, машинным обучением и разработкой новых услуг на уровне, который ранее считался невозможным. Машинное обучение, основа современного ИИ, меняет мир, каким мы его знаем.

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

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

Предпосылки

Алгоритмы машинного обучения можно рассматривать как программы, которые производят другие программы. Эти генерирующие программы выражаются в виде набора чисел, поэтому требуются некоторые знания математики и статистики. Если вы не можете вспомнить детали какого-либо уравнения или статистического понятия, Статистика OpenIntro book (последнее издание доступно в виде бесплатного PDF-файла) является отличным справочником. Он отвечает на те вопросы, которые у вас всегда возникали, но вы стеснялись задать их в школе, и предлагает множество реальных проблем и решений вместо глупых, которые можно найти в большинстве других подобных книг.

Что такое машинное обучение?

Прежде чем изучать различные типы алгоритмов, полезно узнать, что такое машинное обучение, а что нет. В Интернете есть много отличных вступительных видеороликов, но 45-минутное видео Фрэнка Чена Искусственный интеллект, глубокое обучение и машинное обучение: учебник является выдающимся. Он не только объясняет, что такое машинное обучение, но и дает хороший обзор его истории.

Еще одно видео, о котором стоит упомянуть, — это (несколько неожиданно) Android Authority Что такое машинное обучение? Он длится 11 минут и полон примеров. Некоторые из них могут не иметь для вас смысла, если вы только начинаете изучать машинное обучение, но не беспокойтесь, если есть вещи, которые вы не понимаете.

Звучит хорошо, с чего мне начать?

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

Такой же подход используется в Стэнфордском курсе машинного обучения на Coursera. Лектор — Эндрю Нг (@AndrewYNg), ранее работавший в Google Brain и Baidu. Г-н Нг также является соучредителем самой Coursera, поэтому неудивительно, что педагогическое качество курса превосходно. Вы узнаете о таких вещах, как линейная регрессия, логистическая регрессия, нейронные сети, SVM, алгоритмы обнаружения аномалий и многое другое! Язык программирования, используемый на протяжении всего курса, — Octave, который некоторые любят, а некоторые ненавидят. В любом случае настоятельно рекомендуется попытаться выполнить все задания. В реальном мире существуют отличные библиотеки, которые позволяют успешно использовать алгоритмы обучения, не реализуя их с нуля; тем не менее, реализация всего с нуля хотя бы один раз действительно поможет вам понять, что происходит за кулисами. Это сделает вас более осведомленным в области машинного обучения, чем многие люди, работающие в области анализа данных. И даже если вы не реализуете алгоритм правильно от начала до конца, попытка сделать это, по крайней мере, заставит вас оценить блестящие умы, которые придумали этот материал в первую очередь. Мы действительно стоим на плечах гигантов.

Куда мне идти отсюда?

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

Меня лично интересуют нейронные сети и байесовский вывод. Для продвинутых нейронных сетей я рекомендовал прочитать серию Quoc V. Le по глубокому обучению (часть 1, часть 2), в которой рассматриваются автоэнкодеры, сверточные нейронные сети и рекуррентные нейронные сети, включая вариант LSTM. Это отличный ресурс, который объясняет вещи простым английским языком в дополнение к уравнениям — то, что делают очень немногие литературные произведения.

В дополнение к вышеупомянутым PDF-файлам, Джеффри Хинтон Нейронные сети для машинного обучения является отличным курсом продвинутого уровня. Лектор живая легенда.

Для байесовского вывода бесценна Байесовская книга для хакеров. Это ресурс, посвященный коду, и это здорово, если у вас есть опыт программирования. Книга написана в виде интерактивной записной книжки Jupyter, поэтому вы можете возиться с кодом во время чтения.

Пара советов

Алгоритмы машинного обучения интересны, потому что основы — способ их обучения — не меняются, когда их используют для решения разных задач. Если вы хотите классифицировать кусочки фруктов по весу, цвету, текстуре поверхности и так далее или распознавать рукописные цифры на изображениях, вы можете использовать те же базовые алгоритмы обучения и просто настроить некоторые параметры вокруг них. По этой причине стоит сохранять каждый бит кода, который вы пишете, в каком-либо репозитории. Нет причин заново изобретать колесо; если вы хотите использовать алгоритм обучения для решения какой-либо задачи и ранее выполняли некоторую работу для решения аналогичного типа проблемы, скорее всего, вы сможете повторно использовать большую часть своего старого кода.

Еще один совет — заведите личный глоссарий. Машинное обучение как область полна жаргона, аббревиатур и крайне неудачно выбранных названий. Некоторые вещи имеют несколько разных имен; у других есть очень вводящие в заблуждение или запутанные. Каждый раз, когда вы сталкиваетесь с термином/именем/аббревиатурой, о которых вы никогда раньше не слышали, выполните быстрый поиск в Google и запишите объяснение для идиотов. Это снизит когнитивную нагрузку во время учебы. Это также станет ценным ориентиром в будущем. Вы можете найти собственный глоссарий машинного обучения SC5 на простом английском языке здесь.

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