Я использую scipy.optimize. свернуть, чтобы найти минимум четырехмерной функции, который довольно чувствителен к исходному предположению. Если я немного его изменю, решение существенно изменится.
Есть много вопросов, похожих на этот, уже в SO (например: 1, 2, 3), но настоящего ответа нет.
В моем старом вопросе один из разработчиков сайта zunzun.com (очевидно, больше не в сети) объяснил, как им это удалось:
Zunzun.com использует генетический алгоритм дифференциальной эволюции (DE) для поиска начальных оценок параметров, которые затем передаются в решающую программу Левенберга-Марквардта в scipy. DE фактически не используется как глобальный оптимизатор как таковой, а скорее как «средство определения начальных параметров».
Наиболее близким к этому алгоритму, который я нашел, является этот ответ, где блок for
используется для многократного вызова функции минимизации с случайные начальные догадки. Это генерирует несколько минимизированных решений, и, наконец, выбирается лучшее (наименьшее значение).
Есть ли что-то вроде того, что описал разработчик zunzun, уже реализованный на Python?
anneal
. который использует имитацию отжига, которая часто используется вместо алгоритмов GA. Они также упоминают PyEvolve как библиотеку, которая предоставляет генетические алгоритмы. - person Bakuriu   schedule 09.02.2016sklearn.grid_search
также предлагает различные исчерпывающие и стохастические методы оптимизации гиперпараметров. - person ali_m   schedule 09.02.2016