Hinge¶
Описание¶
Функция потерь Hinge, применяющаяся в задачах бинарной классификации.
Формула функции ошибки:
где
y - "сырое" предсказание классификатора;
t - лейбл из набора {-1, 1} для текущего объекта .
Important
Реальные лейблы объектов должны быть именно разнознаковыми для корректной работы функции ошибки.
Note
Возможно вычисление ошибки для нескольких классов, к которым может принадлежать объект. См. Пример
Инициализация¶
def __init__(self):
Параметры
-
Пояснения
-
Примеры¶
Бинарная классификация¶
Необходимые импорты:
import numpy as np
from PuzzleLib.Backend import gpuarray
from PuzzleLib.Cost import Hinge
Info
gpuarray
необходим для правильного размещения тензора на GPU.
Синтетические целевой и предсказательный тензоры:
scores = gpuarray.to_gpu(np.random.randn(10, 1).astype(np.float32))
labels = gpuarray.to_gpu((np.random.randint(low=0, high=2, size=(10, 1)) * 2 - 1).astype(np.int32))
Important
Не забывайте, что первым измерением целевого и предсказательного тензоров является размер батча.
Important
Для Hinge-loss размерности целевого и предсказательного тензоров должны быть одинаковыми.
Инициализация функции ошибки:
hinge = Hinge()
Расчёт ошибки и градиента на батче:
error, grad = hinge(scores, labels)
Мультиклассовая классификация бинарными флагами¶
Всё то же самое, что и для предыдущего примера, кроме тензоров scores
и labels
. Допустим, требуется определить наличие или отсутствие четырёх атрибутов у объекта. В таком случае вышеупомянутые тензора будут задаваться следующим способом:
scores = gpuarray.to_gpu(np.random.randn(10, 4).astype(np.float32))
labels = gpuarray.to_gpu((np.random.randint(low=0, high=2, size=(10, 4)) * 2 - 1).astype(np.int32))