Teacher Forcing

алгоритм

Это 26-й день моего участия в августовском испытании обновлений. Ознакомьтесь с подробностями мероприятия: Испытание августовского обновления

Эта статья в основном знакомит с навыками тренировочного процесса Учитель Форсинг.

Взяв, к примеру, Seq2Seq, во время тренировочного процессаt0t_0Вход декодера в данный момент "", а на выходе может быть неверный результат "the", например, выводится неверный результат "like". Итак, вот проблема, здесьt1t_1момент, должен продолжать принимать правильное слово «the» в качестве входных данных, или должен предыдущий моментt0t_0Вывод «нравится» в качестве ввода?

На самом деле в вышеописанной задаче задействованы два совершенно разных метода обучения.

  1. Независимо от выхода в предыдущий момент всегда указывается вход в текущий момент, а ввод осуществляется по заданной цели.
  2. Ввод в текущий момент и вывод в предыдущий момент связаны. В частности, вход в текущий момент является выходом в предыдущий момент.

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

Но у первого метода обучения есть следующие проблемы:

  1. Символы, сгенерированные во время декодирования, будут ограничены Ground-Truth, и есть надежда, что результаты, сгенерированные моделью, должны полностью соответствовать эталонным предложениям. Это ограничение уменьшает расхождение модели во время обучения и ускоряет сходимость. Но с одной стороны, это также убивает возможность переводческого разнообразия.
  2. При этом ограничении это также приводит кИсправитьПроблема. Например:
  1. Ссылка предложения, которое будет сгенерировано: «Мы должны соблюдать правило».
  2. Модель предсказывает на полпути через фазу декодирования: «Мы должны соблюдать».
  3. Однако, как указано, третья истина «соблюдение» используется в качестве входных данных для четвертого шага. Затем модель может предсказать «с» на четвертом шаге на основе шаблона, изученного в прошлом.
  4. Последнее поколение модели становится «Мы должны соблюдать».
  5. На самом деле использование «придерживаться» неверно, но из-за вмешательства истинного «соблюдения» модель находится в состоянии избыточности, производя небрежные заявления.

Если вы используете второй метод, в котором до тех пор, пока один шаг неверен, последующие прогнозы будут все более и более отклоняться, и трудно сойтись

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

Вы можете обратиться к следующему псевдокоду

teacher_forcing_ratio = 0.5
teacher_forcing = random.random() < teacher_forcing_ratio
if teacher_forcing:
    pass
else:
    pass

Reference