Машинное обучение, возможно, еще не стало нарицательным, но в большинстве случаев оно присутствует. Независимо от того, загрузили ли вы фотографию на Facebook, проложили маршрут с помощью Google Maps или взяли на вооружение домашнего помощника, такого как Alexa от Amazon, вы извлекли выгоду из этой технологии. В некотором смысле термин «машинное обучение» говорит сам за себя: это процесс машинного обучения. Однако то, что означает для машины обучение, является более темной территорией.

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

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

Это приводит нас к одному из ключевых различий между традиционным компьютерным программированием и методами машинного обучения. Традиционно поведение компьютера явно определялось инженером. Например, если мне нужна сумма двух чисел, я должен передать компьютеру каждое число, а также математическую операцию, которую я хотел бы выполнить над ними. Если, скажем, моя инструкция «1 + 1», компьютер выдает ответ «2». (Стоит отметить, что это работает только потому, что кто-то уже явно запрограммировал компьютер на выполнение операции сложения). Итак, исторически компьютерные системы на 100% представляли собой сумму инструкций, которые они получали, и их мощь заключалась в способности производить сложные вычисления с невозможными ранее скоростями.

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

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

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

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

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

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

Контролируемое обучение

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

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

Вот пример. Скажем, я обучаю алгоритм машинного обучения прогнозировать состояние двуокиси водорода при определенных температурах. Прежде чем попросить его выполнить прогноз, я сначала передам ему выборку данных, из которых можно вывести закономерность: 12°C = жидкость; 150°C = газ; -12°C = твердый; -3°C = твердое вещество, 88°C = жидкость; и т. д., и т. д. Если бы вы попросили меня, учитывая эту чрезвычайно маленькую выборку и отсутствие предварительных знаний, предсказать состояние H2O при 75 ° C, я мог бы довольно уверенно предположить, что это «жидкость». Почему? Поскольку я знаю, что H2O является жидкостью при 12 °C, а также при 88 °C, и хотя я не уверен, что твердое тело, жидкость и газ определяются только в трех различных и смежных температурных диапазонах, безопаснее предположить, что H2O, хранящаяся при температуре от 12°C до 88°C, также будет жидкой. Наш алгоритм контролируемого машинного обучения работает по аналогичной логике. Он будет отображать отношения, продемонстрированные в выборочных данных, чтобы разработать более точную линию прогноза.

Неконтролируемое обучение

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

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

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

Обучение с подкреплением

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

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

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

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

использованная литература

¹ Франсуа Шоле, Глубокое обучение с помощью Python, (2017 г.)

Полезные ресурсы

Гэвин Эдвардс, Машинное обучение | Введение, (2018), ССЫЛКА

Кэсси Козырков, Самое простое объяснение машинного обучения, которое вы когда-либо читали, (2018), ССЫЛКА

Сиддхарт Пандей, Введение в машинное обучение,ССЫЛКА