В статье предложен подход к моделированию функции вознаграждения путем
последовательного тестирования ее функциональных компонент. Некорректные
функциональные компоненты могут привести к тому, что максимальное значение
результирующей функции перестанет соответствовать желаемому целевому поведению робота.
Для решения этой проблемы, а также предварительной оценки самой функции была предложена
методика верификации, позволяющая проводить систематическую проверку как отдельных
компонент функции вознаграждения, так и их весовых коэффициентов до начала длительного и
ресурсоемкого обучения политики. Методика включает в себя формирование набора
желательных и нежелательных сценариев поведения робота для последующей оценки изменения
функции вознаграждения и ее функциональных компонент. Предложен двухуровневый метод
тестирования: на первом уровне тестируются отдельные функциональные компоненты,
отвечающие за соблюдение желаемых критериев движения робота, таких как сохранение
целевой скорости, сохранение целевой устойчивости корпуса, сохранение целевой высоты
корпуса и т. д. на предмет их монотонного убывания в нежелательных состояниях. На втором
уровне тестируется результирующая функция взвешенной суммы этих компонент, чтобы
убедиться, что дисбаланс весов не приводит к росту награды при потере устойчивости, падении
или движению с нежелательной скоростью в нежелательном направлении. Особое внимание
уделяется тесту на соответствие желательному состоянию – сценарию идеального
прямолинейного движения, который позволяет выявить «некорректные» наборы
коэффициентов, при которых штрафующие компоненты доминируют даже в идеальных
условиях. Экспериментальная проверка проведена на модели робота Unitree Go1 в среде
PyBullet. Результаты подтверждают, что предложенные тесты эффективно выявляют ошибки в
реализации компонент и дисбаланс весов, что существенно повышает надежность процесса
обучения и сокращает временные затраты на разработку.