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