Keras 3 API 文件 / 損失函數 / 「最大邊界」分類的合頁損失

「最大邊界」分類的合頁損失

[原始碼]

Hinge 類別

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""mean""mean_with_sample_weight"None"sum" 加總損失,"sum_over_batch_size""mean" 加總損失並除以樣本大小,而 "mean_with_sample_weight" 加總損失並除以樣本權重的總和。"none"None 不執行聚合。預設值為 "sum_over_batch_size"
  • name:損失實例的可選名稱。
  • dtype:損失計算的資料類型。預設值為 None,表示使用 keras.backend.floatx()keras.backend.floatx()"float32",除非設定為不同的值 (透過 keras.backend.set_floatx())。如果提供 keras.DTypePolicy,則會使用 compute_dtype

[原始碼]

SquaredHinge 類別

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""mean""mean_with_sample_weight"None"sum" 加總損失,"sum_over_batch_size""mean" 加總損失並除以樣本大小,而 "mean_with_sample_weight" 加總損失並除以樣本權重的總和。"none"None 不執行聚合。預設值為 "sum_over_batch_size"
  • name:損失實例的可選名稱。
  • dtype:損失計算的資料類型。預設值為 None,表示使用 keras.backend.floatx()keras.backend.floatx()"float32",除非設定為不同的值 (透過 keras.backend.set_floatx())。如果提供 keras.DTypePolicy,則會使用 compute_dtype

[原始碼]

CategoricalHinge 類別

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""mean""mean_with_sample_weight"None"sum" 加總損失,"sum_over_batch_size""mean" 加總損失並除以樣本大小,而 "mean_with_sample_weight" 加總損失並除以樣本權重的總和。"none"None 不執行聚合。預設值為 "sum_over_batch_size"
  • name:損失實例的可選名稱。
  • dtype:損失計算的資料類型。預設值為 None,表示使用 keras.backend.floatx()keras.backend.floatx()"float32",除非設定為不同的值 (透過 keras.backend.set_floatx())。如果提供 keras.DTypePolicy,則會使用 compute_dtype

[原始碼]

hinge 函數

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)

[原始碼]

squared_hinge 函數

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)

[原始碼]

categorical_hinge 函數

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)