Машинное обучение и искусственный интеллект

Всем привет! Сегодня очередная выжимка из полезного видео.

Что такое искусственный интеллект? Откуда появился этот термин? Почему этот термин так широко распространился в обществе?

То, что сейчас называют искусственным интеллектом – это разновидность машинного обучения. Самое простое машинное обучение осуществляется тогда, когда нам нужно отличать что-либо: одно от другого – это может быть простая формула полином.

Следующая ступень машинного обучения наступает тогда, когда полином не справляется – эта ступень называется дерево решений. Дерево решений – это основополагающий метод машинного обучения. Каждый узел дерева – это некий критерий, некий фактор, по которому мы принимаем решение. Дерево решений способно заменить практически все, однако есть одна проблема: откуда брать факторы и узлы этого дерева и как его составлять.

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

Нейронная сеть

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

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

Внутренняя структура нейросети:

Для сравнения, что из себя представляет нейронная сеть в 2012 и в 2014 годах:

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

Reinforcement learning (обучение с подкреплением).

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

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

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

Каждый раз, когда происходит обучение нейронной сети, появляется новая модель обученной нейронной сети, в результате чего появляется два игрока: один лучше другого. Нейронная сеть, впоследствии, начинает играть сама с собой и учиться на собственных результатах сыгранных партий.



Практическое использование

Нейронные сети наибольший результат дают от анализа изображений.

На примере Яндекса


Яндекс. Картинки

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

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



Реклама

Реклама бывает в форме текста и изображения. Для того чтобы изображение соответствовало текстовому наполнению также используются нейронные сети.


Яндекс. Переводчик

Распознавание текста из картинки активно используется для переводчика.

Яндекс. Маркет

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



Яндекс. Диск

Распознавание текста в Яндекс. Диск используется для поиска изображений по тексту, который в них находится.

Нейросетевые технологии значительно продвинули качество распознавания речи.


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

Пример того, как это сделать:

Для этого необходима нейронная сеть, которая обучена распознавать, допустим, 10000 типов изображений.

Затем нейронную сеть нужно обучить определять расстояние между текстом и сворачивать некий текст в вектор таким образом, что текст разный по символам, но близкий по смыслу оказывается очень близко друг другу в пространстве.

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



Обучающая выборка

Обучение на кликовых данных:

– Отбор положительных пар с хорошим CTR.

Обучение на выдаче:

– Положительные пары – это топ выдачи по запросу.

Необходимо учитывать, что можно пойти по другому пути: не изображение искать подходящее к запросу, а находить запрос, подходящий к изображению. То есть превращать картинку в текст, тем самым аннотировать ее.

Использовать настолько разносторонне обученную нейронную сеть можно в большинстве различных приложениях. Например:

• Автоматический подбор изображений для текстов и объявлений;

• Проверка консистентности медиаданных и описания;

• Автомодерация UGC;

• Музыка под видеоряд, видеоряд под музыку;

• Подбор одежды, элементов интерьера;

• Выбор лучших кадров из фильмов и т.д.

В ближайшем будущем, хорошо обученные нейронные сети смогут решать многие проблемы, такие как: