2017-11-09 15:03:57 +00:00
|
|
|
using NNlib: log_fast
|
|
|
|
|
2017-08-19 19:52:29 +00:00
|
|
|
# Cost functions
|
|
|
|
|
2017-08-24 10:40:51 +00:00
|
|
|
mse(ŷ, y) = sum((ŷ .- y).^2)/length(y)
|
2017-08-19 19:52:29 +00:00
|
|
|
|
2017-10-17 16:36:18 +00:00
|
|
|
crossentropy(ŷ::AbstractVecOrMat, y::AbstractVecOrMat) =
|
2017-10-27 11:05:37 +00:00
|
|
|
-sum(y .* log_fast.(ŷ)) / size(y, 2)
|
2017-10-17 16:36:18 +00:00
|
|
|
|
|
|
|
@deprecate logloss(x, y) crossentropy(x, y)
|
2017-10-17 16:57:10 +00:00
|
|
|
|
2017-10-17 16:58:32 +00:00
|
|
|
function logitcrossentropy(logŷ::AbstractVecOrMat, y::AbstractVecOrMat)
|
|
|
|
logŷ = logŷ .- maximum(logŷ, 1)
|
2017-10-27 11:05:37 +00:00
|
|
|
ypred = logŷ .- log_fast.(sum(exp.(logŷ), 1))
|
2017-10-17 16:58:32 +00:00
|
|
|
-sum(y .* ypred) / size(y, 2)
|
2017-10-17 16:57:10 +00:00
|
|
|
end
|