Как машинное обучение позволяет преодолевать невыполнимые задачи, но при этом требует много времени и денег

Введение

Я думал, что AlphaGo основан на вероятностных расчетах, а это всего лишь машина. Но когда я увидел этот фильм, я изменил свое мнение. Безусловно, AlphaGo креативна. Ход был действительно креативным и красивым (Альфа Го, 52:10–52:40).

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

Это подчеркивает магическую ауру, которая окружает машинное обучение и особенно глубокое обучение. Один из разработчиков AlphaGo позже комментирует (56:30), что Alpha Go — это «действительно простая программа и далеко не полноценный ИИ».

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

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

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

Создание машины для решения проблемы

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

  • Оценить потребности бизнеса. В зависимости от размера проекта это предполагает участие одного или, возможно, большой группы людей.
  • Прочтите наши данные. Это может быть файл CSV, база данных SQL или кластер Hadoop.
  • Обрабатывать и понимать наши данные. Что означает каждый столбец? Каково качество данных? Есть недостающие данные?
  • Создайте набор функций в качестве входных данных для нашей модели. Это можно сделать вручную или с помощью какого-либо пакета разработки функций.
  • Соответствуйте модели. Для более простой модели это просто включает запуск функции Python, но более продвинутые методы часто имеют гиперпараметры, которые можно настроить для повышения производительности.
  • Оцените, удовлетворительна ли наша работа, и если нет, вернитесь к любому из наших предыдущих шагов.
  • Запустить модель в производство

Следующие три блок-схемы представляют эти шаги для трех возможных моделей: множественная линейная регрессия, комбинация TSfresh и Lasso (пример) и, наконец, нейронная сеть:

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

Кроме того, Lasso предоставляет нам хороший способ выбрать, какие из этих функций имеют отношение к нашей модели. Мы автоматизируем некоторые шаги, но также добавляем работы, настроив силу регуляризации. TSfresh/Lasso — это подход, который работает в конкретной ситуации и не обязательно является быстрой или автоматизированной процедурой.

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

С другой стороны, мы должны определить архитектуру сети (количество слоев, взаимосвязанность, функцию потерь и т. д.) и настроить гиперпараметры сети.

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

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

Избиение людей с помощью машины

Чтобы расширить возможности создания машины для решения нашей проблемы, я хочу поближе познакомиться с AlphaGo. Одним из подходов к изучению Go является создание так называемой экспертной системы. Мы берем лучших игроков в го в мире и позволяем им определять бизнес-правила, которые говорят нам, как определить следующий ход, который мы должны сделать, учитывая состояние на доске.

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

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

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

Такой подход оказался чрезвычайно успешным, позволив Alpha Go победить лучшего игрока в го всех времен. Если вы хотите углубиться в детали, я настоятельно рекомендую перейти на веб-сайт Deepmind.

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

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

Нет серебряной пули

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

Однако огромный потенциал машинного обучения не означает, что оно автоматически решает наши проблемы.

Дополнительные материалы на plainenglish.io