mltool-0.1.0.0: src/MachineLearning/NeuralNetwork/LogisticLoss.hs
{-|
Module: MachineLearning.NeuralNetwork.LogisticLoss
Description: Logistic Loss.
Copyright: (c) Alexander Ignatyev, 2017
License: BSD-3
Stability: experimental
Portability: POSIX
Logistic Loss.
-}
module MachineLearning.NeuralNetwork.LogisticLoss
(
scores
, gradient
, loss
)
where
import qualified Numeric.LinearAlgebra as LA
import MachineLearning.Types (R, Matrix)
import qualified MachineLearning.LogisticModel as LM
scores :: Matrix -> Matrix
scores = LM.sigmoid
gradient :: Matrix -> Matrix -> Matrix
gradient scores y = scores - y
-- Logistic Loss function
loss :: Matrix -> Matrix -> R
loss x y = (LA.sumElements $ (-y) * log(tau + x) - (1-y) * log ((1+tau)-x))/m
where tau = 1e-7
m = fromIntegral $ LA.rows x