Mercurial > pylearn
view cost.py @ 455:fb62f0e4bcfe
Reverted change ce6b4fd3ab29 (I do not believe anymore it was a typo)
author | delallea@valhalla.apstat.com |
---|---|
date | Thu, 02 Oct 2008 13:46:13 -0400 |
parents | d99fefbc9324 |
children | 3daabc7f94ff |
line wrap: on
line source
""" Cost functions. @note: All of these functions return one cost per example. So it is your job to perform a tensor.sum over the individual example losses. """ import theano.tensor as T from xlogx import xlogx def quadratic(target, output, axis=1): return T.mean(T.sqr(target - output), axis) def cross_entropy(target, output, axis=1): """ @todo: This is essentially duplicated as nnet_ops.binary_crossentropy @warning: OUTPUT and TARGET are reversed in nnet_ops.binary_crossentropy """ return -T.mean(target * T.log(output) + (1 - target) * T.log(1 - output), axis=axis) def KL_divergence(target, output): """ @note: We do not compute the mean, because if target and output have different shapes then the result will be garbled. """ return -(target * T.log(output) + (1 - target) * T.log(1 - output)) \ + (xlogx(target) + xlogx(1 - target)) # return cross_entropy(target, output, axis) - cross_entropy(target, target, axis)