网络编程
位置:首页>> 网络编程>> Python编程>> python编写softmax函数、交叉熵函数实例

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

作者:ChunxueShi  发布时间:2023-11-24 07:08:11 

标签:python,softmax,交叉熵

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

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:

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

cross-entropy:

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

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

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

来源:https://blog.csdn.net/shichunxue/article/details/89350704

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com