Градиент функции Matlab для fminunc - PullRequest
0 голосов
/ 16 августа 2011
f = @(w) sum(log(1 + exp(-t .* (phis * w'))))/size(phis, 1) + coef * w*w';
options = optimset('Display', 'notify', 'MaxFunEvals', 2e+6, 'MaxIter', 2e+6);
w = fminunc(f, ones(1, size(phis, 2)), options);
  • phis размер - NxN + 1
  • t размер - Nx1
  • коэф is const

Я пытаюсь минимизировать функцию f , сначала я использовал fminsearch , но она работает долго, поэтому сейчас я использую fminunc , но есть одна проблема: мне нужен градиент функции для ускорения.Можете ли вы помочь мне, пожалуйста, построить градиент для функции f , потому что я всегда получаю это предупреждение:

Warning: Gradient must be provided for trust-region algorithm;
  using line-search algorithm instead.

1 Ответ

2 голосов
/ 16 августа 2011

То, что вы пытаетесь сделать, называется логистическая регрессия с L2-регуляризацией . Существуют гораздо лучшие способы решения этой проблемы, чем вызов функции Matlab, поскольку функция логарифмического правдоподобия является вогнутой.

Вы должны задать свой вопрос в статистическом веб-сайте или взглянуть на мой прежний вопрос там .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...