@ Ответ sgvd дает действительные баллы, но я хотел бы подробнее остановиться.
Прежде всего, нам нужно определить, что означает фактическое масштабирование. Если это означает просто умножение пригодности на какой-то фактор, то это делает не изменить отношения в населении - если лучший индивидуум имел в 10 раз более высокий фитнес, чем худший, после такого умножения это по-прежнему верно (если вы не умножаетесь на ноль что не имеет никакого реального смысла). Таким образом, гораздо более разумное масштабирование пригодности является аффинным преобразованием фитнес значений:
scaled(f) = a * f + b
т.е. значения умножаются на некотором числе и смещения на другое число, вверх или вниз.
Фитнес-масштабирование имеет смысл только с определенными типами стратегий выбора, а именно теми, где вероятность выбора пропорциональна пригодности физических лиц .
Фитнес скейлинг играет, по сути, два ролей.Первый из них просто практичен - если вы хотите, чтобы вероятность была пропорциональна фитнесу, вам нужно, чтобы фитнес был положительным. Итак, если ваше сырое значение пригодности может быть отрицательным (но ограничено снизу), вы можете настроить его, чтобы вы могли вычислять вероятности из него. Пример: если ваш фитнес дает значения из диапазона [-10, 10], вы можете просто добавить 10 к значениям, чтобы получить все положительные значения.
Вторая роль, как вы уже упомянули, и @sgvd, ограничить возможности самых сильных решений для подавления слабых. Лучшая иллюстрация будет с примером.
Предположим, что ваши исходные значения пригодности дают значения из диапазона [0, 100]. Если бы вы оставили это таким образом, у худших людей была бы нулевая вероятность выбора, а лучшие из них имели бы до 100 раз более высокую вероятность, чем самые худшие (исключая действительно худшие). Однако давайте установим масштабные коэффициенты в a = 1/2, b = 50
. Затем диапазон преобразуется в [50, 100]. И сразу, происходят две вещи:
- Даже самые плохие люди имеют отличную от нуля вероятность быть выбранным.
- Лучшие люди теперь только в 2 раза чаще выбираются, чем самые худшие.
Exploration против эксплуатации
Устанавливая коэффициенты масштабирования вы можете контролировать, будет ли алгоритм делать больше разведки над эксплуатацией и наоборот. Чем больше «сжато» значения будут после масштабирования, тем больше исследований будет сделано (поскольку вероятность того, что лучшие люди будут выбраны по сравнению с худшими, будет уменьшена). И наоборот, чем больше «расширенных» будут значениями, тем больше будет выполнено эксплуатация (потому что вероятность того, что лучшие люди будут выбраны по сравнению с худшими, будет увеличена).
Другие стратегии выбора
Как я уже писал в начале, фитнес масштабирование имеет смысл только со стратегиями выбора, которые извлекают вероятность выбора пропорционально из фитнес значений. Однако существуют другие стратегии выбора, которые не работают так.
Рейтинга Выбор
Рейтинг выбор идентичен выбор колеса рулетки, но число вероятности являются производными от не являются исходными значениями пригодности. Вместо этого все население сортируется по исходным значениям пригодности, а ранг (т. Е. Позиция в отсортированном списке) - это число, из которого вы получаете вероятность выбора.
Это полностью устраняет несоответствие, когда есть один или два «больших» человека и множество «маленьких». Они будут просто оценены.
Выбор турнира
В этом типе выбора вам даже не нужно знать абсолютные значения пригодности вообще, вам просто нужно, чтобы иметь возможность сравнить два из них и сказать, какой из них лучше. Чтобы выбрать одного человека с помощью выбора турнира, вы произвольно выбираете несколько людей из населения (это число является параметром), и вы выбираете лучший из них. Вы повторяете это, пока вы выбрали достаточно людей.
Здесь вы также можете контролировать разведку и эксплуатацию по размеру турнира - чем больше турнир, тем выше вероятность того, что лучшие игроки примут участие в турнирах.
Примером такой стратегии выбора является классическим выбором колеса рулетки. В этой стратегии выбора у каждого человека есть свой раздел колеса рулетки, который пропорционален по размеру физическим особенностям конкретного человека.
Предполагая исходные значения положительны, масштабированные значения архивируются в a
опускается до нуля и, как b
идет вверх. Расширение идет наоборот.
Это совершенно разумно! Благодаря P.s. Термины «локальный максимум» и «глобальный максимум» являются общим термином? Или что-то вы придумали? –
Они очень распространены, хотя часто вы также можете видеть локальный/глобальный _minimum_, когда более интуитивно думать о минимизации функции затрат, а не о максимизации функции работоспособности. См. Например https://en.wikipedia.org/wiki/Maxima_and_minima. – sgvd