私はMatlabでロジスティック回帰を実装しています。データは標準化されています(平均と標準偏差)。私はあなたの学習率に応じて最適なポイントをオーバーシュートする可能性があることを理解しています。しかし、それはあなたのコストが上昇し始めることを意味しないのですか?私の場合、コストは負の領域になりますが、私は理由を理解できません。ここでなぜロジスティック回帰コストが負になり、正しくないのですか?
は、標準的な(?と思う)コストと重量更新規則
function J = crossEntropyError(w, x, y)
h = sigmoid(x*w);
J = (-y'*log(h) - (1-y')*log(1-h));
end
重量アップデートです:
function w = updateWeights(alpha, w, x, y)
h = sigmoid(x*w);
gradient = x'*(h-y);
w = w - alpha*gradient;
end
これは意味をなさない。 0を打ったときに、それは自己修正して、他の方向に行くとは思わない?つまり、微分値が最小値を指しているからです。私は学習率でプレーしました、ここではそれは0.0001に設定されています。しかし、同じパターンで違いはありません。問題は何ですか?ここに本当に間違った何かがあるはずですが、私はそれを見つけることはできません。
m = sieze(x)
と
gradient = zeros(size(theta));
for i = 1:size(theta),
gradient(i)= (1/m)*sum((sigmoid(X*theta)-y).*X(:,i));
end;
私はまだ同じパターンを取得します。あなたが書き込んだコードでコストをグラフ化すると、どのように見えますか? – vega
私は彼女がまだそこにいないと思うより多くの反復を追加 – Bilal
彼女は混乱しています。下の私の答えをチェックしてください。乾杯。 – vega