Как определить выходное пространство нейронной сети при выполнении прогнозирования временных рядов - PullRequest
0 голосов
/ 03 февраля 2020

Рассмотрите этот игрушечный пример, чтобы проиллюстрировать общую ситуацию (обратите внимание, что это не обязательно связано с НЛП, пожалуйста, см. Редактирование для более подробной информации): Алиса и Боб ведут беседу, где каждый участник на каждом временном шаге говорит одно слово. Задача состоит в том, чтобы предсказать, каким будет второе следующее слово Боба.

На мой взгляд, есть несколько базовых c типов для предиктора (в этом вопросе - нейронная сеть).

1) вывод с шагом по времени t - это то, что сказал Боб при t + 2 (скаляр). Значение: заботится только о нашей целевой миссии.

2) результат на временном шаге t - это то, что сказал Боб при t + 1, t + 2 (вектор с двумя записями). Значение: только посмотрите на нашего целевого Боба, но добавьте информацию о его предыдущих действиях.

3) вывод с шагом по времени t - это то, что Алиса и Боб сказали в t + 2 (вектор с двумя записями). Значение: Добавление истинного будущего действия Алисы.

4) вывод с шагом по времени t - это то, что Алиса и Боб сказали в t + 1, t + 2 ( Матрица 2х2). Значение: используйте каждую доступную информацию, чтобы описать ситуацию как можно лучше.

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

РЕДАКТИРОВАТЬ

Это просто пример, чтобы упростить то, что я считаю является общим основным вопросом, и не имеет ничего общего с естественным языком. Чтобы обдумать это - вместо слов в качестве входных данных предиктор может получить изображения бровей Алисы и Боба и в соответствии с этим предсказать, каким будет второе слово Боба.

EDIT 2 ( Формулировки не существует, потому что у меня недостаточно репутации для нее).

Моя задача - проблема регрессии, использующая нейронную сеть для получения входных данных x измерений [ Batch, SeqLen, Features ], чтобы приблизить некоторую функцию f (x | l) . Например, если SeqLen = 10 и l = 100 , то x имеет 10 последовательных выборок и f (x | l = 100) - это некоторое значение на 100 шагов вперед.

Преобразование из примера с игрушкой, обозначив одну из функций - feature_i , в качестве нашего целевого значения (например, f ( x | l) ), затем:

  • feature_i_l - слово Бобса в t + l .

  • feature_j_l - слово Алисы в t + l .

  • feature_k_l - направление Бобса волосы движутся ветром в t + l .

  • f (x | l) - слово Бобса в t + l .

1) GroundTruth - это ( feature_i_l ).

2) GroundTruth - ( feature_i_1, feature_i_2 ,. .., feature_i_l ).

3) GroundTruth - это ( feature_j_l, feature_i_l ).

4) GroundTruth - это целые функции от t до т + л .

Любая модель, которая требует выполнения, на 100 шагов вперед, 100 прогнозирования для t + 1 , затем t + 2 и т. Д., Накапливающих ошибка будет огромной.

...