如何解决如何计算交叉熵损失函数的导数?
假设我有一个向量 y_true
和一个向量 y_pred
。我计算了两个向量之间的交叉熵,但是对于梯度反向传播,我不知道如何计算交叉熵的导数。
如何计算两个向量之间的交叉熵的导数?以及是否可以将这个损失函数与不同的激活函数一起使用?
我想用 MLP 解决 MNIST,为此我在不使用机器学习框架的情况下制作了自己的网络。 我计算交叉熵的代码是这样的:
Cross_entropy() {};
virtual double Compute(Eigen::MatrixXd y_true,Eigen::MatrixXd y_pred){
double res;
for (int i(0);i<y_true.cols();i++){
res+= y_true(0,i)*log(y_pred(0,i));
}
return -res;
}
virtual Eigen::MatrixXd Compute_prime(Eigen::MatrixXd y_true,Eigen::MatrixXd y_pred){
Eigen::MatrixXd res = ??? ;
return res;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。