SmoothL1¶
Описание¶
Функция потерь, являющаяся комбинацией MAE и MSE функций ошибок. Дифференцируема в нуле, в отличие от MAE, и не так чувствительна к выбросам, как MSE.
Применяется в задачах регрессии.
Формула функции ошибки:
S =
\begin{cases}
\frac{1}{2}(y-y^p)^2, & \quad \text{если } |y-y^p| < 1\\
|y-y^p| - \frac{1}{2}, & \quad \text{если } |y-y^p| \geq 1
\end{cases}
где
N - количество объектов в выборке;
y - реальное значение объекта;
y^p - предсказанное моделью значение для объекта.
Инициализация¶
def __init__(self):
Параметры
-
Пояснения
-
Примеры¶
Необходимые импорты:
import numpy as np
from PuzzleLib.Backend import gpuarray
from PuzzleLib.Cost import SmoothL1
Info
gpuarray
необходим для правильного размещения тензора на GPU.
Синтетические целевой и предсказательный тензоры:
targets = gpuarray.to_gpu(np.random.randn(10, 10).astype(np.float32))
predictions = gpuarray.to_gpu(np.random.randn(10, 10).astype(np.float32))
Important
Не забывайте, что первым измерением целевого и предсказательного тензоров является размер батча.
Инициализация функции ошибки:
smooth = SmoothL1()
Расчёт ошибки и градиента на батче:
error, grad = smooth(predictions, targets)