Обычно я продолжаю пытаться улучшить свои стандарты организации кода,

  • Просмотр кода, написанного другими авторами
  • Пытаясь оптимизировать то, как я поддерживаю и улучшаю свой код

Обычно, делая это, я вижу, как хожу по кругу. Где спустя долгое время я вижу себя возвращающимся к методу/шаблону, который я использовал в прошлом.

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

Учитывая, что метод, к которому я перехожу, зависит только от текущих (или последних k [для некоторого k], если говорить в общем) методов, которые я использовал. Последовательность методов, которые я использовал, представляет собой цепь Маркова, которая восстанавливается всякий раз, когда я возвращаюсь к фиксированному шаблону/методологии, которую я использовал в прошлом.

Такие регенерации можно использовать для оценки общего количества (или любого свойства) всех существующих методологий тогда и только тогда, когда

  • Я действительно делаю случайную прогулку
  • Цепь Маркова однородна по времени и эргодична.
  • Стационарное распределение начального состояния можно оценить с точностью до константы пропорциональности.

используя методы, подробно описанные в

Саварезе, П. Х., Какодкар, М., и Рибейро, Б. (2018). От Монте-Карло до Лас-Вегаса: совершенствование машинного обучения Больцмана с ограничениями с помощью стопорных наборов.

#ShamelessPlug