kera中class_weight和sample_weight的影响

Div*_*oML 10 keras

有人可以在数学上告诉我在计算损失函数和指标时,在Keras中如何使用sample_weight和class_weight?一个简单的数学表达将是伟大的.

Nic*_*ite 9

这是一个简单的乘法.样品所造成的损失因其样品重量而放大.假定i = 1 to n样本,样本的权重的权重向量w长度的n,并对于样品损失i表示为L_i:

在此输入图像描述

特别是在Keras中,每个样品的损失与其重量的乘积除以不为0的重量分数,使得每批的损失与重量> 0个样品的数量成比例.让我们p为非零权重的比例.

在此输入图像描述

以下是Keras回购的相关代码片段:

score_array = loss_fn(y_true, y_pred)

if weights is not None:
    score_array *= weights
    score_array /= K.mean(K.cast(K.not_equal(weights, 0), K.floatx()))

return K.mean(score_array)
Run Code Online (Sandbox Code Playgroud)

class_weight使用方式与sample_weight; 相同; 它只是为了方便在整个类中指定某些权重而提供的.

样本权重目前不适用于指标,仅适用于损失.