回归中损失函数的负无穷大或正无穷大

Negative Infinity or positive infinity in loss function in Regression

我的输出显示损失函数为无穷大或负无穷大。它应该是 0 或 1。

w = np.random.randn(6)
x = np.random.randn(6)
b =1
z = np.dot(w,x) + b
# a is sigmoid 
a = 1/1+np.exp(-z)
loss_function = -(np.dot(a,np.log(y) + np.dot((1-a),np.log(1-y))))

如果是 y,当我为 y 使用任何值时。它显示

-inf

inf

谁能给我解释一下?

您正在向后应用交叉熵损失函数的公式,这就是为什么您只能得到无穷大的原因。

你的真实标签 y01 这永远不会起作用,相反你应该在日志中输入 a :

loss_function = -(np.dot(y,np.log(a) + np.dot((1-y),np.log(1-a))))