首页 > 编程知识 正文

softmax交叉熵损失函数公式,sigmoid函数图像

时间:2023-05-05 07:24:18 阅读:49821 作者:2001

优秀外文博文搬运 + 翻译

原作者: Victor Zhou

链接: asimpleexplanationofthesoftmaxfunction @ victorzhou

本文为了转载翻译内容,文章内容的版权归原作者所有

本文翻译已获得原作者授权

以下为翻译内容(斜体加粗部分为博主补充内容,非原文内容):

什么是软件最大? 怎么用? 如何在Python上实现Softmax?

Softmax将任意实数转换为概率,常用于机器学习。

Softmax函数背后的数学原理很简单。这里作者的描述有点点不是很能理解,直接上公式吧:

对于n n n个数字的输入,Softmax对每个数字处理如下:

s(xI ) s(xI ) j=1nexjs(x_I ) ) FRAC ) e^{x_I}}{_sum_{j=1}^ne^{x_j}}s ) Xi ) ) j=

Softmax变换输出后的结果始终在[ 0,1 ]的范围内,所有结果的和为1,因此表示概率分布。

在一个简单的示例中,假设有几个数字-1、0、3和5。 我们先计算一下分母。 denominator :

dnominator=E1 E0 e3e5=169.87 denominator=e ^ {-1 } e ^ 0e ^ 3e ^5=boxed { 169.87 } denominator=E1 E0 e3e5=169.87

然后,分别计算分子和概率。

XXX编号器(exe ^ xex )概率) ex169.87(FRAC ) e ^ x 169.87 ex )-10.3680.002010.006320.090.1185148

要在Python上实现Softmax,很容易在Numpy模块上实现:

import numpy as np# np.exp ()是输入数组中的每个数字defsoftmax(xs ) : return NP.exp (xs )/sum (NP.exp ) xs ) ) xs=NP.axp 0.11824302,0.87370431 )注:对于许多高级朋友来说,可以在LogSumExp中实现此函数,以避免出现停机/上溢问题

为什么Softmax有用? 想象一下,为了解决问题,有必要建立神经网络。 图中的动物是猫还是狗?

该神经网络最常见的设计是输出两个实数,一个是,另一个是,并将这两个数扔给Softmax。 例如,我们的神经网络的输出是[-1,2 ] :

动物x x x e x e^x ex概率狗-10.3680.047猫27.390.953这意味着我们网络上有95.3% 的信心认证图上的动物是猫。

与简单地回答yes或no相比,Softmax可以使用概率来回答分类问题。 (实际上在非 binary classification ,即分类超过两种以上的问题中,我们经常用 softmax 来确定结果)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。