🤖 Машинное обучение: что это такое и как оно работает
В этой статье мы разберемся, что такое машинное обучение, как оно работает, из каких компонентов состоит и как применяется на практике для решения сложных задач вроде распознавания образов, прогнозирования и классификации данных.
Зачем нам машинное обучение
В детективных фильмах следователям часто приходится в поисках улик просматривать многочасовые записи с камер видеонаблюдения. Если приметы подозреваемого (внешность, одежда) уже известны, задача упрощается. Но что, если преступника еще предстоит вычислить по этому самому видео? Возможно, он как-то необычно себя ведет? Делает какой-то определенный жест? Держит что-то подозрительное в руках? Слишком долго сидит на скамейке возле детской площадки?
А что, если подозреваемых – несколько, а длительность футажа – пара недель? Очевидно, что такая работа потребует огромных затрат времени и человеческих ресурсов. И до недавнего времени ее нельзя было автоматизировать, и не только потому, что решение подобной задачи требует серьезных вычислительных мощностей. Дело в том, что традиционные алгоритмы могут выполнять только заранее продуманные действия с заранее известными типами данных. Они не способны проявлять гибкость и креативность в анализе ситуаций, действовать нестандартно, находить неочевидные связи, делать выводы на основе разрозненных фактов, как это делают люди.
Именно здесь на помощь приходят методы машинного обучения, в данном случае, – искусственные нейронные сети. Подобно биологическим нейронам мозга, они выстраивают сложные ассоциативные цепочки, обучаясь на примерах. Это позволяет компьютерной системе проявлять интеллект, близкий к человеческому. К тому же нейросети не устают, не отвлекаются и способны обрабатывать практически неограниченные объемы информации. Интеллектуальной компьютерной системе можно поручить просмотр упомянутого выше двухнедельного видео – у нее на это уйдет пара секунд, а не 14 дней. Такая система сама обнаружит людей, которые неестественно или подозрительно себя ведут, распознает опасные предметы, узнает разыскиваемого преступника, даже если его лицо почти скрыто козырьком бейсболки и солнцезащитными очками. И это всего один из примеров того, как машинное обучение может молниеносно решить сложную, объемную задачу, которая требует:
- Человеческой логики и понимания контекста – алгоритмы машинного обучения могут распознавать закономерности в данных, которые не видны человеческому глазу. ИИ-модели, обученные такими алгоритмами, могут распознавать подозрительное поведение, даже если оно не является очевидным для эксперта-человека. Или предсказывать риск инфаркта за 10 лет до приступа, на что не способен ни один врач.
- Формирования выводов и принятия решений на основе неизвестных заранее данных – модели машинного обучения могут учиться на данных, которые были получены после первоначального обучения. Это позволяет им адаптироваться к новым ситуациям и условиям.
Давайте подробнее разберемся, каким образом машинное обучение дает компьютерам способность решать такие сложные задачи.
Что такое машинное обучение
Машинное обучение – это способность компьютерных систем учиться без явного программирования. Этот процесс очень похож на то, как люди изучают новые концепции и учатся использовать их в повседневной жизни. Так, например, родители учат ребенка узнавать животных:
- Домашний кот отличается от соседского, и уж совсем не похож на игрушечных котов. Коты в разных мультфильмах выглядят по-разному. Коты на книжных иллюстрациях и в развивающих играх тоже не похожи на настоящих.
- Но если ребенку каждый раз говорить: «Это – кот», «Это – кошка», он очень быстро запомнит, что коты и кошки – это одно и то же животное, а коты/кошки на картинках, в мультфильмах, и в игрушечном виде – репрезентация настоящих животных.
- Чуть позже ребенок уже сам может нарисовать кота, наделяя его всеми узнаваемыми признаками: треугольными ушами, длинным хвостом, четырьмя лапами и усами.
Машинное обучение работает точно так же – система не программируется напрямую, а «изучает прецеденты» и сама выявляет закономерности, адаптируясь к новым ситуациям и улучшая свои способности по мере обучения. Это позволяет решать задачи, где сложно прописать все правила. Но, в отличие от человека, компьютер способен проанализировать гораздо больше данных и быстрее выявить скрытые зависимости. Разберемся, как это происходит.
Три кита машинного обучения: данные, алгоритмы, модели
Данные – основа машинного обучения. Без данных алгоритмы машинного обучения не могут учиться и создавать модели.
Алгоритмы машинного обучения – это математические формулы, которые используются для обучения моделей. Алгоритмы МО обнаруживают закономерности в данных, а затем делают выводы и принимают решения на основе этих закономерностей.
Модели машинного обучения – это математические объекты, которые представляют собой результат обучения алгоритмов машинного обучения. Модели машинного обучения используют для решения различных практических задач.
Данные
Основная идея машинного обучения – научить компьютерную систему находить закономерности, делать выводы и прогнозы, решать задачи и улучшать свои результаты на основе опыта, полученного из данных. Данные – это фундамент машинного обучения и незаменимое сырье для алгоритмов. Без достаточного объема качественных, разнообразных и репрезентативных данных алгоритмы МО не могут создавать модели, пригодные для практического использования:
- Во время обучения алгоритмы пытаются найти закономерности в данных. На основе этих закономерностей создается модель.
- В процессе «переваривания» большого объема данных модели уточняют свои внутренние параметры, которые используются для принятия решений.
- Уточнение внутренних параметров приводит к улучшению производительности и способностей модели к обобщению новых данных.
В идеале данные должны быть:
- Качественными – точными, достоверными, полными и актуальными.
- Разнообразными – широкий диапазон значений позволяет алгоритмам находить более общие закономерности, которые в дальнейшем будут применяться к новым данным.
- Репрезентативными – собранными из различных источников и отражающими максимально возможный диапазон ситуаций.
В реальности эти критерии соблюдаются не всегда, и некоторые модели МО демонстрируют предвзятость, предубеждения и спорные точки зрения. Кроме того, качество данных сильно влияет на производительность модели и ее способности к обобщению:
- Производительность модели показывает, насколько точно она может выполнять свою задачу. Например, если модель используется для классификации изображений, то ее производительность определяется тем, насколько точно она может предсказать, является ли изображение кошкой или собакой.
- Обобщение модели отражает, насколько хорошо она может выполнять свою задачу на новых данных. Например, если модель обучена на наборе данных изображений кошек и собак, то уровень ее обобщения определяется тем, насколько точно она может предсказать, является ли изображение кошкой или собакой на новом, не виденном ранее наборе данных изображений кошек и собак.
По мере того как модели в ходе обучения подвергаются воздействию возрастающего количества данных, они получают возможность усваивать более широкий диапазон закономерностей. Это позволяет им:
- Принимать более точные решения, что приводит к повышению производительности.
- Делать более точные прогнозы, что повышает уровень обобщения.
Алгоритмы
Традиционный алгоритм — это набор инструкций, которые помогают решить определенную задачу или проблему. В машинном обучении цель состоит в том, чтобы научить компьютер находить собственные алгоритмы, изучая данные без явного программирования – это главное отличие алгоритмов МО от обычных. Алгоритмы МО могут находить собственные зависимости и закономерности, которые затем используются для предсказания результатов или принятия решений. Обычные алгоритмы, напротив, жестко запрограммированы и не могут изменять свои правила в зависимости от данных.
Иными словами, алгоритмы машинного обучения – это не жесткие инструкции, а скорее методы, которые позволяют компьютерам обучаться на основе данных. Они используются для решения различных задач, таких как распознавание образов, классификация, прогнозирование и т. д.
Машинное обучение – это область искусственного интеллекта, которая занимается обучением компьютеров выполнять задачи без явного программирования. Алгоритмы машинного обучения позволяют компьютерам научиться выполнять задачи, основываясь на данных, на которых их обучают.
Существует множество различных алгоритмов МО, каждый из которых имеет свои преимущества и недостатки. Вот 10 самых популярных алгоритмов:
1. Линейная регрессия
Линейная регрессия – это простой, но эффективный алгоритм, который используется для прогнозирования непрерывных значений. Он работает, создавая линейную функцию y = ax + b.
2. Логистическая регрессия
Логистическая регрессия – это разновидность регрессии, которая используется для прогнозирования бинарных значений («да» или «нет», «положительный» или «отрицательный». Она работает, создавая логистическую функцию y = 1 / (1 + exp(-ax)).
3. K-средних
K-средних – это алгоритм кластеризации, который используется для группировки похожих данных вместе. Он работает, разделяя данные на k кластеров, каждый из которых имеет центроид, представляющий собой среднее значение данных в кластере.
4. Метод опорных векторов
Метод опорных векторов – это алгоритм классификации, определяющий границу, которая наилучшим образом разделяет данные на две категории. Он работает, выбирая опорные векторы, которые находятся ближе всего к границе, и строит границу вокруг них.
5. Байесовский классификатор
Байесовский классификатор – это алгоритм классификации, который использует теорию вероятностей для принятия решений. Он работает, оценивая вероятность того, что каждое наблюдение принадлежит к каждой категории, и затем выбирает категорию с наибольшей вероятностью.
6. Нейронные сети
Нейронные сети – это сложные алгоритмы машинного обучения, которые имитируют работу человеческого мозга. Они состоят из множества взаимосвязанных узлов, которые могут обрабатывать информацию и учиться на ней.
7. Сверточные нейросети
Сверточные нейросети – это разновидность нейронных сетей, которые используются для обработки изображений и других данных, которые имеют пространственную структуру. Они работают, используя сверточные ядра для извлечения признаков из данных.
8. Деревья решений
Деревья решений – это простые, но эффективные алгоритмы классификации, создающие древовидную структуру, которая описывает взаимосвязь между данными.
9. Алгоритм случайного леса
Алгоритм случайного леса – это ансамблевый алгоритм, который использует множество деревьев решений для повышения точности классификации. Он работает, создавая множество деревьев решений на случайных подмножествах данных, а затем использует их для принятия решения.
10. Бустинг
Бустинг – это семейство ансамблевых алгоритмов, которые работают, последовательно добавляя новые модели к существующей модели. Каждый новый набор моделей пытается исправить ошибки предыдущей модели.
Модели
Модели машинного обучения – это конечный результат обработки данных алгоритмами МО. Алгоритмы «изучают» закономерности и взаимосвязи в обучающих данных, чтобы создать модель, которая может обобщить эти знания для новых данных.
Например, алгоритм машинного обучения может обрабатывать тысячи изображений кошек и собак с метками. Анализируя визуальные закономерности на этих изображениях, он разрабатывает математическую модель, которая может распознавать и различать кошек и собак на новых, не виденных ранее изображениях.
Нейронные сети, линейная регрессия, деревья решений и другие типы моделей улавливают различные типы закономерностей и используются для разных задач прогнозирования. После обучения эти модели могут маркировать новые данные, делать численные прогнозы или принимать решения на основе того, чему они научились из обучающих данных.
Таким образом, модели машинного обучения инкапсулируют знания, полученные алгоритмами, так что их можно применить к реальным данным. Это позволяет моделям автоматизировать решение множества задач, связанных с распознаванием изображений, прогнозированием, классификацией, рекомендациями и так далее. Например, модель, обученную на наборе данных о биржевой стоимости ценных бумаг, можно использоваться для прогнозирования будущих цен на акции.
Каждая конкретная модель машинного обучения опирается на соответствующий ей тип алгоритма обучения, который и дает название этой модели:
- Линейная регрессия – прогнозирует числовое значение на основе входных данных. Используется для предсказания цен, спроса и других числовых значений.
- Логистическая регрессия – классифицирует объекты на 2 категории по входным данным. Рассчитывает вероятность принадлежности к определенному классу, часто используется для бинарной классификации и анализа рисков.
- K-средних – применяется в сегментации клиентов, объектов.
- Опорные векторы – используется в компьютерном зрении для классификации изображений.
- Байесовская классификация – хорошо работает на небольших данных. Используется в медицинской диагностике.
- Нейронные сети – используются для решения самых сложных задач: распознавания образов, обработки естественного языка и т. д.
- Сверточные нейросети – лучше всего подходят для обработки данных с регулярной структурой (изображения, текст, аудио). Используются в компьютерном зрении.
- Деревья решений – строят последовательность условий в виде дерева для классификации данных. Например, сначала они проверяют возраст и пол пользователя, затем его действия в приложении для определения покупательского поведения.
- Случайный лес – отлично справляется с классификацией, может прогнозировать стоимость, продажи, возврат клиентов.Точно определяет порядок важности объектов по некоторому критерию, часто используются в рекомендательных системах для ранжирования товаров, контента и т. п.
- Бустинг – позволяет достичь высокой точности за счет создания «коллективного разума» из простых алгоритмов: повышает точность классификации, уменьшает вероятность ошибок, помогает выявить аномалии.
Методы обучения
Машинное обучение развивается быстро, однако большинство популярных методов обучения можно разделить на три типа:
Обучение с учителем
Модели учатся на примерах – размеченных данных. Им даётся обучающая выборка с правильными ответами – лейблами классов. Например, изображения, подписанные «кошка», «собака». Или исторические данные о платежеспособности клиентов банков. На основе этих примеров модель обучается распознавать кошек/собак или предсказывать дефолт. Google использует обучение с учителем для распознавания изображений в сервисах Google Фото и Google Lens.
Обучение без учителя
Модели сами ищут скрытые закономерности в данных. Они могут найти группы похожих объектов (кластеризация), выявить аномалии или построить ассоциативные правила. Пример – сегментация пользователей сайта по поведению. Netflix использует обучение без учителя для группировки фильмов и телешоу по категориям, а также для рекомендаций пользователям новых фильмов и телешоу, которые могут им понравиться.
Обучение с подкреплением
Напоминает дрессировку животных – модель сама пробует действия в некой среде и получает поощрение или наказание в виде числового сигнала за «правильное» или «неправильное» поведение. Так учатся модели для робототехники, управления беспилотниками, игр и других задач. Например, бот в компьютерной игре учится побеждать, получая очки. OpenAI использует обучение с подкреплением, чтобы научить агентов играть в Dota 2 и StarCraft II.
Это три основных парадигмы, но на практике их часто комбинируют. Например, используют обучение с учителем на начальном этапе, а затем предоставляют модели возможность обучаться самостоятельно, анализируя новые непомеченные данные в автоматическом режиме. Это помогает адаптировать модель к возможным изменениям во входных данных, повысить точность на ранее не встречавшихся примерах. Такой комбинированный подход часто дает лучшее качество работы модели.
Перспективы машинного обучения
Машинное обучение в ближайшие годы изменит многие аспекты нашей жизни. Уже сейчас МО используются в широком спектре приложений, включая распознавание образов, обработку естественного языка, анализ данных и робототехнику:
- Goldman Sachs применяет МО для прогнозирования цен на акции, а компания JPMorgan Chase –м для выявления мошенничества с кредитными картами.
- Netflix использует МО для рекомендаций пользователям новых фильмов и сериалов, а компания Amazon – для таргетирования рекламы на потенциальных покупателей и для персонализации предложений.
- General Motors с помощью МО оптимизирует процессы производства автомобилей, а компания Siemens предотвращает поломки оборудования.
- Walmart применяет МО для повышения эффективности логистики, Google – для улучшения, IBM –для повышения инфобезопасности и продаж, управления кадрами и финансами, создания новых продуктов и услуг.
Самые большие перспективы МО открывает в этих сферах:
- Медицина – диагностика заболеваний, разработка новых лекарств и персонализированное лечение.
- Образование – персонализация и повышение эффективности обучения.
- Транспорт – разработка самоуправляемых автомобилей, повышение безопасности на дорогах и оптимизация маршрутов общественного транспорта.
- Энергетика – повышения эффективности использования энергии и оптимизация работы энергетических систем.
Не все обстоит радужно, разумеется. Существуют определенные риски – например, алгоритмы машинного обучения могут быть предвзятыми, если они обучаются на данных, которые сами по себе предвзяты. Кроме того, алгоритмы МО можно использовать для создания потенциально опасных автономных систем. Важно осознавать эти риски и принимать меры для их снижения, чтобы машинное обучение не закончилось восстанием машин. А вы уже пробовали себя в разработке приложения на основе МО? Расскажите в комментариях.
Хочу быстро освоить базовые концепции машинного обучения. Какой курс порекомендуете?
Proglib Academy запустила курс «Базовые модели ML и приложения» для начинающих. Обучение проходит в формате видеолекций и текстовых конспектов. Все лекции и дополнительные материалы доступны на образовательной платформе и остаются у вас после окончания курса.
На курсе вы:
🔹познакомитесь с основными моделями машинного обучения;
🔹научитесь выбирать и применять подходящие tree-based модели;
🔹получите основу для дальнейшего изучения более сложных нейтронных сетей.
Кому будет полезен курс?
Начинающим в IT. Тем, кто выбирает направление и хочет попробовать себя в ML.
Математикам. Увлекаетесь математикой и хотите перейти от теории к практике, а также научиться решать реальные бизнес-задачи.
Разработчикам. Уже есть опыт