Ваш голосовой помощник на смартфоне такой умный, как вы думаете?

Вы, наверное, недавно слышали о достижениях в области искусственного интеллекта или видели рекламу телевизора или смартфона с искусственным интеллектом. А может быть, вы запасаетесь умной техникой, планируя построить себе «умный» дом?

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

Машинное обучение на практике - цены на недвижимость

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

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

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

Как работает машинное обучение?

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

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

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

Если мы хотим найти взаимосвязь между переменными функции и целью (как в нашем случае с недвижимостью), нам необходимо обучить модель машинного обучения. Модель и обучение - два важнейших понятия в машинном обучении. Модель машинного обучения - это функция, которая используется для прогнозирования цели на основе переменных характеристик. Модели машинного обучения варьируются от очень простых функций (например, y = a + b * x линейной регрессии) до чрезвычайно сложных объектов с сотнями миллионов параметров и сложных способов преобразования и объединения функций (так называемые искусственные нейронные сети ).

Модельное обучение

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

Наша задача с недвижимостью - это пример довольно стандартного применения ML. Сначала мы собираем данные о многих экземплярах интересующего объекта (дома и квартиры), включая их характеристики (общая площадь, количество спален и т. Д.) И цель (цена). Затем мы собираем эти данные в табличной форме, где каждая строка будет соответствовать одному дому или квартире, а последовательные столбцы будут содержать данные о характеристиках и цене. После этого мы выбираем несколько моделей машинного обучения и обучаем их подходящим алгоритмам обучения.

Стандартные приложения машинного обучения

Такой подход «строка-столбец» характерен для традиционных (стандартных) приложений машинного обучения. Он уже много лет используется во многих практических приложениях. Мы находим стандартные модели машинного обучения в системах кредитного скоринга, моделях прогнозирования оттока клиентов или моделях прогнозного обслуживания.

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

Глубокое обучение в голосовых помощниках

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

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

Автоматическое распознавание речи

Решение первой упомянутой проблемы, автоматическое распознавание речи, исследовалось с 1950-х годов, но стало широко известно публике в начале 2010-х, когда крупнейшие технологические компании выпустили свои варианты голосового поиска (например, Google) и голосовых помощников (например, Siri от Apple) на смартфонах. Распознавание речи стало настолько точным благодаря применению Deep Learning.

Как работает глубокое обучение?

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

Чтобы наш помощник извлекал необходимую информацию из записанной речи, нам нужно определить цель разговора. В нашем случае целью будет сбор данных об особенностях недвижимости - ее общей площади, количестве спален или адресе. Для каждой функции мы определяем вопрос, который задаст помощник, и даем ему несколько примеров ответов, которые может дать пользователь, с заполнителями для извлеченной информации, например ‘В моем доме ‹number_of_bedrooms› спален’.

Роль языковых моделей

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

Голосовые помощники могут быть очень полезны в задачах, для которых они созданы, а процесс их создания с нуля требует огромного количества ресурсов, таланта и работы. Но какими бы сложными они ни казались (и сколь бы изобретательными они ни были), они представляют собой просто последовательности нейронных сетей, каждая из которых обучена решать заданную проблему, передавая свои выходные данные следующей, пока не будет возвращен ожидаемый результат. Голосовые помощники не могут ответить на все наши вопросы и делать то, для чего они не были специально созданы. Хотя «разговор» с ними иногда может быть увлекательным научно-фантастическим опытом, они не очень умны и не имеют «представления» о том, что делают.

Понимание изображений с помощью глубокого обучения

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

Паттерны в обработке изображений

Не вдаваясь в подробности, свертка - это способ преобразования пиксельных данных из изображений в нейронных сетях, при котором сеть «пытается» захватить как базовые, так и более сложные шаблоны в том, как цвета расположены в соседних пикселях. Узор, найденный путем свертки, может быть горизонтальной линией, точкой, полукругом или чем-то более сложным, например, числом восемь или кругом с двумя меньшими кругами посередине. Сеть изучает, как базовые паттерны создают сложные и как последние составляют изображения объектов, которые сеть должна распознавать.

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

Ценность данных

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

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

Создание произведений искусства и подделок с помощью глубокого обучения

Вы, наверное, слышали о глубоких фейках - фальшивых видео, в которых изображены известные люди, которые делают или говорят то, чего на самом деле не делали или не говорили. Эти реально выглядящие подделки стали возможны благодаря появлению в 2014 году Generative Adversarial Networks (GAN). Некоторые приложения, изменяющие изображение (например, то, которое может сделать вас намного старше), также используют их.

Сети GAN состоят из двух основных частей, каждая из которых является нейронными сетями. Одна из сетей (Генератор) пытается генерировать реалистичные объекты (например, изображения), а другая (Дискриминатор ) пытается отличить сгенерированные объекты от реальных, заданных в обучающем наборе.

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

Отличные возможности (но все еще ограниченные)

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

Они могут поднять нашу цивилизацию на новый технологический уровень. Но так ли они на самом деле? Они просто специализированные агенты, обученные их задачам, и, несмотря на то, что они сильны в том, что они делают, они все же весьма ограничены. Они не могут рассуждать логически или надежно обобщать новые ситуации. Так что мы в безопасности - апокалипсиса ИИ не произойдет (скоро)!

Эта статья написана Михалом Грабиа, специалистом по анализу данных компании Miquido. Заинтересованы в практической стороне AI? Расстреляйте автора вопросом на [email protected].