L1Hinge¶
Описание¶
Функция потерь Pairwise Ranking Loss, применяющаяся в задачах, где требуется найти оптимальное разделение признаков в пространстве (например, в задачах идентификации по лицу или голосу).
Формула функции ошибки:
где
x1, x2 - вектора признаков, которые сравниваются между собой через L1-метрику;
y - лейбл из набора {-1, 1} для текущей пары векторов, отражающий, принадлежат ли вектора из пары к одному классу или нет.
Инициализация¶
def __init__(self):
Параметры
-
Пояснения
-
Примеры¶
Необходимые импорты:
import numpy as np
from PuzzleLib.Backend import gpuarray
from PuzzleLib.Cost import L1Hinge
Info
gpuarray
необходим для правильного размещения тензора на GPU.
Синтетические тензоры признаков:
x1 = gpuarray.to_gpu(np.random.randn(10, 5).astype(np.float32))
x2 = gpuarray.to_gpu(np.random.randn(10, 5).astype(np.float32))
Important
Не забывайте, что первым измерением тензоров является размер батча.
Important
Для L1Hinge-loss размерности сравниваемых тензоров признаков должны быть одинаковы.
Синтетический вектор соответствия тензоров признаков:
labels = gpuarray.to_gpu(np.random.randint(low=0, high=2, size=(10, )).astype(np.int32))
Инициализация функции ошибки:
l1Hinge = L1Hinge()
Расчёт ошибки и градиента на батче:
error, (g1, g2) = l1Hinge([x1, x2], labels)