Це правда, що обмеження розповсюдження градієнта на 30 часових кроків не дозволить йому вивчити все можливе у вашому наборі даних. Однак, від вашого набору даних сильно залежить, чи не завадить це дізнатися важливі речі про функції вашої моделі!
Обмеження градієнта під час тренування більше схоже на обмеження вікна, над яким ваша модель може з високою впевненістю засвоювати функції введення та прихований стан. Оскільки під час тестування ви застосовуєте свою модель до всієї послідовності введення, вона все одно зможе включити інформацію про всі вхідні функції у прихований стан. Він може не знати точно, як зберегти цю інформацію, поки не зробить остаточний прогноз для вироку, але можуть бути деякі (правда, слабкіші) зв’язки, які вони все-таки зможуть встановити.
Спочатку подумайте про надуманий приклад. Припустимо, ваша мережа генерує 1, якщо в його вході є 1, а інше 0. Скажімо, ви тренуєте мережу на послідовностях довжиною 20 та обмежуєте градієнт на 10 кроків. Якщо навчальний набір даних ніколи не містить 1 в останніх 10 кроків введення, то в мережі виникнуть проблеми з тестовими входами будь-якої конфігурації. Однак якщо навчальний набір має деякі приклади, такі як [1 0 0 ... 0 0 0] та інші, як [0 0 0 ... 1 0 0], то мережа зможе підібрати "наявність" функція 1 "в будь-якому місці вхідних даних.
Тоді повернемося до аналізу настроїв. Скажімо, під час тренінгу ваша модель стикається з довгим негативним реченням на кшталт "Я ненавиджу це, тому що ... навколо і навколо" з, скажімо, 50 словами в еліпсісі. Обмеживши розповсюдження градієнта 30 кроками часу, модель не з'єднає "Я ненавиджу це, тому що" до вихідної мітки, тому вона не буде підбирати "I", "ненавижу" або "this" з цього тренінгу приклад. Але він підбере слова, які знаходяться протягом 30 часових кроків з кінця речення. Якщо ваш навчальний набір містить інші приклади, які містять ті самі слова, можливо разом із "ненавистю", то він має шанс підібрати посилання між "ненавистю" та позначкою негативних настроїв. Крім того, якщо у вас є короткі приклади тренувань, скажіть: "Ми ненавидимо це, бо це жахливо!" то ваша модель зможе підключити функції "ненависть" та "це" до цільової мітки. Якщо у вас є достатньо цих прикладів навчання, тоді модель повинна мати можливість ефективно вивчити з'єднання.
Скажімо, ви на час тестування представляєте моделі ще одне довге речення на кшталт "Я ненавиджу це, тому що ... на геккона!" Введення моделі розпочнеться з "Я ненавиджу це", яке перейде в прихований стан моделі в деякій формі. Цей прихований стан використовується для впливу на майбутні приховані стани моделі, тому, хоча до кінця речення може бути 50 слів, прихований стан від цих початкових слів має теоретичний шанс вплинути на результат, хоча він ніколи не був тренувались на зразках, які містили таку велику відстань між "Я ненавиджу це" та кінцем речення.