Feb 01, 2022 20:51
Интересная идея из области evolution strategies это использование ранжирования - вместо значения функции успеха, которое, к слову, вычислять долго, используется "положение" - порядковый номер, в ранжированном по значению функции успеха порядке.
Допустим, мы взяли нейросетку и научили её предсказывать "положение", исходя из входов (параметров). Нейросеть здесь в качестве примера, обозначает любой дифференцируемый по входам предсказатель.
Для нейросети мы можем вычислить градиент для входов.
Так вот, чтобы нам не выбрать случайным образом некий набор параметров и не вычислить для него градиент, а потом пройтись по этому градиенту, меняя параметры на входе, до минимума? Можно несколько раз пройтись, отсекая по количеству шагов или до получения предсказанного "положения" лучше, чем у любого в текущем наборе (больше 1, если мы сортируем по возрастанию функции успеха).
Мы быстро получим некоторое новое значение параметров, которое можно использовать для вычисления функции успеха, вычислим значение функции успеха, после чего разместить его в нашем ранге порядков и заново обучим нейросеть.
Надо будет попробовать.
машинное обучение