Hinge

Description

Hinge, loss function used in binary classification problems.

The error function formula is:

L = max(0, 1 - t \cdot y)

where

y - "raw" prediction of the classifier;
t - label from the set {-1, 1} for the current object.

Important

Real labels of objects must have different signs for the error function to work correctly.

Note

It is possible to calculate the error for several classes to which the object may belong. See Example

Initializing

def __init__(self):

Parameters

-

Explanations

-

Examples


Binary Classification


Necessary imports:

>>> import numpy as np
>>> from PuzzleLib.Backend import gpuarray
>>> from PuzzleLib.Cost import Hinge

Info

gpuarray is required to properly place the tensor in the GPU.

Synthetic target and prediction tensors:

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

For Hinge-loss the dimensions of the target and prediction tensors must be the same.

Important

For Hinge-loss the dimensions of the target and prediction tensors must be the same.

Initializing the error function:

>>> hinge = Hinge()

Calculating the error and the gradient on the batch:

>>> error, grad = hinge(scores, labels)


Multiclass Classification with Binary Flags


Everything is the same as for the previous example, except for the scores and labels tensors. Let us suppose you have to determine the presence or absence of four attributes of an object. In this case, the above tensors will be specified as follows:

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