В Google разработали алгоритм для разделения звуков на видео. Он определяет говорящего с точностью 92%

19 ноября 2018

В Google разработали алгоритм для разделения звуков на видео. Он определяет говорящего с точностью 92%

Разработчики Google AI представили новый алгоритм для разделения звуковых потоков на видео. Модель разделяет аудио на сегменты и определяет, кто из участников диалога говорит в данный момент. Алгоритм работает лучше,…

Разработчики Google AI представили новый алгоритм для разделения звуковых потоков на видео. Модель разделяет аудио на сегменты и определяет, кто из участников диалога говорит в данный момент. Алгоритм работает лучше, чем подходы, основанные на кластеризации, и распознает говорящего с точностью 92,4%. Технология может применяться, например, для создания субтитров к видеозаписям в реальном времени.

Контролируемое обучение RNN

Процесс разделения аудиопотока на сегменты называется диаризацией. Другие современые подходы к диаризации используют метод kсредних или спектральную кластеризацию и обычно обучаются неконтролируемо. Ключевое отличие разработки Google в использовании обучения с учителем. Все компоненты системы, включая распознавание спикеров и работу с метками времени, обучаются контролируемо, поэтому извлекают больше пользы из размеченных данных.

Онлайн диаризация потокового аудио. Разные цвета на нижней дорожке обозначают разных спикеров.

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

Результат

Работу алгоритма проверили с помощью тестирования NIST. Частота ошибок составила 7,6 %. Предыдущие подходы, использующие кластеризацию и глубокие нейронные сети, показали погрешность 8,8 % и 9,9%. Код модели доступен на GitHub.

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

9 ноября 2018

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

Разрабочики Facebook создали нейронную сеть, которая описывает происходящее на видео в реальном времени. Они также собрали датасет из 20 тысяч видеороликов с 123 тысячами описаний. В перспективе технология может помочь…

Разрабочики Facebook создали нейронную сеть, которая описывает происходящее на видео в реальном времени. Они также собрали датасет из 20 тысяч видеороликов с 123 тысячами описаний. В перспективе технология может помочь слабовидящим и незрячим людям в повседневной жизни, создавая описания к окружающему миру.

Создание описаний происходящего

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

Описания, сгенерированные нейронной сетью

Датасет VideoStory

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

Примеры описаний видео в датасете

В Facebook нацелены совершенствовать разработку — сделать текстовые описания видео более последовательными и обучить модель «рассказывать истории». Работу представили в ноябре на конференции EMNLP 2018, посвященной эмпирическим методам в обработке естественного языка.

Google AI представили Piano Genie — контроллер для импровизации с сетью энкодер-декодер

19 октября 2018
piano-genie

Google AI представили Piano Genie — контроллер для импровизации с сетью энкодер-декодер

Команда разработчиков Google AI представили Piano Genie — 8-клавишный контроллер на основе нейронных сетей для импровизации на фортепиано. Интерактивная демо-версия есть в открытом доступе. Посмотрите импровизацию на Piano Genie, которую…

Команда разработчиков Google AI представили Piano Genie — 8-клавишный контроллер на основе нейронных сетей для импровизации на фортепиано. Интерактивная демо-версия есть в открытом доступе.

Посмотрите импровизацию на Piano Genie, которую опубликовали разработчики контроллера:

Как работает Piano Genie

После первичного нажатия на кнопку контроллера проигрывается одна из 88 нот на фортепиано. Двунаправленная RNN с LTSM кодирует монофонические последовательности фортепиано (88-мерные) в дискретные скрытые переменные (4-мерные). После чего однонаправленный декодер обучается декодировать последовательность нажатия кнопок обратно в музыку. Во время импровизации вывод энкодера заменяется последовательностью нажатия клавиш на контроллере — человек задаёт последовательности, а декодер связывает полученные комбинации с выученными ранее.

Алгоритм Piano Genie
Алгоритм работы Piano Genie

Нейросеть обучалась на 1400 записях фортепианных выступлений конкурса International Piano-e-Competition. «Мы считаем, что автоэнкодеры — многообещающая находка для обучения сопоставлений между сложными и простыми интерфейсами, и надеемся, что наша работа будет способствовать будущим исследованиям в этой области» — написали исследователи в статье.

Работа опубликована на ArXiv. Исходный код модели доступен на GitHub. Протестировать онлайн-версию можно здесь.


Интересные статьи:

7 архитектур нейронных сетей для решения задач NLP

14 октября 2018
neural network nlp architectures

7 архитектур нейронных сетей для решения задач NLP

Искусственная нейронная сеть (ИНС) — вычислительная нелинейная модель, в основе которой лежит нейронная структура мозга, способная обучаться выполнению задач классификации, предсказания, принятия решений, визуализации и некоторых других только благодаря рассмотрению…

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

Любая архитектура ИНС состоит из искусственных нейронов — элементов обработки, имеющих структуру 3 связанных друг с другом слоев: входным, состоящим из одного или более слоев скрытым и выходным.

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

Искусственная нейронная сеть с 4 входами
Искусственная нейронная сеть с 4 входами

Функция активации

Взвешенная сумма со входов — активационный сигнал — проходит через функцию активации для вывода данных из нейрона. Есть несколько видов функции активации: линейная, ступенчатая, сигмоидная, тангенциальная, выпрямительная (Rectified linear unit, ReLu).

Линейная функция

f(x)=ax

Ступенчатая функция

Сигмоида

Функция гиперболического тангенса

Функция линейного выпрямителя

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

С помощью дополнительных скрытых слоев возможно сделать систему более гибкой и мощной. ИНС с многими скрытыми слоями называются глубокими нейронными сетями (deep neural network, DNN); они создают сложные нелинейные связи.

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

1. Многослойный перцептрон

Перцептрон
Перцептрон

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

2. Сверточная нейронная сеть

применение сверточной нейросети

Сверточная нейронная сеть (Convolutional neural network, CNN) содержит один или более объединенных или соединенных сверточных слоев. CNN использует вариацию многослойного перцептрона, рассмотренного выше. Сверточные слои используют  операцию свертки для входных данных и передают результат в следующий слой. Эта операция позволяет сети быть глубже с меньшим количеством параметров.

Сверточные сети показывают выдающиеся результаты в приложениях к картинкам и речи. В статье Convolutional Neural Networks for Sentence Classification автор описывает процесс и результаты задач классификации текста с помощью CNN. В работе представлена модель на основе word2vec, которая проводит эксперименты, тестируется на нескольких бенчмарках и демонстрирует блестящие результаты.

В работе Text Understanding from Scratch авторы показывают, что сверточная сеть достигает выдающихся результатов даже без знания слов, фраз предложений и любых других синтаксических или семантических структур присущих человеческому языку. Семантический разбор, поиск парафраз, распознавание речи — тоже приложения CNN.

3. Рекурсивная нейронная сеть

рекурсивная нейронная сеть

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

4. Рекуррентная нейронная сеть

Рекуррентная нейронная сеть, в отличие от прямой нейронной сети, является вариантом рекурсивной ИНС, в которой связи между нейронами — направленные циклы. Последнее означает, что выходная информация зависит не только от текущего входа, но также от состояний нейрона на предыдущем шаге. Такая память позволяет пользователям решать задачи NLP: распознание рукописного текста или речи. В статье Natural Language Generation, Paraphrasing and Summarization of User Reviews with Recurrent Neural Networks авторы показывают модель рекуррентной сети, которая генерирует новые предложения и краткое содержание текстового документа.

Siwei Lai, Liheng Xu, Kang Liu, и Jun Zhao в своей работе Recurrent Convolutional Neural Networks for Text Classification создали рекуррентную сверточную нейросеть для классификации текста без рукотворных признаков. Модель сравнивается с существующими методами классификации текста — Bag of Words, Bigrams + LR, SVM, LDA, Tree Kernels, рекурсивными и сверточными сетями. Описанная модель превосходит по качеству традиционные методы для всех используемых датасетов.

5. LSTM

LSTM блок с входным, выходным затворами и гейтом забывания
LSTM блок с входным, выходным и гейтом забывания

Сеть долгой краткосрочной памяти (Long Short-Term Memory, LSTM) — разновидность архитектуры рекуррентной нейросети, созданная для более точного моделирования временных последовательностей и их долгосрочных зависимостей, чем традиционная рекуррентная сеть. LSTM-сеть не использует функцию активации в рекуррентных компонентах, сохраненные значения не модифицируются, а градиент не стремится исчезнуть во время тренировки. Часто LSTM применяется в блоках по несколько элементов. Эти блоки состоят из 3 или 4 затворов (например, входного, выходного и гейта забывания), которые контролируют построение информационного потока по логистической функции.

В Long Short-Term Memory Recurrent Neural Network Architectures for Large Scale Acoustic Modeling авторы показывают архитектуру глубокой LSTM рекуррентной сети, которая достигает хороших результатов для крупномасштабного акустического моделирования.

В работе Part-of-Speech Tagging with Bidirectional Long Short-Term Memory Recurrent Neural Network представлена модель для автоматической морфологической разметки. Модель показывает точность 97.4 % в задаче разметки. Apple, Amazon, Google, Microsoft и другие компании внедрили в продукты LSTM-сети как фундаментальный элемент.

6. Sequence-to-sequence модель

Часто Sequence-to-sequence модели состоят из двух рекуррентных сетей: кодировщика, который обрабатывает входные данные, и декодера, который осуществляет вывод.

Читайте: Оценка глубины на изображении при помощи Encoder-Decoder сетей

Sequence-to-Sequence модели часто используются в вопросно-ответных системах, чат-ботах и машинном переводе. Такие многослойные ячейки успешно использовались в sequence-to-sequence моделях для перевода в статье Sequence to Sequence Learning with Neural Networks study.

В Paraphrase Detection Using Recursive Autoencoder представлена новая рекурсивная архитектура автокодировщика, в которой представления — вектора в n-мерном семантическом пространстве, где фразы с похожими значением близки друг к другу.

7. Неглубокие (shallow) нейронные сети

Неглубокие модели, как и глубокие нейронные сети, тоже популярные и полезные инструменты. Например, word2vec — группа неглубоких двухслойных моделей, которая используется для создания векторных представлений слов (word embeddings). Представленная в Efficient Estimation of Word Representations in Vector Space, word2vec принимает на входе большой корпус текста и создает векторное пространство. Каждому слову в этом корпусе приписывается соответствующий вектор в этом пространстве. Отличительное свойство — слова из общих текстов в корпусе расположены близко друг к другу в векторном пространстве.


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


Интересные статьи:

Приложение для смартфона диагностирует болезнь Паркинсона с точностью 85%

9 октября 2018
нейросеть диагностирует болезнь паркинсона

Приложение для смартфона диагностирует болезнь Паркинсона с точностью 85%

По данным ВОЗ, 5-10 человек на каждые 10 000 людей в мире страдают болезнью Паркинсона. Видимые признаки болезни появляются у людей старше 45 лет. Раннее выявление могло бы предотвратить появление…

По данным ВОЗ, 5-10 человек на каждые 10 000 людей в мире страдают болезнью Паркинсона. Видимые признаки болезни появляются у людей старше 45 лет. Раннее выявление могло бы предотвратить появление серьезных симптомов, однако пока не существует универсального теста для диагностики болезни Паркинсона. Учёные создают приложения на основе искусственного интеллекта, которые помогут распознать ранние признаки заболевания. Рассказываем о последних разработках.

Приложение для диагностики на смартфоне

Команда из Швейцарской высшей технической школы Цюриха создала приложение, которое диагностирует болезнь Паркинсона с точностью 85%. Для диагностики пациенту нужно пройти четыре коротких теста. Программа поочередно анализирует походку, голос, движения рук и память.

В основе приложения сверточная нейронная сеть и двунаправленная рекуррентная нейронная сеть с LTSM. Первая анализирует результаты тестов походки, голоса и движений, а вторая — тесты на запоминание. Ещё одна рекуррентная нейросеть генерирует итоговый диагноз. Для обучения модели команда использовала данные результатов тестов 1853 участников исследования mPower.

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

Программное обеспечение для больниц

Tencent и медицинская компания Medopad объединились для разработки ПО, которое сможет обнаруживать признаки болезни Паркинсона в течение нескольких минут (сейчас оценка занимает полчаса) и улучшить точность диагностики.

Технология Medopad использует камеру смартфона для наблюдения за движениями пациентов. Человек сжимает и разжимает кулак, приложение измеряет амплитуду и частоту движения пальцев. Результаты предоставляются врачам в виде графика. Цель состоит в том, чтобы в конечном итоге с помощью ИИ автоматически вычислять показатель серьезности симптомов. В случае успеха Tencent и Medopad намерены провести тестирование технологии в США, Новой Зеландии и Китае в конце 2018 года.

5 методов обработки естественного языка, которые стремительно меняют мир вокруг нас

28 сентября 2018
обработка естественного языка

5 методов обработки естественного языка, которые стремительно меняют мир вокруг нас

Собираетесь изучать NLP и заниматься разработкой приложений, основанных на обработке естественного языка? Хотите создать свое приложение или программу для голосового помощника Amazon Alexa или Яндекс Алиса? В статье мы расскажем…

Собираетесь изучать NLP и заниматься разработкой приложений, основанных на обработке естественного языка? Хотите создать свое приложение или программу для голосового помощника Amazon Alexa или Яндекс Алиса? В статье мы расскажем о направлениях развития и техниках, которые применяются для решения задач NLP, чтобы вам стало проще ориентироваться.

Что такое обработка естественного языка

Обработка естественного языка (далее NLP — Natural language processing) — область, находящаяся на пересечении computer science, искусственного интеллекта и лингвистики. Цель заключается в обработке и “понимании” естественного языка для перевода текста и ответа на вопросы.

С развитием голосовых интерфейсов и чат-ботов, NLP стала одной из самых важных технологий искусственного интеллекта. Но полное понимание и воспроизведение смысла языка  — чрезвычайно сложная задача, так как человеческий язык имеет особенности:

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

Где применяется NLP

Сегодня быстро растет количество полезных приложений в этой области:

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

Глубокое обучение в NLP

Существенная часть технологий NLP работает благодаря глубокому обучению (deep learning) — области машинного обучения, которая начала набирать обороты только в начале этого десятилетия по следующим причинам:

  • Накоплены большие объемы тренировочных данных;
  • Разработаны вычислительные мощности: многоядерные CPU и GPU;
  • Созданы новые модели и алгоритмы с расширенными возможностями и улучшенной производительностью, c гибким обучением на промежуточных представлениях;
  • Появились обучающие методы c использованием контекста, новые методы регуляризации и оптимизации.

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

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

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

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

Недавно я закончил исчерпывающий курс по NLP с глубоким обучением из Стэнфорда.

Этот курс — подробное введение в передовые исследование по глубокому обучению, примененному к NLP. Курс охватывает представление через вектор слов, window-based нейросети, рекуррентные нейросети, модели долгосрочной-краткосрочной памяти, сверточные нейросети и некоторые недавние модели с использованием компонента памяти. Со стороны программирования, я научился применять, тренировать, отлаживать, визуализировать и создавать собственные нейросетевые модели

Замечание:  доступ к лекциям из курса и домашним заданиям по программированию находится в этом репозитории.

Векторное представление (text embeddings)

В традиционном NLP слова рассматриваются как дискретные символы, которые далее представляются в виде one-hot векторов. Проблема со словами — дискретными символами — отсутствие определения cхожести для one-hot векторов. Поэтому альтернатива — обучиться кодировать схожесть в сами векторы.

Векторное представление —  метод представления строк, как векторов со значениями. Строится плотный вектор (dense vector) для каждого слова так, чтобы встречающиеся в схожих контекстах слова имели схожие вектора. Векторное представление считается стартовой точкой для большинства NLP задач и делает глубокое обучение эффективным на маленьких датасетах. Техники векторных представлений Word2vec и GloVe, созданных Google (Mikolov) Stanford (Pennington, Socher, Manning) соответственно, пользуются популярностью и часто используются для задач NLP. Давайте рассмотрим эти техники.

Word2Vec

Word2vec принимает большой корпус (corpus) текста, в котором каждое слово в фиксированном словаре представлено в виде вектора. Далее алгоритм пробегает по каждой позиции t в тексте, которая представляет собой центральное слово c и контекстное слово o. Далее используется схожесть векторов слов для c и o, чтобы рассчитать вероятность o при заданном с (или наоборот), и продолжается регулировка вектор слов для максимизации этой вероятности.

векторное представление NLP

Для достижения лучшего результата Word2vec из датасета удаляются бесполезные слова (или слова с большой частотой появления, в английском языке —  a,the,of,then). Это поможет улучшить точность модели и сократить время на тренировку. Кроме того, используется отрицательная выборка (negative sampling) для каждого входа, обновляя веса для всех правильных меток, но только на небольшом числе некорректных меток.

Word2vec представлен в 2 вариациях моделей:

Skipgram NLP

  1. Skip-Gram: рассматривается контекстное окно, содержащее k последовательных слов. Далее пропускается одно слово и обучается нейронная сеть, содержащая все слова, кроме пропущенного, которое алгоритм пытается предсказать. Следовательно, если 2 слова периодически делят cхожий контекст в корпусе, эти слова будут иметь близкие векторы.
  2. Continuous Bag of Words: берется много предложений в корпусе. Каждый раз, когда алгоритм видим слово, берется соседнее слово. Далее на вход нейросети подается контекстные слова и предсказываем слово в центре этого контекста. В случае тысяч таких контекстных слов и центрального слова, получаем один экземпляр датасета для нашей нейросети. Нейросеть тренируется и ,наконец, выход закодированного скрытого слоя представляет вложение (embedding) для определенного слова. То же происходит, если нейросеть тренируется на большом числе предложений и словам в схожем контексте приписываются схожие вектора.

Единственная жалоба на Skip-Gram и CBOW —  принадлежность к классу window-based моделей, для которых характерна низкая эффективность использования статистики совпадений в корпусе, что приводит к неоптимальным результатам.

GloVe

GloVe стремится решить эту проблему захватом значения одного word embedding со структурой всего обозримого корпуса. Чтобы сделать это, модель ищет глобальные совпадения числа слов и использует достаточно статистики, минимизирует среднеквадратичное отклонение, выдает пространство вектора слова с разумной субструктурой. Такая схема в достаточной степени позволяет отождествлять схожесть слова с векторным расстоянием.

Glove text embeddings

Помимо этих двух моделей, нашли применение много недавно разработанных технологий: FastText, Poincare Embeddings, sense2vec, Skip-Thought, Adaptive Skip-Gram.

Машинный перевод

Машинный перевод (Machine translation) — преобразование текста на одном естественном языке в эквивалентный по содержанию текст на другом языке. Делает это программа или машина без участия человека. В машинном переводе использутся статистика использования слов по соседству. Системы машинного перевода находят широкое коммерческое применение, так как переводы с языков мира — индустрия с объемом $40 миллиардов в год. Некоторые известные примеры:

  • Google Translate переводит 100 миллиардов слов в день.
  • Facebook использует машинный перевод для автоматического перевода текстов в постах и комментариях, чтобы разрушить языковые барьеры и позволить людям из разных частей света общаться друг с другом.
  • eBay использует технологии машинного перевода, чтобы сделать возможным трансграничную торговлю и соединить покупателей и продавцов из разных стран.
  • Microsoft применяют перевод на основе искусственного интеллекта к конечным пользователям и разработчикам на Android, iOS и Amazon Fire независимо от доступа в Интернет.
  • Systran стал первым поставщиком софта для запуска механизма нейронного машинного перевода на 30 языков в 2016 году.

В традиционных системах машинного перевода приходится использовать параллельный корпус — набор текстов, каждый из которых переведен на один или несколько  других языков. Например, имея исходных язык f (Французский) и целевой e (Английский), требуется построить статистическую модель, включающую вероятностную формулировку для правила Байеса, модель перевода  p(f|e) , обученную на параллельном корпусе, и модель языка p(e) , обученную только на корпусе с английским языком.

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

Нейросетевой машинный перевод (Neural Machine Translation) — подход к моделированию перевода с помощью рекуррентной нейронной сети (Recurrent Neural Network, RNN). RNN — нейросеть c зависимостью от предыдущих состояний, в которая имеет связи между проходами. Нейроны получают информацию из предыдущих слоев, а также из самих себя на предыдущем шаге. Это означает, что порядок, в котором подается на вход данные и тренируется сеть, важен: результат подачи “Дональд” — “Трамп” не совпадает с результатом подачи  “Трамп” — “Дональд”.

Машинный перевод NLP рекуррентная сеть

Стандартная модель нейро-машинного перевода является сквозной нейросетью, где исходное предложение кодируется RNN, называемой кодировщик (encoder), а целевое слово предсказывается с помощью другой RNN, называемой декодер (decoder). Кодировщик «читает» исходное предложение со скоростью один символ в единицу времени, далее объединяет исходное предложение в последнем скрытом слое. Декодер использует обратное распространение ошибки для изучение этого объединения и возвращает переведённую вариант. Удивительно, что находившийся на периферии исследовательской активности в 2014 году нейро-машинный перевод стал стандартом машинного перевода в 2016 году. Ниже представлены достижения перевода на основе нейронной сети:

  1. Сквозное обучение: параметры в NMT (Neural Machine Translation) одновременно оптимизируются для минимизации функции потерь на выходе нейросети.
  2. Распределенные представления: NMT лучше использует схожести в словах и фразах.
  3. Лучшее исследование контекста: NMT работает больше контекста — исходный и частично целевой текст, чтобы переводить точнее.
  4. Более беглое генерирование текста: перевод текста на основе глубокого обучения намного превосходит по качеству метод параллельного корпуса.

Главная проблема RNN — проблема исчезновения градиента, когда информация теряется с течением времени. Интуитивно кажется, что это не является серьезной проблемой, так как это только веса, а не состояния нейронов. Но с течением времени веса становятся местами, где хранится информация из прошлого. Если вес примет значение 0 или 100000, предыдущее состояние не будет слишком информативно. Как следствие, RNN будут испытывать сложности в запоминании слов, стоящих дальше в последовательности, а предсказания будут делаться на основе крайних слов, что создает проблемы.

Сети краткосрочной-долгосрочной памяти (Long/short term memory, далее LSTM) пытаются бороться с проблемой градиента исчезновения вводя гейты (gates) и вводя ячейку памяти. Каждый нейрон представляет из себя ячейку памяти с тремя гейтами: на вход, на выход и забывания (forget). Эти затворы выполняют функцию телохранителей для информации, разрешая или запрещая её поток.

  • Входной гейт определяет, какое количество информации из предыдущего слоя будет храниться в этой ячейке;
  • Выходной гейт выполняет работу на другом конце и определяет, какая часть следующего слоя узнает о состоянии текущей ячейки.
  • Гейт забывания контролирует меру сохранения значения в памяти: если при изучении книги начинается новая глава, иногда для нейросети становится необходимым забыть некоторые слова из предыдущей главы.

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

LSTM в машинном переводе

Закрытые рекуррентные блоки (Gated recurrent units, далее GRU) отличаются от LSTM, хотя тоже являются расширением для нейросетевого машинного обучения. В GRU на один гейт меньше, и работа строится по-другому: вместо входного, выходного и забывания, есть гейт обновления (update gate). Он определяет, сколько информации необходимо сохранить c последнего состояния и сколько информации пропускать с предыдущих слоев.

Функции сброса гейта (reset gate)  похожи на затвор забывания у LSTM, но расположение отличается. GRU всегда передают свое полное состояние, не имеют выходной затвор. Часто эти затвор функционирует как и LSTM, однако,  большим отличием заключается в следующем: в GRU затвор работают быстрее и легче в управлении (но также менее интерпретируемые). На практике они стремятся нейтрализовать друг друга, так как нужна большая нейросеть для восстановления выразительности (expressiveness), которая сводит на нет приросты в результате. Но в случаях, где не требуется экстра выразительности, GRU показывают лучше результат, чем LSTM.

GRU

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

  • Sequence-to-Sequence Learning with Neural Networks доказали эффективность LSTM для нейронного машинного перевода. Статья представляет общий подход для последовательного обучения, для которого характерны минимальные предположения о структуре последовательности. Этот метод использует многослойную LSTM, чтобы отобразить входящую последовательность в виде вектора с фиксированной размерностью, далее идет применение другой LSTM для декодирования целевой последовательности из вектора.
  • Neural Machine Translation by Jointly Learning to Align and Translate представили механизм внимания (attention mechanism) в NLP (который будет рассмотрен в следующей части). Признавая факт, что использование вектора фиксированной длины является узким местом в улучшении результативности NMT, авторы предлагают разрешать модели автоматически искать части исходного предложение, которые релевантны к предсказанию целевого слова, без необходимости явного формирования этих частей.
  • Convolutional over Recurrent Encoder for Neural Machine Translation усиливают стандартный RNN кодировщик в NMT с помощью дополнительного сверточного слоя, чтобы захватывать более широкий контекст на выходе кодировщика.
  • Google создала собственную NMT систему, называемую Google’s Neural Machine Translation, которая решает задачи точности и простоты применения. Модель состоит из глубокой LSTM сети с 8 кодирующими и 8 декодирующими слоями и использует как остаточные связи, так и attention-связи от декодер- до кодер-сети.
  • Вместо использования рекуррентных нейросетей, Facebook AI Researchers используют сверточную нейронную сеть для задач sequence-to-sequence обучения в NMT.

Голосовые помощники

Много статей написано о “разговорном” искусственном интеллекте (ИИ), большинство разработок фокусируется на вертикальных чат-ботах, мессенджер-платформах, возможностях для стартапов (Amazon Alexa, Apple Siri, Facebook M, Google Assistant, Microsoft Cortana, Яндекс Алиса). Способности ИИ понимать естественный язык пока остаются ограничены, поэтому создание полноценного разговорного ассистента остается открытой задачей. Тем не менее, представленные ниже работы — отправная точка для людей, заинтересованных в прорыве в области голосовых помощников.

Исследователи из Монреаля, Технического Института Технологий Джорджии, Microsoft и Facebook создали нейросеть, способную создавать чувствительные к контексту ответы в разговоре. Эта система может тренироваться на большом количестве неструктурированных диалогов в Twitter. Архитектура рекуррентной нейросети используется для ответов на разреженные вопросы, которые появляются при интегрировании контекстной информации в классическую статистическую модель, что позволяет системе учесть сказанное ранее. Модель показывает уверенное улучшение результата над контент-чувствительной и контент-нечувствительной базовой линией машинного перевода и поиска информации.

Разработанная в Гонконге нейронная машина для ответов (далее NRM — Neural Responding Machine) — генератор ответов для коротких текстовых бесед. NRM использует общий кодер-декодер фреймворк. Сначала формализуется создание ответа, как процесс расшифровки на основе скрытого представления входного текста, пока кодирование и декодирование реализуется с помощью рекуррентных нейросетей. NRM обучен на больших данных с односложными диалогами, собранными из микро-блогов. Эмпирическим путем установлено, что NRM способен генерировать правильные грамматические и уместные в данном контексте ответы на 75% поданных на вход текстов, опережая в результативности современные модели с теми же настройками.

Последняя модель — Google’s Neural Conversational Model предлагает простой подход к моделированию диалогов, используя sequence-to-sequence фреймворк. Модель поддерживает беседу благодаря предсказанию следующего предложения, используя предыдущие предложения из диалога. Сильная сторона этой модели — способность к сквозному обучению, из-за чего требуется намного меньше рукотворных правил.

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

Вопросно-ответные (QA) системы

Идея вопросно-ответных (Question-answering, далее — QA) систем заключается в извлечении информации непосредственно из документа, разговора, онлайн поиска или любого другого места, удовлетворяющего потребности пользователя. Вместо того, чтобы заставлять пользователя читать полный текст, QA системы предпочитают давать короткие и лаконичные ответы. Сегодня QA системы легко комбинируются с чат-ботами, выходят за пределы поиска текстовых документов и извлекают информацию из набора картинок.

Большинство NLP задач могут быть рассмотрены как вопросно-ответные задачи. Парадигма проста: отправляется запрос, на который машина предоставляет ответ. Через чтение текста или набора инструкций разумная система должна находить ответ на большой круг вопросов. Естественно, требуется создать модель для ответов на общие вопросы.

QA - вопросно ответные системы

Специально для QA задач создана и оптимизирована мощная архитектура глубокого обучения — Сеть Динамической Памяти (Dynamic Memory Network, далее — DNM). Обученная на тренировочном наборе из входных данных и вопросов, DNM формирует эпизодические воспоминания и использует их для генерации подходящих ответов. Эта архитектура состоит из следующих компонент:

  • Модуль семантической памяти, аналогичный базе знаний, состоит из предварительно подготовленных GloVe векторов, которые используются для создания последовательностей векторных представлений слов из входящих предложений. Эти вектора будут использоваться, как входные данные модели.
  • Входной модуль перерабатывает связанные с вопросом входящие вектора в наборов векторов, называемый фактами. Этот модуль реализован с помощью Управляемого рекуррентного блока (Gated Recurrent Unit, далее — GRU), который позволяет сети узнать релевантность рассматриваемого предложения.
  • Вопросный модуль обрабатывает вопрос слово за словом и выдает вектор, используя тот же GRU, что и в входном модуле, с такими же весами.
  • Модуль эпизодической памяти сохраняет извлеченные на входе векторы фактов и вопросов, закодированные как вложения. Это похоже на происходящий в гиппокампе мозга процесс по извлечению временных состояний в ответ на звук или вид.
  • Ответный модуль генерирует подходящий ответ. На последнем шаге эпизодическая память содержит необходимую для ответа информацию. Этот модуль использует другой GRU, обученный с классификацией кросс-энтропийной ошибки верной последовательности, которая конвертируется обратно на естественный язык.

DNM хорошо справляется с QA задачами и превосходит в результатах другие архитектуры для семантического анализа и частеречной разметки (part-of-speech tagging). С момента выпуска начальной версии DMN претерпела ряд улучшений для дальнейшего совершенствования точности в QA задачах:

  • DMN для ответов на текстовые и визуальные вопросы — DNM применимая к изображениям. Здесь входные модули и модули памяти модернизированы для ответов на визуальные вопросы. Такая модель улучшает результат существующей архитектуры на большинстве тестов на визуальных вопросно-ответных датасетах без учителя.
  • Динамические coattention-сети для ответов на вопросы выступают с решением проблемы выхода из локального максимума, соответствующего неправильному ответу. Модель сливает со-зависимые представления вопроса и текст,чтобы сфокусироваться на их подходящих частях. Далее динамический указательный декодер проходит через полный набор потенциальных ответов.

Краткое изложение текста (Text Summarization)

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

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

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

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

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

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

TextRank похож на алгоритм LexRank, но имеет некоторые улучшений. К ним относятся:

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

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

  • Facebook Neural Attention — нейросетевая архитектура, которая использует локальную модель с механизвом внимания, способную генерировать каждое слово резюме в зависимости от входного предложения.
  • Google Sequence-to-sequence придерживается кодер-декодер архитектуры. Кодер отвечает за чтение исходного документа и кодировку во внутреннее представление. Декодер отвечает за генерацию каждого слова в сводке на выходе и использует кодированное представление исходного документа.
  • IBM Watson использует похожую Sequence-to-sequence модель, но со свойствами внимательной и двунаправленной рекуррентной нейросети.

Интересные статьи:

LSTM — нейронная сеть с долгой краткосрочной памятью

13 сентября 2018
сети LSTM

LSTM — нейронная сеть с долгой краткосрочной памятью

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

Люди не запускают мыслительный процесс с нуля в каждый момент времени. Читая статью, вы понимаете смысл каждого слова на основе значений предыдущих слов. Мысли имеют свойство накапливаться и влиять друг на друга. Этот принцип используется в сетях LSTM.

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

Рекуррентные нейронные сети

Рекуррентные нейронные сети (РНС) решают эту проблему. В них присутствуют циклы, сохраняющие информацию.

Рекуррентная нейронная сеть цикл
Циклы в РНС

На приведенной выше диаграмме часть нейронной сети A принимает входной сигнал x и выводит значение h. Цикл позволяет передавать информацию с одного шага сети на другой.

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

Развертка цикла в РНС
Развертка цикла в РНС

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

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

Существенным подспорьем в решении перечисленных задач стали LSTM — специфического типа рекуррентные нейронные сети, которые решают отдельные задачи гораздо эффективнее стандартных методов. С использованием сетей LSTM связаны все захватывающие результаты, основанные на РНС.

Проблема долгосрочных связей

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

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

Разрыв между информацией - LSTM нейронная сеть

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

К сожалению, по мере увеличения этого разрыва РНС теряют связь между информацией.

сети LSTM как работают

В теории РНС способны справиться с такими «долгосрочными зависимостями». Исследователь может тщательно подобрать параметры сети для устранения этой проблемы. К сожалению, на практике РНС не способны решить эту задачу. Проблема подробно исследована в работах [Hochreiter (1991)] и [Bengio, et al. (1994)], в которых выявлены фундаментальные ограничения РНС.

К счастью, у LSTM нет этой проблемы!

Сети LSTM

LSTM (long short-term memory, дословно (долгая краткосрочная память) — тип рекуррентной нейронной сети, способный обучаться долгосрочным зависимостям. LSTM были представлены в работе [Hochreiter & Schmidhuber (1997)], впоследствии усовершенствованы и популяризированы другими исследователями, хорошо справляются со многими задачами и до сих пор широко применяются.

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

Все рекуррентные нейронные сети имеют форму цепочки повторяющихся модулей нейронной сети. В стандартных РНС этот повторяющийся модуль имеет простую структуру, например, один слой tanh.

пример lSTM
Повторяющийся модуль стандартной РНС состоит из одного слоя
LSTM пример
Повторяющийся модуль LSTM состоит из четырех взаимодействующих слоев

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

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

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

Принцип работы LSTM сети

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

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

состояние ячейки LSTM

В LSTM уменьшает или увеличивает количество информации в состоянии ячейки, в зависимости от потребностей. Для этого используются тщательно настраиваемые структуры, называемые гейтами.

Гейт — это «ворота», пропускающие или не пропускающие информацию. Гейты состоят из сигмовидного слоя нейронной сети и операции поточечного умножения.

гейт lstm

На выходе сигмовидного слоя выдаются числа от нуля до единицы, определяя, сколько процентов каждой единицы информации пропустить дальше. Значение «0» означает «не пропустить ничего», значение «1» — «пропустить все».

Пошаговая схема работы LSTM сети

LSTM имеет три таких гейта для контроля состояния ячейки.

Слой утраты

На первом этапе LSTM нужно решить, какую информацию мы собираемся выбросить из состояния ячейки. Это решение принимается сигмовидным слоем, называемым «слоем гейта утраты». Он получает на вход h и x и выдает число от 0 до 1 для каждого номера в состоянии ячейки C.означает «полностью сохранить», а 0 — «полностью удалить».

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

Слой сохранения

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

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

LSTM tahn

Новое состояние

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

Умножим старое состояние на f, теряя информацию, которую решили забыть. Затем добавляем i*C. Это новые значения кандидатов, масштабируемые в зависимости от того, как мы решили обновить каждое значение состояния.

В случае с лингвистической моделью мы отбросим информацию о роде старого субъекта и добавим новую информацию.

LSTM

Наконец, нужно решить, что хотим получить на выходе. Результат будет являться отфильтрованным состоянием ячейки. Сначала запускаем сигмоидный слой, который решает, какие части состояния ячейки выводить. Затем пропускаем состояние ячейки через tanh (чтобы разместить все значения в интервале [-1, 1]) и умножаем его на выходной сигнал сигмовидного гейта.

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

Новое состояние LSTM

Примеры LSTM

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

В популярном варианте LSTM, представленном в [Gers & Schmidhuber (2000)], мы позволяем слоям гейтов просматривать состояние ячейки.

LSTM 2000 год

На диаграмме вверху «глазок» есть у всех гейтов, но во многих статьях он есть лишь у некоторых гейтов.

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

LSTM сети

Несколько отличающейся пример LSTM — Gated Recurrent Unit или GRU, введенная в [Cho, et. al. (2014)]. Она объединяет гейты утраты и входа в единый «шлюз обновления». В нем также объединяются состояние ячейки и скрытое состояние и вносятся некоторые другие изменения. Получающаяся модель проще по сравнению со стандартными типами LSTM и становится все более популярной.

LSTM пример

Это лишь некоторые из наиболее известных вариантов LSTM. Есть много других, таких как РНС с гейтом глубины (см. [Yao, et al. (2015)]). Известен также совершенно иной подход к решению долгосрочных зависимостей, приведенный в [Clockwork RNN by Koutnik, et al. (2014)].

Какой из перечисленных вариантов лучший? Имеют ли большое значение различия? В [Greff, et al. (2015)] приведено широкое сравнение популярных версий LSTM, а также продемонстрировано, что все они примерно одинаковы. В [Jozefowicz, et al. (2015)] опробованы более десяти тысяч архитектур РНС. Некоторые из них работают лучше LSTM при решении определенных задач.

Заключение

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

LSTM были большим шагом в развитии РНС. Естественно задаться вопросом: а что, можно пойти дальше? Общее для исследователей мнение: «Да! Cледующий шаг заключается в использовании механизма внимания!» Идея состоит в том, чтобы РНС на каждом шаге выбирала информацию для просмотра из некого большего количества данных. Например, если вы используете РНС для создания описания изображения, сеть может выбрать часть изображения для просмотра каждого выводимого слова. Именно это и было проделано в [Xu, et al. (2015)] и станет отправной точкой для изучения механизма внимания.


Интересные статьи:

Искусственный интеллект помогает прогнозировать урожай в Аргентине и Бразилии

27 июля 2018
long short-term memory recurrent neural network

Искусственный интеллект помогает прогнозировать урожай в Аргентине и Бразилии

Учёные из Стэнфордского университета разработали систему глубокого обучения, которая прогнозирует будущий урожай сои анализируя спутниковые изображения. Нейронная сеть обучалась только на данных урожайности США, но успешно предсказала количество урожая и…

Учёные из Стэнфордского университета разработали систему глубокого обучения, которая прогнозирует будущий урожай сои анализируя спутниковые изображения. Нейронная сеть обучалась только на данных урожайности США, но успешно предсказала количество урожая и в других странах — Аргентине и Бразилии.

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

предсказание урожая нейронные сети

Команда обучила рекуррентную нейронную сеть с LTSM, используя графические процессоры NVIDIA Tesla и библиотеку TensorFlow, усиленную cuDNN. Учёные собираются использовать разработку для предсказания количества урожая в развивающихся странах.

Исследование опубликовано в цифровой библиотеке ACM.