Я пытаюсь вычислить следующее. Проблема в том, что я получаю inf для третьего элемента, который вычисляется. Как я могу разрешить это, чтобы больше не было inf-value?MATLAB: Resolve inf result
num_labels = 2;
htheta = [0.2 0.5; 0.8 0.1; 0.6 1; 0.7 0.4]
y = [1; 0; 0; 1;]
m = 4;
wes = ones(m, num_labels);
J = 0;
for k = 1:num_labels
for r = 1:m
if (htheta(r, k) < 0.5) && y(r, 1) ~= 0
wes(r, k) = 2;
else if (htheta(r, k) > 0.5) && y(r, 1) ~= 1
wes(r, k) = 4;
else wes(r, k) = 1;
end
end
end
yk = y == k;
hthetak = htheta(:, k);
Jk1 = (-yk .* log(hthetak) - (1 - yk) .* log(1 - hthetak));
Jk2 = (-yk .* log(hthetak) - (1 - yk) .* log(1 - hthetak)) .* wes(:, k);
Jk3 = 1/m * sum((-yk .* log(hthetak) - (1 - yk) .* log(1 - hthetak)) .* wes(:, k));
J = J + Jk3;
end
Jk1
Jk2
Jk3
J
Хорошо, что у вас был ваш ответ, и ваша проблема решена, но, пожалуйста, оставьте некоторую информацию другим людям, у которых будут подобные проблемы. В вашем последнем редактировании вы удалили весь свой (_faulty_) код, так что теперь никто не может понять, о чем идет речь. Не стесняйтесь оставлять свой код в своем вопросе, даже если есть несколько недостатков, вот как можно передавать знания. – Hoki