Провёл анализ кода TEM в обоих исполнениях:

  • TensorFlow https://github.com/kocherovms/tf_tem
  • PyTorch https://github.com/kocherovms/torch_tem

Цели упражнения: 1) как принуждается формирование структурного знания - есть ли какая-то регуляризация на возникновнеие path integration свойства 2) можно ли прикрутить TEM к решению задачи RL (Atari Frostbit)? 3) подготовка к прочтению статьи про связь TEM с трансформерами (чтобы в голове были уже не абстрактные схемы, а конкретные куски кода)

По поводу первого вопроса. Какой-то специальной регуляризации на возникновение path integration нет. Есть глобальная регуляризация на то, чтобы разные блоки модели играли синхронно. А как оказалось, там этих блоков почти штук 10:

  • один предсказывает g на основе прошлого g и action
  • второй предсказывает g на основе прошлого g, action и recalled sensory landmarks
  • третий выводит g на основе sensor landmarks
  • четвёртый выводит p на основе предсказанного g на этапе 2
  • и т.д.

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

По поводу второго вопроса. Мало того, что TEM работает шаг за шагом, как RNN, так ещё и внутри куча модулей, которые последовательно рассчитываются. Ну и добивает всё то, что нет ускорения через GPU. Короче, всё очень медленно. Вот прям взять и прикрутить TEM не получится. Надо много и кропотливо всё переписывать и ускорять. А как это сделать, если нет бенчмарка?

Вывод. TEM старается описать то, как работает реальная нейронная ткань. Сами идеи очень заманчивы, чтобы от них просто так отказаться. Надо посмотреть, как TEM реализуется на трансформерах.