Машинное обучение (Machine Learning — ML) — подполе искусственного интеллекта, позволяющее компьютерам учиться без прямого программирования. Алгоритмы для машин построенные на данных, способны делать прогнозы, выявлять закономерности, принимать решения.
ML-разработка в общих чертах представлена как следующую последовательность шагов:
Допустим, есть фотографии котиков и собачек. Нужно, чтобы компьютер научился их различать. Для этого человек загружает тысячи фотографий котиков и собачек, где каждая помечена. Например, у котиков обычно круглые мордочки, а у собачек — вытянутые. Затем, показав новую фотографию, компьютер сможет распознавать, что это за животное.
Работает машинное обучение так, что позволяет учиться на больших объемах источников, находить скрытые закономерности, которые могут использоваться, чтобы решать различные задачи.
Машинное обучение как область искусственного интеллекта имеет богатую историю развития, которая восходит к середине XX века. В 50-е Артуром Самуэлем разработана программа по игре в шашки. В 1957 г. Фрэнк Розенблатт, трудившийся в Корнеллском университете, смог создать простой компьютерный алгоритм в виде персептрона. Это был начальный этап понимания, как работает машинное обучение.
В 60-70-е годы развилась теория статистики и регрессии. Появились первые экспертные системы, применяющие правила для решения задач. Герберт Саймон и Аллен Ньюэлл из Университета Карнеги-Меллона в 1967 г. создали логическую теорию, которая позже будет использоваться в экспертных обучающих системах. В 1979 г. Ричард Соломон и Роберт Фраймович из Стэнфордского университета вводят термин «машинное обучение».
Бурное развитие нейронных сетей, в том числе обратного распространения ошибки, введение концепции машин с учителем и без учителя произошло в 1980-90-е годы.
В 2000-е годы ML становится востребованной технологией в различных областях, включая распознавание образов обработку естественного языка и предсказательную аналитику. С 2010-х годов и на современном этапе машинное обучение становится основным компонентом многих технологий, включая беспилотные автомобили, персональные ассистенты, рекомендательные системы.
Работает машинное обучение по нескольким ключевым причинам:
Машинное обучение — сервис, который широко используется в различных областях:
За обучением моделей стоят команды ML-специалистов различного профиля. Чтобы создать модель, над ней трудятся: Инженеры данных — собирают, очищают и структурируют данные, необходимые для машинного обучения. Также специалисты строят системы хранения и обработки большого количества информации.
Инженеры по машинному обучению — специалисты, выбирающие подходящие архитектуры моделей. Они пишут и оптимизируют код, автоматизируют и масштабируют машинное обучение.
Ученые-исследователи — ML-специалисты, которые разрабатывают инновационные техники для машин, проводят эксперименты и анализируют результаты, публикуют научные работы.
Предметные эксперты — специалисты, помогающие распознавать задачи. Эти ML-специалисты оценивают результаты с точки зрения предметной области, участвуют в итерациях по улучшению модели.
Чтобы создать моделей, требуется слаженная работы команды ML-специалистов, сочетающих глубокое техническое понимание с экспертизой в предметной области. Существует множество способов машинного обучения, каждый из которых работает для определенных типов задач. Рассмотрим самые распространенные типы учебы для машин.
Алгоритм обучается с разметкой данных, где выходные — известны для каждого входа. Примеры: линейная регрессия, логистическая регрессия, деревья решений.
Сначала есть набор из данных, например, фотографий. А также правильные ответы — разметки «кошка», «собака». Программа анализирует эти данные и ищет закономерности для правильных ответов.
После машинного обучения алгоритм применяет знания для правильных ответов. Например, алгоритм учился на тысячах фотографий, и сможет распознавать животных на новых изображениях. Или если мы обучили алгоритм на источниках о продажах, он сможет предсказывать будущие объемы продаж.
Ключевое преимущество обучения с учителем в том, что оно работает на решение конкретной задачи с разметками данных. Работа модели становится более точной и надежной.
Алгоритм обучается без разметок на исходниках и без указания каких-либо правильных ответов. Примеры: кластеризация, ассоциативные правила, снижение размерности. Задача — самостоятельно найти интересные структуры и шаблоны.
Например, есть сведения о продажах различных товаров в магазине. Можно дать эти данные без разметок ML, и он попытается сам распознавать группы товаров, которые обычно покупают вместе, или определить типичные модели поведения покупателей. Другой вариант — кластеризация данных. Можно сгруппировать похожие объекты (например, клиентов) в кластеры без каких-либо исходных меток или категорий.
Ключевое преимущество обучения без учителя в том, что оно позволяет находить скрытые закономерности в данных. Это особенно работает, когда есть большие объемы.
Конечно, обучение без учителя дает менее точные результаты, чем обучение с учителем, потому что у алгоритма нет доступа к правильным ответам. Но оно все равно является мощным инструментом для исследования и анализа.
Алгоритм обучается путем взаимодействия с окружающей средой и получением вознаграждения или наказания за свои действия. Примеры: Q-обучение, обучение с помощью градиентов политик. Как работает машинное обучение:
Например робота учится ходить. Первоначально он будет делать хаотические движения, но со временем, когда получает положительное вознаграждение за успешные шаги и отрицательное — за падения, он научится наиболее эффективным способам передвижения.
Рассмотрим обучение компьютера игре в шахматы. Здесь вознаграждением будет победа в партии, а штрафом — поражение. Алгоритм будет экспериментировать с различными ходами, запоминая, какие из них приводили к успеху.
Ключевое преимущество обучения с подкреплением машин в том, что оно позволяет агенту самостоятельно открывать наилучшие стратегии. При этом не требуется детальной спецификации правил или эталонных данных, которые нужны как пример при обучении с учителем. Это делает его особенно полезным для задач, где сложно заранее предсказать правильные действия.
Нейронные сети — наиболее мощное развитие машин, вдохновленные примером и работой биологических нейронов. Нейросеть сделана из взаимосвязанных элементов — нейронов. Каждый нейрон получает входные сигналы, выполняет над ними некоторые вычисления и передает результат другим нейронам. Нейроны объединены в слои: входной, выходной и скрытые слои. Входной слой получает исходные данные, скрытые слои работают над промежуточными вычислениями, а выходной слой генерирует результаты. В период обучения алгоритм подбирает оптимальные значения связей (весов) между нейронами, чтобы снизить риск ошибки между реальными и ожидаемыми выходными данными.
Работает машинное обучение благодаря способности нейросети к глубокой проработке, то есть к извлечению сложных и абстрактных признаков из данных. Это позволяет работать над задачами, с которыми традиционные машины справляются гораздо хуже, например, распознавание речи, изображений, перевод. Гибкость и универсальность сделали нейросети основным инструментом современного искусственного интеллекта.
Подмножество искусственного интеллекта с использованием многослойных нейронных сетей для сложных представлений данных. Глубокие нейросети представлены скрытыми слоями (обычно от 5 до 150) в отличие от небольших сетей с 1-2 скрытыми слоями. Это позволяет им извлекать все более абстрактные и сложные признаки из данных. Каждый последующий скрытый слой в глубокой сети обучается представлять данные на все более высоком уровне абстракции. Например, первые слои могут выделять простые низкоуровневые признаки, а последние — сложные семантические.
В глубоком машинном обучении нет необходимости вручную разрабатывать признаки, сеть сама обучается оптимальному представлению данных. Рост слоев увеличивает производительность в сложных задачах по мере роста объема данных. Так решаются задачи по распознаванию речи, машинного перевода, игр с искусственным интеллектом, самоуправляемых автомобилей и др. Глубокое машинное обучение — драйвер современного прогресса в области ИИ.