Автор Жюльен Плу (разработчик лаборатории)

Эра современного искусственного интеллекта началась в середине 1940-х годов. В 1950 году Алан Тьюринг представил самую раннюю задачу искусственного интеллекта, ориентированную на обработку естественного языка, названную тестом Тьюринга. Цель этого теста, по словам Тьюринга, можно рассматривать как игру, в которой человек разговаривает с двумя разными собеседниками через компьютер, и он должен определить, кто из них человек, а какой искусственный. Если человек не может изменить ситуацию, мы можем предположить, что машина может вести себя как человек.

Тем не менее, в тот период у нас серьезно не хватало данных для создания искусственного интеллекта, который мог бы делать что угодно, близкое к этой цели. В настоящее время объем данных, доступных в Интернете через Интернет-трафик, настолько велик, что искусственный интеллект, который мы можем создать, может превзойти людей в нескольких сложных задачах, таких как ответы на вопросы [1], распознавание речи, распознавание изображений или игра в го .

Источник: https://www.statista.com/statistics/499431/global-ip-data-traffic-forecast

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

Источник: https://www.slideshare.net/ExtractConf

Какие существуют нейронные сети?

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

Нейронная сеть с прямой связью (FFNN)

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

Каждый нейрон в слое связан со всеми нейронами в предыдущем слое. Эти соединения не все равны: каждое соединение может иметь разную прочность или вес.

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

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

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

Примеры таких нейронных сетей - прогноз цен и рекламные рекомендации.

Рекуррентная нейронная сеть (RNN)

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

Решение, принятое повторяющейся нейронной сетью на временном шаге t-1, влияет на решение, которое она примет мгновением позже на временном шаге t.

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

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

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

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

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

Примерами таких нейронных сетей являются генерация текста и голоса.

Сверточная нейронная сеть (CNN)

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

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

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

В сверточной нейронной сети есть два основных этапа подвыборки: максимальное объединение и среднее объединение.

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

Это делается путем применения максимального фильтра к неперекрывающимся подобластям исходного представления.

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

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

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

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

Как мы можем использовать глубокое обучение в leboncoin?

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

  1. Подтверждение продавца / покупателя. Доверие - самый важный фактор, когда мы находимся в коммерческих отношениях. Как мы узнаем, что разговариваем с надежным собеседником? Чтобы решить эту проблему, мы могли бы воспользоваться преимуществами алгоритмов глубокого обучения, которые принимают в качестве данных отзывы пользователей, предыдущие продажи или покупки, указанные цены (путем проверки, является ли цена справедливой или нет).
  2. Визуальный поиск. Может оказаться полезным сфотографировать продукт на мобильный телефон и выполнить поиск похожих продуктов на веб-сайте. В каждой рекламе есть фотографии продукта, которые мы можем использовать в алгоритмах глубокого обучения для поиска похожих изображений и, в свою очередь, рекламы.
  3. Рекомендации по продуктам. Пользователям всегда полезно предлагать продукты, которые связаны с тем, что мы видели ранее или с тем, что мы просматриваем в настоящее время. Более того, мы также можем представить себе прогнозную рекомендацию, например, если мы просматриваем рекламу мобильного телефона, мы можем предложить совместимую защитную крышку. Для реализации этой рекомендательной задачи мы можем использовать алгоритмы глубокого обучения, которые могут моделировать рекламу с ее описанием, ценой, заголовком, местоположением и изображениями.
  4. Рекламные рекомендации. На основании того, что просматривают посетители, мы можем попытаться предложить наиболее подходящую рекламу. Для реализации этой рекомендательной задачи мы можем использовать алгоритмы глубокого обучения, которые способны определять, насколько уместна реклама того или иного продукта.
  5. Оценка качества изображения

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

[1]: см. набор данных в версии 1.1