当前位置: 移动技术网 > IT编程>脚本编程>Python > python编写softmax函数、交叉熵函数实例

python编写softmax函数、交叉熵函数实例

2020年06月23日  | 移动技术网IT编程  | 我要评论

上海大学乐乎论坛,usb3.0接口,德迷李宇春

python代码如下:

import numpy as np
 
# write a function that takes as input a list of numbers, and returns
# the list of values given by the softmax function.
def softmax(l):
 pass
 expl = np.exp(l)
 sumexpl = sum(expl)
 result = []
 for i in expl:
  result.append(i*1.0/sumexpl)
 return result

python编写交叉熵公式:

import numpy as np
 
def cross_entropy(y, p):
 y = np.float_(y)
 p = np.float_(p)
 return -np.sum(y * np.log(p) + (1 - y) * np.log(1 - p))

补充知识:分类时,为什么不使用均方误差而是使用交叉熵作为损失函数

mse(均方误差)对于每一个输出的结果都非常看重,而交叉熵只对正确分类的结果看重。

例如:在一个三分类模型中,模型的输出结果为(a,b,c),而真实的输出结果为(1,0,0),那么mse与cross-entropy相对应的损失函数的值如下:

mse:

cross-entropy:

从上述的公式可以看出,交叉熵的损失函数只和分类正确的预测结果有关系,而mse的损失函数还和错误的分类有关系,该分类函数除了让正确的分类尽量变大,还会让错误的分类变得平均,但实际在分类问题中这个调整是没有必要的。

但是对于回归问题来说,这样的考虑就显得很重要了。所以,回归问题熵使用交叉上并不合适。

以上这篇python编写softmax函数、交叉熵函数实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网