Глубинное обучение: возможности, перспективы и немного истории

в 12:06, , рубрики: Блог компании ИТ-ГРАД, глубокое обучение, ИИ, ИТ-ГРАД, машинное обучение, Разработка под e-commerce

Последние несколько лет словосочетание «глубинное обучение» всплывает в СМИ слишком часто. Различные журналы вроде KDnuggets и DigitalTrends стараются не упустить новости из этой сферы и рассказать о популярных фреймворках и библиотеках.

Даже популярные издания вроде The NY Times и Forbes стремятся регулярно писать о том, чем заняты ученые и разработчики из области deep learning. И интерес к глубинному обучению до сих пор не угасает. Сегодня мы расскажем о том, на что способно глубинное обучение сейчас, и по какому сценарию оно будет развиваться в будущем.

Глубинное обучение: возможности, перспективы и немного истории - 1

/ фото xdxd_vs_xdxd CC

Пара слов про глубинное обучение, нейронные сети и ИИ

Чем отличается алгоритм глубинного обучения от обычной нейронной сети? По словам Патрика Холла, ведущего исследователя данных в компании SAS, самое очевидное отличие: в нейронной сети, используемой в глубинном обучении, больше скрытых слоев. Эти слои находятся между первым, или входным, и последним, выходным, слоем нейронов. При этом совсем не обязательно связывать все нейроны на разных уровнях между собой.

Разграничение глубинного обучения и искусственного интеллекта не такое однозначное. Например, профессор Вашингтонского университета Педро Домингос соглашается с мнением, что глубинное обучение выступает гипонимом по отношению к термину «машинное обучение», которое в свою очередь является гипонимом по отношению к искусственному интеллекту. Домингос говорит, что на практике области их применения пересекаются достаточно редко.

Однако существует и другое мнение. Хуго Ларочелле, профессор Шербрукского университета, уверен, что данные концепты почти никак не связаны между собой. Хуго замечает, что ИИ фокусируется на цели, а глубинное обучение — на определенной технологии или методологии, необходимой для машинного обучения. Поэтому здесь и далее, говоря о достижениях в области ИИ (таких, как AlphaGo, например) будем иметь в виду, что подобные разработки используют алгоритмы глубинного обучения — но наряду и с другими разработками из области ИИ в целом и машинного обучения в частности [как справедливо отмечает Педро Домингос].

От «глубокой нейронной сети» до глубинного обучения

Глубокие нейронные сети появились достаточно давно, еще в 1980-е. Так почему же глубинное обучение начало активно развиваться только в 21 веке? Репрезентации в нейронной сети создаются в слоях, поэтому было логично предположить, что больше слоев позволит сети лучше обучаться. Но большую роль играет метод обучения сети. Раньше для глубинного обучения использовались те же алгоритмы, что и для обучения искусственных нейронных сетей — метод обратного шифрования. Такой метод мог эффективно обучать только последние слои сети, в результате чего процесс был чрезвычайно длительным, а скрытые слои глубинной нейронной сети, фактически, не «работали».

Только в 2006 году три независимых группы ученых смогли разработать способы преодоления трудностей. Джеффри Хинтон смог провести предобучение сети при помощи машины Больцмана, обучая каждый слой отдельно. Для решения проблем распознавания изображений Яном ЛеКаном было предложено использование сверточной нейронной сети, состоящей из сверточных слоев и слоев подвыборки. Каскадный автокодировщик, разработанный Иошуа Бенджио, также позволил задействовать все слои в глубокой нейронной сети.

Проекты, которые «видят» и «слышат»

Сегодня глубинное обучение используется в совершенно разных сферах, но, пожалуй больше всего примеров использования лежит в области обработки изображений. Функция распознавания лиц существует уже давно, но, как говорится, нет предела совершенству. Разработчики сервиса OpenFace уверены, что проблема еще не решена, ведь точность распознавания можно повысить. И это не просто слова, OpenFace умеет различать даже похожих внешне людей. Подробно о работе программы уже писали в этой статье. Глубинное обучение поможет и при работе с черно-белыми файлами, автоматической колоризацией которых занимается приложение Colornet.

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

Программа NeuralTalk умеет описывать изображения при помощи нескольких предложений. В базу программы загружается набор изображений и 5 предложений, описывающих каждое из них. На стадии обучения алгоритм учится прогнозировать предложения на основе ключевого слова, используя предыдущий контекст. А на стадии прогнозирования нейронная сеть Джордана уже создает предложения, описывающие картинки.

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

Проекты в «разговорном жанре»

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

Но сегодня с помощью глубинного обучения Google в лице разработчика Куока Ле шагнул далеко вперед. Его разработки умеют отвечать на письма в Gmail и даже помогают специалистам технической поддержки Google. А программа Cleverbot обучалась на диалогах из 18 900 фильмов. Поэтому она может отвечать на вопросы даже о смысле жизни. Так, бот считает, что смысл жизни заключается в служении добру. Однако ученые вновь столкнулись с тем, что искусственный интеллект лишь имитирует понимание и не имеет представления о реальности. Программа воспринимает речь лишь как сочетание определенных символов.

Обучение машин языку может помочь и в переводе. Google давно занимается улучшением качества перевода в своем сервисе. Но насколько можно приблизить машинный перевод к идеалу, если и человек не всегда может правильно понимать смысл высказывания? Рэй Курцвейл предлагает для решения этой задачи графически представить семантическое значение слов в языке. Процесс достаточно трудоемкий: в специальный каталог Knowledge Graph, созданный в Google, ученые загрузили данные о почти 700 миллионах тем, мест, людей, между которыми было проведено почти миллиард различных связей. Все это направлено на улучшение качества перевода и восприятие искусственным интеллектом языка.

Сама идея о представлении языка графическими и/или математическими методами не нова. Еще в 80-е перед учеными стояла задача представить язык в формате, с которым могла бы работать нейронная сеть. В итоге был предложен вариант представления слов в виде математических векторов, что позволяло точно определить смысловую близость разных слов (например, в векторном пространстве слова «лодка» и «вода» должны быть близки друг к другу). На этих исследованиях и базируются сегодняшние разработки Google, которые современные исследователи называют уже не «векторами отдельных слов», а «векторами идей».

Глубинное обучение и здравоохранение

Сегодня глубинное обучение проникает даже в сферу здравоохранения и помогает следить за состоянием пациентов не хуже врачей. Например, медицинский центр Дармут-Хичкок в США использует специализированный сервис Microsoft ImagineCare, что позволяет врачам уловить едва заметные перемены в состоянии пациентов. Алгоритмы получают данные об изменениях веса, контролируют давление пациентов и могут даже распознавать эмоциональное состояние на основе анализа телефонных разговоров.

Глубинное обучение применяется и в фармацевтике. Сегодня для лечения разных видов рака используется молекулярно-таргетная терапия. Но для создания эффективного и безопасного лекарства необходимо идентифицировать активные молекулы, которые бы воздействовали только на заданную мишень, позволяя избежать побочных эффектов. Поиск таких молекул может выполняться с использованием глубинного обучения (описание проекта, проведенного совместно учеными из университетов Австрии, Бельгии и R&D-отдела компании Johnson&Johnson есть в этом научном материале).

Есть ли у алгоритма интуиция?

Насколько на самом деле «глубоко» глубинное обучение? Ответ на это вопрос могут дать разработчики AlphaGo. Этот алгоритм не умеет говорить, не умеет распознавать эмоции. Но он способен обыграть любого в настольную игру. На первый взгляд тут нет ничего особенного. Уже почти 20 лет назад компьютер, разработанный IBM, впервые обыграл в шахматы человека. Но AlphaGo – совсем другое дело. Настольная игра Го появилась в Древнем Китае. Начало чем-то похоже на шахматы – противники играют на доске в клетку, черные фигуры против белых. Но на этом сходства заканчиваются, потому что фигуры являются небольшими камушками, а цель игры – окружить камушек противника своими.

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

Машины не захватят мир

Несмотря на ошеломляющие успехи AlphaGo, искусственный интеллект еще далек от порабощения человеческой расы. Машины научились своеобразному «интуитивному мышлению», обработке огромного массива данных, но, по словам Фей-Фей Ли, руководителя Стэнфордской лаборатории искусственного интеллекта, абстрактное и творческое мышление им недоступно.

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

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

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

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

P.S. Дополнительное чтение: Наш IaaS-дайджест — 30 материалов о применимости облачных технологий.

Автор: ИТ-ГРАД

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js