【发布时间】:2020-10-09 12:40:50
【问题描述】:
我有一个机器学习课程,我必须在其中实现 CELoss 的前向和后向方法:
class CELoss(object):
@staticmethod
def forward(x, y):
assert len(x.shape) == 2 # x is batch of predictions (batch_size, 10)
assert len(y.shape) == 1 # y is batch of target labels (batch_size,)
# TODO implement cross entropy loss averaged over batch
return
@staticmethod
def backward(x, y, dout):
# TODO implement dx
dy = 0.0 # no useful gradient for y, just set it to zero
return dx, dy
此外,我的 CELoss 为
CELoss(x,y) = - log\frac{exp(x_y)}{\sum_{k}exp(x_k)}
(它说我不能使用公式创建器,因为我需要至少 10 个声望)
但是,这不是您可以在例如维基百科 (https://en.wikipedia.org/wiki/Cross_entropy) 上找到的 CELoss。据我了解,CELoss 需要目标和预测。 x 是否代表这里的目标而 y 是预测?如果是这样,x_y 指的是什么?感谢您的帮助!
【问题讨论】:
标签: machine-learning neural-network statistics loss-function cross-entropy