Keras 3 API 文档 / 损失函数 / Hinge losses for "maximum-margin" classification

Hinge losses for "maximum-margin" classification

[source]

Hinge class

keras.losses.Hinge(reduction="sum_over_batch_size", name="hinge", dtype=None)

计算 y_truey_pred 之间的合页损失.

公式:

loss = maximum(1 - y_true * y_pred, 0)

y_true 的值应为 -1 或 1.如果提供了二进制(0 或 1)标签,我们将将其转换为 -1 或 1.

参数: reduction: 应用于损失的归约类型.在几乎所有情况下,这应该是 "sum_over_batch_size". 支持的选项是 "sum""sum_over_batch_size"None. name: 损失实例的可选名称. dtype: 损失计算的数据类型.默认为 None,这意味着使用 keras.backend.floatx().keras.backend.floatx()"float32",除非设置为不同的值 (通过 keras.backend.set_floatx()).如果提供了 keras.DTypePolicy,则将使用 compute_dtype.


[source]

SquaredHinge class

keras.losses.SquaredHinge(
    reduction="sum_over_batch_size", name="squared_hinge", dtype=None
)

计算 y_truey_pred 之间的平方合页损失.

公式:

loss = square(maximum(1 - y_true * y_pred, 0))

y_true 的值应为 -1 或 1.如果提供了二进制(0 或 1)标签,我们将将其转换为 -1 或 1.

参数: reduction: 应用于损失的归约类型.在几乎所有情况下,这应该是 "sum_over_batch_size". 支持的选项是 "sum""sum_over_batch_size"None. name: 损失实例的可选名称. dtype: 损失计算的数据类型.默认为 None,这意味着使用 keras.backend.floatx().keras.backend.floatx()"float32",除非设置为不同值 (通过 keras.backend.set_floatx()).如果提供了 keras.DTypePolicy,则将使用 compute_dtype.


[source]

CategoricalHinge class

keras.losses.CategoricalHinge(
    reduction="sum_over_batch_size", name="categorical_hinge", dtype=None
)

计算 y_truey_pred 之间的分类铰链损失.

公式:

loss = maximum(neg - pos + 1, 0)

其中 neg=maximum((1-y_true)*y_pred)pos=sum(y_true*y_pred)

参数: reduction: 应用于损失的归约类型.在几乎所有情况下,这应该是 "sum_over_batch_size". 支持的选项是 "sum""sum_over_batch_size"None. name: 损失实例的可选名称. dtype: 损失计算的数据类型.默认为 None,这意味着使用 keras.backend.floatx().keras.backend.floatx()"float32",除非设置为不同的值 (通过 keras.backend.set_floatx()).如果提供了 keras.DTypePolicy,则将使用 compute_dtype.


[source]

hinge function

keras.losses.hinge(y_true, y_pred)

计算 y_truey_pred 之间的合页损失.

公式:

loss = mean(maximum(1 - y_true * y_pred, 0), axis=-1)

参数: y_true: 真实值.y_true 的值应为 -1 或 1.如果提供了二进制(0 或 1)标签, 它们将被转换为 -1 或 1,形状为 [batch_size, d0, .. dN]. y_pred: 预测值,形状为 [batch_size, d0, .. dN].

返回: 合页损失值,形状为 [batch_size, d0, .. dN-1].

示例:

>>> y_true = np.random.choice([-1, 1], size=(2, 3))
>>> y_pred = np.random.random(size=(2, 3))
>>> loss = keras.losses.hinge(y_true, y_pred)

[source]

squared_hinge function

keras.losses.squared_hinge(y_true, y_pred)

计算 y_truey_pred 之间的平方合页损失.

公式:

loss = mean(square(maximum(1 - y_true * y_pred, 0)), axis=-1)

参数: y_true: 真实值.y_true 的值应为 -1 或 1.如果提供了二进制(0 或 1)标签, 我们将将其转换为 -1 或 1,形状为 [batch_size, d0, .. dN]. y_pred: 预测值,形状为 [batch_size, d0, .. dN].

返回值: 平方合页损失值,形状为 [batch_size, d0, .. dN-1].

示例:

>>> y_true = np.random.choice([-1, 1], size=(2, 3))
>>> y_pred = np.random.random(size=(2, 3))
>>> loss = keras.losses.squared_hinge(y_true, y_pred)

[source]

categorical_hinge function

keras.losses.categorical_hinge(y_true, y_pred)

计算 y_truey_pred 之间的分类铰链损失.

公式:

loss = maximum(neg - pos + 1, 0)

其中 neg=maximum((1-y_true)*y_pred)pos=sum(y_true*y_pred)

参数: y_true: 真实值.y_true 的值应为 {-1, +1}{0, 1}(即一个 one-hot 编码的张量), 形状为 [batch_size, d0, .. dN]. y_pred: 预测值,形状为 [batch_size, d0, .. dN].

返回: 分类铰链损失值,形状为 [batch_size, d0, .. dN-1].

示例:

>>> y_true = np.random.randint(0, 3, size=(2,))
>>> y_true = np.eye(np.max(y_true) + 1)[y_true]
>>> y_pred = np.random.random(size=(2, 3))
>>> loss = keras.losses.categorical_hinge(y_true, y_pred)