RNN и BPPT

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



Представьте, что вы разговариваете со своим другом. Чтобы понять его текущую фразу: “Представляешь? А потом он взял и….” — вам нужно помнить, о чем вы разговаривали секунду назад. Друг жаловался на начальника? Рассказывал смешную историю из жизни?

Так и нейронным сетям для понимания текста необходимо сохранять его контекст. Однако, ранее рассмотренные нами CNN и FNN не приспособлены для этого. Именно поэтому сегодня мы с вами поговорим о RNN.

Рекуррентные нейронные сети (RNN), также как и трансформеры, о которых мы поговорим дальше, реализуют последовательную задачу (обучение с учителем), т.е. формируют свой ответ, основываясь на предыдущих значениях. Кстати, даже название говорит нам об этом, ведь рекуррент (с латинского recurrens) переводится как возвращающийся. Например, если мы предсказываем следующее положение мяча, то будем основываться на его предыдущей траектории. Таким образом, RNN принимает входные данные “по одному” и на каждом шаге учитывает все предыдущие вычисления.

RNN помнит то, что происходило ранее благодаря “скрытому состоянию”. Скрытое состояние — вектор (набор чисел), который обновляется каждую итерацию, основываясь на входных данных и текущем состоянии скрытого слоя.

Немного о весах

Ранее, мы с вами подробно рассматривали архитектуры сверточной и полносвязной нейронных сетей. Сегодня же мы изучим устройство RNN.

Однако, для начала вернемся к весам, о которых говорили в предыдущих статьях. Весы — обучаемый параметр, от которого и зависит качество нейронной сети. Чем более точные подобраны веса, тем более точный ответ у нас будет. Диапазон весов может быть абсолютно любым (от -? до +?), но веса всегда представлены конкретными значениями. Таким образом, для увеличения точности модели необходимо правильно подобрать значения весов, именно поэтому разрабатываются используются эффективные способы поиска весов.

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

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

BPPT

Однако вернемся к нашей основной теме — рекуррентной нейронной сети. Основное её отличие от полносвязной заключается в вычислении градиента на каждом шаге. Мы “распространяем ошибку” на 3 шага назад и суммируем градиенты. Этот алгоритм называется BPTT (Backpropagation through time — обратное распространение ошибки во времени). BPPT можно сравнить с костяшками домино — чтобы понять, почему упала 4-я костяшка, необходимо проследить, что её толкнула третья костяшка. Третью костяшку толкнула вторая, вторую — первая.

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


Телеграм: t.me/ainewsline

Источник: vk.com

Комментарии: