Skip to content

Loss Functions

StanislavGrigoriev edited this page Jan 7, 2020 · 2 revisions

Функции потерь

EasyCNTK имеет несколько стандартных функций потерь, а так же позволяет создавать свои собственные. Перечень стандартных функций потерь:

  1. AbsoluteError
  2. SquaredError
  3. BiasError
  4. BinaryCrossEntropyError
  5. WeightedBinaryCrossEntropyError
  6. CrossEntropyWithSoftmaxError
  7. ClassificationError - Функция ошибки при бинарной, одноклассовой и многоклассовой классификации. Допускается использование с Softmax выходом, при этом создается условие классификации: класс должен иметь вероятность выше заданного порога, иначе он не будет классифицирован. Обычно передается как функция оценки в параметре eval метода Fit

Для использования собственных функций потерь необходимо реализовать абстрактный класс Loss.

Пример реализации функции потерь BiasError

Функция потерь BiasError представляет собой среднюю ошибку смещения и вычисляется по формуле: BiasError = E(x-y), где для каждого значения факта y и прогноза x вычисляется абсолютная разница и усредняется для всех наблюдений. В EasyCNTK достаточно реализовать вычислительную логику для одного наблюдения.

public sealed class BiasError : Loss
{
    public override Function GetLoss(Variable prediction, Variable targets, DeviceDescriptor device)
    {
        return CNTKLib.Minus(prediction, targets);
    }
}
Clone this wiki locally