«Прорыв в машинном обучении стоил бы десяти Microsoft». - Билл Гейтс

Машинное обучение можно понимать по-разному.

Одна точка зрения состоит в том, что это часть анализа больших данных. Эта концепция была опубликована в 1996 году как процесс KDD (обнаружение знаний в базах данных). Он в основном использует статистические методы и методы интеллектуального анализа данных и имеет дело со структурированными данными, представленными в виде таблицы.

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

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

Краткое введение в глубокое обучение

Как и каждый метод машинного обучения, глубокое обучение принимает входные данные X и использует их для упрощения (или «предсказания») в качестве выходных данных Y. Его ядром является нейронная сеть. Он находит ассоциации между набором входных и выходных данных.

Нейронная сеть состоит из узлов, организованных слоями. Различают входной, скрытый и выходной слои. Узлы соединяются друг с другом для отправки сигналов, но не с узлами того же уровня.

Входной слой принимает данные (числовое представление изображений, видео и т. д.), выходной слой дает прогнозы, а скрытые слои участвуют в процессе вычислений. Вычисление — это итеративный процесс. После того, как входные узлы передают все данные через скрытые узлы на выход, сеть сравнивает полученные значения с ожидаемыми для оценки качества предсказания. Он использует так называемую функцию потерь (например, «среднеквадратичная ошибка»). Используя значения этой функции в качестве невязок, в вычислительном процессе вносятся коррективы и выполняется следующая итерация.

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

Основные понятия машинного обучения

Каждый алгоритм машинного обучения имеет три основных понятия:

  • Представление: тип знаний (например, деревья решений, наборы правил, экземпляры, графические модели, нейронные сети, машины опорных векторов, ансамбли моделей и другие).
  • Оценка: способ оценки гипотез (например, точность, предсказание и отзыв, квадрат ошибки, вероятность, апостериорная вероятность, стоимость, маржа, энтропия, расхождение k-L и другие).
  • Оптимизация: процесс поиска или способ создания программ-кандидатов (например, комбинаторная оптимизация, выпуклая оптимизация, оптимизация с ограничениями).

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

Как мы заставляем машины учиться

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

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

Существует четыре типа обучения:

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

Обзор проблем и ограничений машинного обучения

Есть два ограничения машинного обучения: вычислительная мощность и объем данных. Это больше характерно для областей глубокого обучения. Хорошим примером являются такие технологические гиганты, как Google, Facebook, Amazon. У них огромное количество данных (таких как голоса, видео, изображения и т. д.) и большие вычислительные ресурсы, и они добились значительного прогресса в построении и обучении моделей глубокого обучения. И проблема на самом деле не в распространении данных. Облачные сервисы могут помочь в этом. Но это экстенсивный путь и он имеет быстро достижимые ограничения. Большая задача состоит в том, чтобы улучшить системы глубокого обучения, чтобы они были более эффективными и могли работать с меньшим объемом данных.

Другая ключевая проблема заключается в том, что существующие системы глубокого обучения недостаточно умны. После обучения они могут быть невероятно эффективными в определенных задачах в определенной области. Но не существует модели, которая может работать в разных областях (например, идентифицировать объекты и изображения, играть в Space Invaders и слушать музыку). Другой большой проблемой является создание системы, которая может обучаться нескольким задачам.