Обратное распространение во времени для микроавтобуса

71
9

Я хочу предсказать действия компьютера с данными диалогов между человеком и компьютером. У меня 1000 диалогов для обучения. Каждый диалог имеет разное количество оборотов.

В моей тезисе (https://arxiv.org/abs/1702.03274) объясняется обучение, как показано ниже. Он использует базовый LSTM.

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

Тогда у меня есть два вопроса.

В каждом диалоговом окне формируется одна мини-балка, состоящая из 1000 мини-отсеков? Были ли обновления сделаны при полном развертывании, означает, что обновления были выполнены после всех диалоговых данных? или обновления были сделаны после каждого диалога?

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

Обновить

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

dialog 1
t1: hello ([1,0,1,0,]) -> hi ([0,0,1,0])
t2: how are you ([0,1,1,0,]) -> fine ([0,1,0,0])
dialog 2
t1: hey ([1,0,1,0,]) -> hi ([0,0,1,0])
...
dialog 1000
...

Таким образом, эта задача заключается в предсказании y через x

dialog_list = [ {(x1,y1), (x2,y2)}, {(x1,y1)}, ..  ] # length is 1000

спросил(а) 2017-03-25T17:45:00+03:00 3 года, 6 месяцев назад
1
Решение
57

Позвольте мне объяснить вашу цитату. Сначала сделаем предположение о данных. Я предполагаю, что диалог с 4-мя поворотами означает, что человек А что-то говорит, тогда B отвечает, затем A, затем B. Затем вы можете форматировать данные следующим образом:

    A говорит последовательность 1. B говорит последовательность 2. B говорит последовательность 2. Говорит последовательность 3. A говорит последовательность 3. B говорит последовательность 4.

Обратите внимание, что в этом диалоговом окне есть дубликаты, мы должны сделать это, чтобы "ответ", то есть второе предложение, был связан с предыдущим. Этот способ форматирования ваших данных полезен для LSTM кодировщика/декодера. Первая последовательность переходит в кодировщик, а вторая - в декодер. Здесь каждая пара является образцом данных. Таким образом, этот диалог имеет 3 образца.

В ходе обучения каждый диалог формировал один мини-канал,

Предыдущим диалогом может быть партия из 3 образцов. Мы можем сделать это для всех диалогов. Поэтому каждый диалог представляет собой пакет. С мини-пакетным обучением, партия проходит через сеть, передний проход, после которого вы немедленно выполняете backpropagation (обновите свои параметры). Так да, 1000 мини-партий.

и обновления были выполнены при полном развертывании (т.е. без усеченного обратного распространения во времени).

Как я уже объяснял выше, обновления выполняются сразу после пересылки вашего пакета. Это означает, что за одну эпоху (т.е. Через все ваши данные) есть 1000 обновлений.

При работе с RNN, если последовательности слишком велики, мы можем их разбить. Мы могли бы разбить образец [A говорит последовательность 1. B говорит последовательность 2.] на 3 выборки: [A говорит последовательность], [1. B говорит], [последовательность 2.]. Мы будем подавать первый образец в сеть, backpropagate, затем загружать второй образец в сеть, backpropagate, а затем третий. Тем не менее, нам нужно сохранить последнее скрытое состояние образца 1, чтобы дать начало выборке 2, и сохранить последнее состояние 2, чтобы дать 3. Это называется усеченным обратным распространением во времени (TBPTT). Если вы "полностью разворачиваете" перед обратным распространением, то вы не делаете TBPTT. Поэтому для каждой партии вы только обновляете сеть один раз, а не 3 раза в моем примере.

Надеюсь, это поможет.

ответил(а) 2017-03-25T19:53:00+03:00 3 года, 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема