Машинное обучение позволяет компьютерам решать задачи, которые до сих пор были под силу только людям.
От управления автомобилями до перевода речи - машинное обучение способствует взрывному росту возможностей искусственного интеллекта, помогая программному обеспечению разобраться в запутанном и непредсказуемом реальном мире.
Но что именно представляет собой машинное обучение и что делает возможным нынешний бум машинного обучения?
ЧТО ТАКОЕ МАШИННОЕ ОБУЧЕНИЕ?
На самом высоком уровне машинное обучение - это процесс обучения компьютерной системы тому, как делать точные прогнозы при подаче данных.
Этими прогнозами могут быть ответы на вопросы о том, является ли кусочек фрукта на фотографии бананом или яблоком, обнаружение людей, переходящих дорогу перед самоуправляемым автомобилем, определение того, относится ли употребление слова "книга" в предложении к книге в мягкой обложке или к бронированию номера в отеле, является ли электронное письмо спамом, или распознавание речи достаточно точно для создания титров к видео на YouTube.
Ключевое отличие от традиционного компьютерного программного обеспечения заключается в том, что человек-разработчик не пишет код, который инструктирует систему, как отличить банан от яблока.
Вместо этого модель машинного обучения была обучена надежному различению фруктов путем тренировки на большом количестве данных, в данном случае, вероятно, на огромном количестве изображений, помеченных как содержащие банан или яблоко.
КАКОВЫ ОСНОВНЫЕ ТИПЫ МАШИННОГО ОБУЧЕНИЯ?
Машинное обучение обычно делится на две основные категории: контролируемое и неконтролируемое обучение.
ЧТО ТАКОЕ КОНТРОЛИРУЕМОЕ ОБУЧЕНИЕ?
Этот подход, по сути, обучает машины на примерах.
В процессе обучения в рамках контролируемого обучения системы получают большое количество маркированных данных, например, изображения рукописных цифр с аннотацией, указывающей, какому числу они соответствуют. При достаточном количестве примеров система контролируемого обучения научится распознавать скопления пикселей и фигур, связанных с каждой цифрой, и в конечном итоге сможет распознавать рукописные числа, надежно различая цифры 9 и 4 или 6 и 8.
Однако для обучения таких систем обычно требуются огромные объемы маркированных данных, причем некоторым системам для освоения задачи требуется миллионы примеров.
В результате наборы данных, используемые для обучения этих систем, могут быть огромными: так, в открытом наборе данных Google Open Images Dataset содержится около девяти миллионов изображений, хранилище маркированных видео YouTube-8M содержит семь миллионов маркированных видео, а ImageNet, одна из первых баз данных такого рода, содержит более 14 миллионов категоризированных изображений. Размер обучающих баз данных продолжает расти: Facebook объявил, что собрал 3,5 миллиарда изображений, общедоступных на Instagram, используя хэштеги, прикрепленные к каждому изображению в качестве меток. Использование одного миллиарда этих фотографий для обучения системы распознавания изображений позволило достичь рекордного уровня точности - 85,4% - по эталону ImageNet.
Трудоемкий процесс маркировки наборов данных, используемых для обучения, часто осуществляется с помощью крауд-сервисов, таких как Amazon Mechanical Turk, которые предоставляют доступ к большому пулу недорогой рабочей силы по всему миру. Например, над созданием ImageNet в течение двух лет трудились около 50 000 человек, набранных в основном через Amazon Mechanical Turk. Однако подход Facebook к использованию общедоступных данных для обучения систем может стать альтернативным способом обучения систем с использованием миллиардных наборов данных без лишних затрат на ручную маркировку.
ЧТО ТАКОЕ БЕСКОНТРОЛЬНОЕ ОБУЧЕНИЕ?
В отличие от этого, обучение без контроля ставит перед алгоритмами задачу выявления закономерностей в данных, пытаясь обнаружить сходства, которые разделяют эти данные на категории.
В качестве примера можно привести Airbnb, объединяющий дома, сдаваемые в аренду, по районам, или Google News, объединяющий истории на схожие темы каждый день.
Алгоритмы несамостоятельного обучения не предназначены для выделения конкретных типов данных, они просто ищут данные, которые можно сгруппировать по сходству, или аномалии, которые выделяются.
ЧТО ТАКОЕ ПОЛУСАМОСТОЯТЕЛЬНОЕ ОБУЧЕНИЕ?
Важность огромных наборов меченых данных для обучения систем машинного обучения со временем может уменьшиться в связи с появлением полуконтролируемого обучения.
Как следует из названия, этот подход смешивает контролируемое и неконтролируемое обучение. Метод основан на использовании небольшого количества маркированных данных и большого количества немаркированных данных для обучения систем. Маркированные данные используются для частичного обучения модели машинного обучения, а затем эта частично обученная модель используется для маркировки немаркированных данных, этот процесс называется псевдомаркировкой. Затем модель обучается на полученной смеси меченых и псевдомеченых данных.
В последнее время жизнеспособность полусупервизорного обучения повысилась благодаря генеративным адверсарным сетям (GAN) - системам машинного обучения, которые могут использовать помеченные данные для генерации совершенно новых данных, которые, в свою очередь, могут быть использованы для обучения модели машинного обучения.
Если полусупервизорное обучение станет таким же эффективным, как и супервизорное, то доступ к огромным вычислительным мощностям может оказаться более важным для успешного обучения систем машинного обучения, чем доступ к большим наборам данных с метками.
ЧТО ТАКОЕ ОБУЧЕНИЕ С ПОДКРЕПЛЕНИЕМ?
Чтобы понять, что такое обучение с подкреплением, нужно вспомнить, как человек впервые учится играть в старую компьютерную игру, не зная правил и способов управления игрой. Хотя они могут быть полными новичками, в конечном итоге, глядя на взаимосвязь между кнопками, которые они нажимают, тем, что происходит на экране, и их игровым счетом, их результаты будут становиться все лучше и лучше.
Примером обучения с подкреплением может служить Deep Q-сеть компании Google DeepMind, которая победила человека в целом ряде старинных видеоигр. Система получает пиксели из каждой игры и определяет различную информацию о состоянии игры, например, расстояние между объектами на экране. Затем она считает, как состояние игры и действия, которые она выполняет в игре, связаны с полученным результатом.
В процессе многих циклов игры, в конечном итоге, система строит модель того, какие действия максимизируют счет в тех или иных обстоятельствах, например, в случае видеоигры Breakout, куда следует переместить весло, чтобы перехватить мяч.
КАК РАБОТАЕТ КОНТРОЛИРУЕМОЕ МАШИННОЕ ОБУЧЕНИЕ?
Все начинается с обучения модели машинного обучения - математической функции, способной неоднократно изменять свои действия до тех пор, пока она не сможет делать точные прогнозы при получении новых данных.
Перед началом обучения сначала необходимо выбрать, какие данные собирать, и решить, какие характеристики данных важны.
Очень упрощенный пример того, что такое характеристики данных, приведен в этом объяснении Google, где модель машинного обучения обучается распознавать разницу между пивом и вином на основе двух характеристик - цвета напитков и объема алкоголя (ABV).
Каждый напиток маркируется как пиво или вино, а затем собираются соответствующие данные с использованием спектрометра для измерения цвета и гидрометра для измерения содержания алкоголя.
Важно отметить, что данные должны быть сбалансированы, в данном случае - иметь примерно равное количество примеров пива и вина.
Затем собранные данные делятся на большую часть для обучения, скажем, около 70%, и меньшую часть для оценки, скажем, оставшиеся 30%. Эти оценочные данные позволяют протестировать обученную модель, чтобы увидеть, насколько хорошо она будет работать на реальных данных.
Перед началом обучения обычно проводится этап подготовки данных, в ходе которого выполняются такие процессы, как дедупликация, нормализация и исправление ошибок.
Следующим шагом будет выбор подходящей модели машинного обучения из множества доступных. Каждая из них имеет сильные и слабые стороны в зависимости от типа данных, например, некоторые подходят для работы с изображениями, некоторые - с текстом, а некоторые - с чисто числовыми данными.
Прогнозы, сделанные с помощью контролируемого обучения, делятся на два основных типа: классификация, когда модель относит данные к заранее определенным классам, например, определяет электронные письма как спам или не спам, и регрессия, когда модель предсказывает некоторую непрерывную величину, например, цены на жилье.
КАК РАБОТАЕТ КОНТРОЛИРУЕМОЕ ОБУЧЕНИЕ МАШИННОГО ОБУЧЕНИЯ?
По сути, процесс обучения заключается в том, что модель машинного обучения автоматически настраивает свои функции до тех пор, пока не сможет делать точные прогнозы на основе данных, в примере с Google правильно определяя напиток как пиво или вино, когда модель получает цвет напитка и ABV.
Хороший способ объяснить процесс обучения - рассмотреть пример с использованием простой модели машинного обучения, известной как линейная регрессия с градиентным спуском. В следующем примере модель используется для оценки того, сколько мороженого будет продано в зависимости от температуры воздуха на улице.
Представьте себе, что вы взяли прошлые данные о продажах мороженого и температуре наружного воздуха и расположили их друг против друга на графике разброса - по сути, создав россыпь дискретных точек.
Чтобы предсказать, сколько мороженого будет продано в будущем в зависимости от температуры наружного воздуха, можно провести линию, проходящую через середину всех этих точек, как показано на рисунке ниже.
После этого можно предсказать продажи мороженого при любой температуре, найдя точку, в которой линия проходит через определенную температуру, и считав соответствующие продажи в этой точке.
Возвращаясь к обучению модели машинного обучения, в данном случае обучение линейной регрессионной модели включает в себя корректировку вертикального положения и наклона линии до тех пор, пока она не окажется в середине всех точек на графике рассеяния.
На каждом этапе процесса обучения измеряется вертикальное расстояние каждой из этих точек от линии. Если в результате изменения наклона или положения линии расстояние до этих точек увеличивается, то наклон или положение линии изменяется в противоположном направлении, и проводится новое измерение.
Таким образом, путем множества мельчайших изменений наклона и положения линии, линия будет продолжать двигаться, пока в конце концов не окажется в положении, которое хорошо соответствует распределению всех этих точек. После завершения этого процесса обучения линия может быть использована для точного прогнозирования того, как температура влияет на продажи мороженого, и можно считать, что модель машинного обучения обучена.
Хотя обучение более сложных моделей машинного обучения, таких как нейронные сети, отличается по нескольким параметрам, оно схоже в том, что в нем также может использоваться метод градиентного спуска, при котором значения "весов", переменных, которые комбинируются с входными данными для создания выходных значений, многократно подстраиваются до тех пор, пока выходные значения, создаваемые моделью, не будут максимально приближены к желаемым.
ПОЧЕМУ МАШИННОЕ ОБУЧЕНИЕ ТАК УСПЕШНО?
Хотя машинное обучение не является новой методикой, интерес к этой области в последние годы резко возрос.
Это возрождение последовало за серией прорывов, когда глубокое обучение установило новые рекорды точности в таких областях, как распознавание речи и языка, а также компьютерное зрение.
Эти успехи стали возможны благодаря двум факторам: во-первых, огромному количеству изображений, речи, видео и текстов, доступных для обучения систем машинного обучения.
Но еще более важным стало появление огромного количества параллельной вычислительной мощности, благодаря современным графическим процессорам (GPU), которые можно объединять в кластеры для создания мощных систем машинного обучения.
Сегодня любой человек, имеющий подключение к Интернету, может использовать эти кластеры для обучения моделей машинного обучения с помощью облачных сервисов, предоставляемых такими компаниями, как Amazon, Google и Microsoft.
По мере того как использование машинного обучения набирает обороты, компании создают специализированное оборудование, предназначенное для запуска и обучения моделей машинного обучения. Примером таких специализированных чипов является Tensor Processing Unit (TPU) от Google, который ускоряет скорость, с которой модели машинного обучения, построенные с использованием программной библиотеки TensorFlow от Google, могут выводить информацию из данных, а также скорость, с которой эти модели могут быть обучены.
Эти чипы используются не только для обучения моделей для Google DeepMind и Google Brain, но и для моделей, лежащих в основе Google Translate и распознавания изображений в Google Photo, а также сервисов, позволяющих общественности создавать модели машинного обучения с помощью Google TensorFlow Research Cloud. Третье поколение этих чипов было представлено на конференции Google I/O в мае 2018 года, и с тех пор они были упакованы в мощные комплексы машинного обучения, называемые капсулами, которые могут выполнять более ста тысяч триллионов операций с плавающей запятой в секунду (100 петафлопс).
В 2020 году компания Google заявила, что ее TPU четвертого поколения в 2,7 раза быстрее, чем TPU предыдущего поколения, в MLPerf - эталоне, который измеряет, насколько быстро система может делать выводы с помощью обученной модели ML. Постоянная модернизация TPU позволила Google улучшить свои сервисы, построенные на основе моделей машинного обучения, например, вдвое сократить время обучения моделей, используемых в Google Translate.
По мере того как аппаратное обеспечение становится все более специализированным, а программные платформы машинного обучения совершенствуются, все чаще задачи ML выполняются на телефонах и компьютерах потребительского класса, а не в облачных центрах обработки данных. Летом 2018 года компания Google сделала шаг в направлении обеспечения такого же качества автоматического перевода на телефонах, которые находятся в автономном режиме, как и в режиме онлайн, внедрив локальный нейронный машинный перевод для 59 языков в приложение Google Translate для iOS и Android.
ДЛЯ ЧЕГО ИСПОЛЬЗУЕТСЯ МАШИННОЕ ОБУЧЕНИЕ?
Системы машинного обучения используются повсюду вокруг нас и сегодня являются краеугольным камнем современного интернета.
Системы машинного обучения используются для того, чтобы рекомендовать вам, какой товар вы хотите купить на Amazon или какое видео вы хотите посмотреть на Netflix.
Каждый поиск Google использует множество систем машинного обучения, чтобы понять язык вашего запроса и персонализировать результаты, так что любители рыбалки, ищущие слово "bass", не будут завалены результатами о гитарах. Аналогичным образом, системы распознавания спама и фишинга в Gmail используют модели машинного обучения, чтобы очистить ваш почтовый ящик от мошеннических сообщений.
Одной из наиболее очевидных демонстраций возможностей машинного обучения являются виртуальные помощники, такие как Siri от Apple, Alexa от Amazon, Google Assistant и Microsoft Cortana.
Каждый из них в значительной степени полагается на машинное обучение для поддержки распознавания голоса и способности понимать естественный язык, а также нуждается в огромном корпусе данных для ответов на запросы.
Но помимо этих весьма заметных проявлений машинного обучения, системы начинают находить применение практически в каждой отрасли. К ним относятся: компьютерное зрение для автомобилей без водителя, беспилотников и роботов-доставщиков; распознавание и синтез речи и языка для чат-ботов и сервисных роботов; распознавание лиц для наблюдения в таких странах, как Китай; помощь радиологам в определении опухолей на рентгеновских снимках, помощь исследователям в выявлении генетических последовательностей, связанных с заболеваниями, и идентификации молекул, которые могут привести к созданию более эффективных лекарств в здравоохранении; возможность предиктивного обслуживания инфраструктуры путем анализа данных датчиков IoT; компьютерное зрение, на основе которого работает супермаркет Amazon Go без кассира, достаточно точная транскрипция и перевод речи для деловых встреч - список можно продолжать и продолжать.
В 2020 году нейронная сеть GPT-3 (Generative Pre-trained Transformer 3) от OpenAI попала в заголовки газет благодаря своей способности писать, как человек, практически на любую тему, которую только можно придумать.
GPT-3 представляет собой нейронную сеть, обученную на миллиардах англоязычных статей, доступных в открытом Интернете, и может генерировать статьи и ответы в ответ на текстовые подсказки. Хотя на первый взгляд часто было трудно отличить текст, сгенерированный GPT-3, от человеческого, при ближайшем рассмотрении предложения системы не всегда выдерживали тщательную проверку.
Глубокое обучение может в конечном итоге проложить путь для роботов, которые смогут учиться непосредственно у человека. Исследователи из Nvidia создали систему глубокого обучения, предназначенную для обучения робота выполнению задачи, просто наблюдая, как эту задачу выполняет человек.
ОБЪЕКТИВНЫ ЛИ СИСТЕМЫ МАШИННОГО ОБУЧЕНИЯ?
Как и следовало ожидать, выбор и объем данных, используемых для обучения систем, влияет на задачи, для решения которых они подходят. Растет беспокойство по поводу того, как системы машинного обучения кодируют человеческие предубеждения и социальное неравенство, отраженные в обучающих данных.
Например, в 2016 году Рейчел Татман, аспирант-исследователь Национального научного фонда на кафедре лингвистики Вашингтонского университета, обнаружила, что система распознавания речи Google лучше распознает мужские голоса, чем женские, при автоподборке видеороликов на YouTube, что она объяснила "несбалансированными обучающими наборами" с преобладанием мужчин.
Было показано, что системы распознавания лиц с большим трудом правильно идентифицируют женщин и людей с темным цветом кожи. Вопросы об этичности использования таких навязчивых и потенциально предвзятых систем для работы полиции привели к тому, что крупные технологические компании временно прекратили продажи систем распознавания лиц правоохранительным органам.
В 2018 году компания Amazon также отказалась от инструмента машинного обучения при приеме на работу, который определял кандидатов-мужчин как более предпочтительных.
По мере продвижения систем машинного обучения в новые области, такие как помощь в медицинской диагностике, все большее беспокойство вызывает возможность перекоса систем в сторону предоставления лучших услуг или более справедливого отношения к определенным группам людей. Сегодня ведутся исследования, направленные на устранение предвзятости в самообучающихся системах.