你如何解释交叉熵值?

机器算法验证 机器学习 分类 神经网络 解释 交叉熵
2022-03-15 09:10:19

在机器学习中,在训练神经网络时经常使用交叉熵。

在我训练我的神经网络的过程中,我跟踪准确性和交叉熵。准确度很低,所以我知道我的网络表现不佳。但是对于知道交叉熵的模型,我能说什么呢?

1个回答

Andrew Ng在逻辑回归模块下的ML Coursera 课程中解释了使用交叉熵作为成本函数背后的直觉,特别是在这个时间点使用数学表达式:

Cost(hθ(x),y)={log(hθ(x))if y=1log(1hθ(x))if y=0

这个想法是,对于一个值在 0 和 1 之间的激活函数(在这种情况下是一个逻辑 sigmoid,但显然适用于例如 CNN 中的一个softmax 函数,其中最终输出是一个多项逻辑),在真 1 值的情况(y=1),将从无穷大减小到零hθ(x)1,因为理想情况下我们希望它是1,准确预测真实值,从而奖励接近它的激活输出;反过来,成本将趋于无穷大,因为激活函数趋于0. 反之亦然y=0用获得对数的技巧1hθ(x), 而不是hθ(x).


这是我尝试以图形方式显示这一点,因为我们将这两个函数限制在垂直线之间01,与 sigmoid 函数的输出一致:

在此处输入图像描述


这可以用一个更简洁的表达来概括:

Cost(hθ(x),y)=ylog(hθ(x))(1y)log(1hθ(x)).

在 CNN 中的 softmax 的情况下,交叉熵将类似地表述为

Cost=jtjlog(yj)

在哪里tj代表每个类的目标值,并且yj输出分配给它的概率。

超出直觉,交叉熵的引入意味着成本函数是凸的。