Discovering Attention-Based Genetic Algorithms via Meta-Black-Box Optimization [2023]
Я надеюсь, вы не забыли, что это канал про статьи по машинному обучению... Понимаю, что посты про статьи собирают меньше всего лайков, но тем не менее.
Сегодня поговорим о статье, в которой пытаются оптимизировать генетический алгоритм. Его можно задать двумя основными операциями:
1) Отбор
На каждом шаге у нас есть популяция из N особей, и каждая из них производит на свет K детей. После того, как мы для каждого из N*K детей получили их fitness score, нам нужно принять решение о составе следующей популяции.
2) Адаптация мутаций
Когда родитель копируется и создаётся ребёнок, к его параметрам добавляется нормальный шум, домножаемый на множитель мутации - специальный параметр родителя, определяющий, насколько сильно веса родителя подвижны.
В классических версиях алгоритма эти операции задаются простыми эвристиками, здесь же мы заменяем их на трансформеры следующим образом:
1) Решение об отборе принимает модель, получающая на вход fitness всех детей и родителей, и после attention-слоя выдаёт матрицу N x (N*K+1) - вероятность для родителя i, что он будет заменён на ребёнка j, или вообще останется без изменения.
2) Множители мутации изменяются следующим образом: после того, как отобрали новую популяцию, берём их соответствующие fitness score и множители мутации, унаследованные от родителей. После attention-слоёв получаем вектор изменений параметра мутации каждого индивида.
Оба трансформера - это маленькие модели, которые оптимизируется во внешнем цикле с помощью Evolution Strategies - классического метода безградиентной оптимизации, альтернативы обычной генетики.
Результаты не огонь, алгоритм проигрывает одному из классических бейзлайнов, к тому же, способен переобучаться и требует регуляризацию. На мой взгляд, при попытке обучать генетический алгоритм важно одновременно использовать как можно больше информации, но с другой стороны не делать модель избыточно мощной. Будем следить за темой.
@knowledge_accumulator
Post #107
1.8K

- 👍 29
- 🔥 7
- ❤ 4
- 🤔 1