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

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

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

Рекуррентные нейронные сети (РНС, recurrent neural network, RNN) решают эту проблему. Они содержат в себе обратные связи, позволяющие сохранять информацию.

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

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

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

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

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

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

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

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

 

20.11.2018









 
архив

подписка