BCE¶
Описание¶
Функция потерь, вычисляющая бинарную перекрёстную энтропию (binary cross-entropy - BCE), которая представляет из себя частный случай обычной кросс-энтропии.
Применяется в задачах классификации с двумя классами.
Формула функции ошибки:
где
y - бинарный индикатор принадлежности к целевому классу;
p(y) - предсказанная классификатором вероятность принадлежности к целевому классу.
Инициализация¶
def __init__(self):
Параметры
-
Пояснения
-
Примеры¶
Бинарная классификация¶
Необходимые импорты:
import numpy as np
from PuzzleLib.Backend import gpuarray
from PuzzleLib.Cost import BCE
Info
gpuarray
необходим для правильного размещения тензора на GPU.
Синтетические целевой и предсказательный тензоры:
scores = gpuarray.to_gpu(np.random.randn(10, 1).astype(np.float32))
labels = gpuarray.to_gpu(np.random.randn(10,).astype(np.float32))
Important
Не забывайте, что первым измерением целевого и предсказательного тензоров является размер батча.
Инициализация функции ошибки:
bce = BCE()
Расчёт ошибки и градиента на батче:
error, grad = bce(scores, labels)
Мультиклассовая классификация бинарными флагами¶
Всё то же самое, что и для предыдущего примера, кроме тензоров scores
и labels
. Допустим, требуется определить наличие или отсутствие четырёх атрибутов у объекта. В таком случае вышеупомянутые тензора будут задаваться следующим способом:
scores = gpuarray.to_gpu(np.random.randn(10, 4).astype(np.float32))
labels = gpuarray.to_gpu(np.random.randn(10, 4).astype(np.float32))