Pull to refresh

Comments 6

А есть какие-нибудь метрики срвнения генетических алгоритмов оптимизации с более традиционными?
например, со стохастическим градиентным спуском?
К сожалению, сейчас работа с алгоритмами многофакторной оптимизации — больше искусство. Давать именно количественную оценку, а не качественную можно только для конкретно взятой задачи.
Тем не менее можно давать общие рекомендации (читай «качественные оценки»):
*Стохастический градиентный спуск занимает немного больше процессорного времени, чем генетические алгоритмы, так как ЦФ вычисляется два раза (нужно уточнить). Ещё больше занимает времени методы оптимизации второго порядка, там где происходит манипуляция с производными второй степени, например метод сопряженных градиентов.
*Память что градиентные методы, что ГА кушают относительно немного, в отличии, опять таки от методов второго порядка. Упомянуты метод сопряженных градиентов ещё более-менее терпим к малы объемам памяти, но BFGS или метод Левенберга-М. например, требуют очень много оной.
*Как уже писал в своей статье, ГА дают хотя бы теоретическую надежду на получение глобального минимума, а градиентные методы — напротив, это самая чувствительная к локальным минимумам группа.
Когда у нас конечное, дискретное, но при этом очень большое пространство входных параметров (как, например, здесь), то лучше метода Монте-Карло не существует. А еще и целевая функция не непрерывная. Тут, по-моему, вообще сложно говорить о градиентных методах.
ГА нам предлагает, по сути, управляемый Монте-Карло. Чем и хорош.
Когда у нас конечное, дискретное, но при этом очень большое пространство входных параметров (как, например, здесь)

В таких условиях на практике Particle Swarm Optimization нередко показывает себя лучше, чем ГА. К тому-же это подход очень хорошо поддается распараллеливанию, в том числе и на GPU.
Я так понимаю, вы имеете в виду данную вариацию метода PSO, поскольку в остальных входные параметры из R^n. Мне не нравится подход в стиле «погрузим дискретные значения в непрерывную область, все посчитаем, в конце затолкаем опять в конечную» — в случае с градиентным спуском у меня это плохо работало. Более того, если целевая функция определена исключительно на дискретном пространстве, нужно каждую итерацию (например) округлять значения, а это накладно и вообще мне не по душе :)
Но вообще конкретно с PSO такой вариант не пробовал, может, и получится.
UFO just landed and posted this here
Sign up to leave a comment.

Articles