Модуль Optimizer. - aeDeaf/physlearn GitHub Wiki

Основной функцией в любом "оптимизаторе" является функция optimize. Все методы возвращают numpy массив, состоящий из найденных параметров.

Полезный совет: после того, как оптимизатор завершил свою работу и вернул подобранные параметры, необходимо вызвать метод roll_matrixes, передав ему в качестве параметра найденные веса. Без этого в НС будут хз какие параметры.


Метод Нелдера-Мида

Модуль Optimizer.NelderMead.

optimize(func, dim, end_cond, min_element=-1, max_element=1, end_method='max_iter', alpha=1, beta=0.5, gamma=2)

func - оптимизируемая функция, должна принимать в качестве параметра массив Numpy.

dim - число, размерность

end_cond - число, условие завершения работы алгоритма. Обычно это максимальное число итераций, но возможен и другой вариант (он нам вряд ли подойдет, поэтому расскажу о нем при личной встрече).

min_element, max_element - числа, минимальное и максимальное число, которое предается генератору случайных чисел при создании случайного набора из dim+1 вектора.

end_method - не трогай, связанно с end_cond и, опять же, расскажу при встрече.

alpha, beta, gamma - числа, параметры алгоритма.

Другие функции из модуля не используй, они тебе вряд ли будут нужны.


Метод дифференциальной эволюции

Модуль Optimizer.DifferentialEvolution

optimize(func, amount_of_individuals, dim, end_cond, end_method='max_iter', f=0.5, p=0.9, min_element=-1, max_element=1, debug_pop_print=-1)

func - оптимизируемая функция. Требования аналогичны методу Нелдера-Мида.

amount_of_individuals - число, количество особей в популяции.

dim - размерность функции func.

end_cond - аналогично, максимальное число итераций.

end_method - не трогай, иначе вообще никак работать не будет (потому что только пока один метод определения конца работы сделан).

f, p - числа, параметры алгоритма.

min_element, max_element - аналогично методу Нелдера-Мида.

debug_pop_print - число, выводит тебе всю популяцию на экран раз в debug_pop_print итераций. Если debug_pop_print=-1 (как по умолчанию) то не выводит ничего и никогда (да, знаю, что нужно переделать, но мне лень).