BCE

Описание

Функция потерь, вычисляющая бинарную перекрёстную энтропию (binary cross-entropy - BCE), которая представляет из себя частный случай обычной кросс-энтропии.

Применяется в задачах классификации с двумя классами.

Формула функции ошибки:

H = y\cdot \log{p(y)} + (1-y)\cdot \log(1-p(y))

где

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))