Я пытаюсь минимизировать функцию из 76 параметров. Я хочу, чтобы каждое значение параметра было от 0 до 5.
Алгоритм по умолчанию LBFGS не смог найти оптимума.
Итак, я попробовал алгоритм TNC, и хотя он достигает хорошего значения целевой функции, решение, которое он мне дает, игнорирует границы. Похоже, его вывод не указывает на какой-либо сбой.
x0 = np.zeros(2 * S)
bnds = tuple([(0,5)]*2*S)
r = scipy.optimize.minimize(mse, x0, method = 'TNC', bounds=bnds, callback=print_callback, options={'disp': True})
Это вывод оптимизации по TNC:
(prior_every_personb_mse_sg.py:8229): Gdk-CRITICAL **: 15:06:09.828: gdk_cursor_new_for_display: assertion 'GDK_IS_DISPLAY (display)' failed
(prior_every_personb_mse_sg.py:8229): Gdk-CRITICAL **: 15:06:09.831: gdk_cursor_new_for_display: assertion 'GDK_IS_DISPLAY (display)' failed
NIT NF F GTG
0 1 2.544667777777778E+03 1.71075138E+22
tnc: fscale = 1.5291e-12
tnc: |xn-xn-1] = 9.73002e-10 -> convergence
1 27 1.862298888888889E+03 2.84054419E+22
tnc: Converged (|x_n-x_(n-1)| ~= 0)