fminunc は 'ユーザー目的関数が複素数を返しました。'iter-detailed' がオンの場合、新しいポイントを試行しています...'。コスト関数が原因であることはわかっていますが、何らかの理由で複雑なコンポーネントを返しています (正確には、J = NaN + NaNi を返しています)。なぜこれを行っているのか、どうすれば修正できるのかについてのアイデアはありますか? PS 私は非常に大きなセット機能 (約 1000) を持っていますが、最大値または精度を超えている可能性がありますか? Ps コスト関数と勾配:
hyp = sigmoid(X * theta);
reg = (lambda/(2*m))*sum((theta(2:end).^2));
J = (1/m * sum((-y .* log(hyp)) - ((1-y) .* log(1-hyp)))) + reg;
grad(1) = (1/m * ((hyp-y)' * X(:,1)))';
grad(2:end) = (1/m * ((hyp-y)' * X(:,2:end)))' + (lambda/m * theta(2:end));