Машинное обучение

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

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

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

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

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

Возьмем простой график, имитирующий то, что происходит в машинном обучении. В этом случае, начиная с входных значений 1, 4, 5, 8 и 10 и объединяя их в пары с соответствующими выходными значениями 7, 13, 15, 21 и 25, алгоритм машинного обучения определяет, что лучший способ представления связи между входом и выходом определяется формулой. Исходя из наших данных, это 2x + 5 — любая пара в неё укладывается. То есть, например, 4х2 + 5 = 13, 5x2 + 5 = 15 и так далее.

Эта формула и есть определение модели, используемой для обработки всех входных данных — даже новых или пока невидимых — и для вычисления соответствующего выходного значения. Модель использует образец, сформированный алгоритмом, так что новый ввод числа 3 даст прогнозируемый результат 11 = 2х3 + 5.

Хотя большинство сценариев машинного обучения намного сложнее, чем этот, пример дает общее представление о том, что происходит. Вместо того, чтобы индивидуально программировать ответ для ввода 3, ИИ может вычислить правильный ответ на основе пар «ввод-ответ», которые она уже изучила.

Цели машинного обучения

Основная цель машинного обучения заключается в том, что можно представить реальность, используя математическую функцию, которую алгоритм не знает заранее, но которую он может определить после просмотра некоторых данных — всегда в форме парных входов и выходов. То есть каждый алгоритм машинного обучения построен на модифицируемой математической функции. Функцию можно изменить — в результате ИИ может адаптировать её к конкретной информации, взятой из данных. Эта концепция является основной идеей для всех видов алгоритмов машинного обучения.

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

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

Виды машинного обучения

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

  • машинное обучение с учителем;
  • машинное обучение без учителя;
  • самоконтролируемое машинное обучение;
  • машинное обучение с подкреплением.

Машинное обучение с учителем

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

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

  • история покупок, в том числе список товаров, которые клиенты никогда не покупали;
  • обнаружение и распознавание изображений;
  • текст в форме ответов — чат-боты, программные приложения для общения;
  • машинный перевод с разных языков;
  • аудиорасшифровка текста, распознавание речи;
  • изображение или данные с датчиков — рулевое управление, торможение или ускорение, поведенческое планирование для автопилотов.

Машинное обучение без учителя

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

  • кластеризация;
  • обнаружение аномалий;
  • нейронные сети;
  • самоконтролируемое машинное обучение.

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

Машинное обучение с подкреплением

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

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

Задачи машинного обучения

Чтобы запустить успешную систему машинного обучения, понадобится решить следующие задачи.

  • Обучение
    Машинное обучение начинается, когда модель работает с использованием определенного алгоритма на основе определенных данных. Данные обучения отделены от любых других данных, но они также должны быть репрезентативными. Если данные не соответствуют предметной области, то полученная модель не может дать полезных результатов. В процессе обучения будет видно, как модель реагирует на данные обучения. При необходимости изменения вносятся в используемые алгоритмы и способ, которым обрабатываются данные перед вводом.
  • Проверка
    Сначала модель обучают, используя данные обучения, а затем проверяют ее, используя данные тестирования. Конечно, данные тестирования должны точно отражать проблемную область. Они также должны быть статистически совместимыми с данными обучения. В противном случае положительных результатов не будет. Проблема в том, что многие наборы данных достаточно велики, чтобы их можно было разделить на обучающую и тестовую части. Поэтому эту задачу часто пропускают.
  • Тестирование
    После того, как модель обучена и проверена, её тестируют с использованием реальных данных. Этот шаг важен, потому что нужно убедиться, что модель действительно будет работать с большим набором данных, который не использовался ни для обучения, ни для проверки. Как и на других этапах, любые данные, которые используются здесь, должны отражать проблемную область, с которой нужно взаимодействовать, используя модель машинного обучения.

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

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

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

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

Проблемы машинного обучения

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

С другой стороны, если модель слишком внимательно следует за данными и обобщает слишком многое, она «перестарается» — и полученные результаты будут также неточными, растянутыми, как перчатка из-за слишком долгого ношения.

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

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

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

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

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

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

Блог