机器学习中的损失函数(交叉熵损失、Hinge loss)
损失函数
文章目录
- 损失函数
- 1 交叉熵损失
- 1.1 从最大似然估计到交叉熵损失
- 概率论中的MLE
- 机器学习中的MLE
- 交叉熵损失
- 1.2 多分类的交叉熵损失函数
- 1.3 比较
- 2. Hinge loss 铰链损失
1 交叉熵损失
1.1 从最大似然估计到交叉熵损失
概率论中的MLE
最大似然估计用于估计能得到当前数据(分布)的最好的参数组合。对于最简单的x为一维的概率分布我们有
θ^MLE=argmaxθfX(x1,x2,...,xn;θ)=argmaxθ∏ifX(xi;θ)\hat\theta_{MLE}=\underset{\theta}{\mathrm{argmax}}\ f_X(x_1,x_2,...,x_n;\theta)=\underset{\theta}{\mathrm{argmax}}\prod_i\ f_X(x_i;\theta) θ^MLE=θargmax fX(x1,x2,...,xn;θ)=θargmaxi∏ fX(xi;θ)
**maximum likelihood estimate (MLE)**是要找使得似然函数最大的参数,而似然函数是数据的pdf即概率密度函数的乘积。我们希望找到这样的参数使得出现我们现在拿到的这一组数据{x1,x2,...,xn}\{x_1,x_2,...,x_n\}{x1,x2,...,xn}的可能性最大,这里可能性我们用pdf来衡量。
PDF:概率密度函数(probability density function), 连续型随机变量的概率密度函数是一个描述某个确定的取值点附近的可能性的函数。
机器学习中的MLE
机器学习中的二分类任务,对于有**真实标签y1,y2,...,yn,yi∈{0,1}y_1,y_2,...,y_n,y_i\in\{0,1\}y1,y2,...,yn,yi∈{0,1}**的数据{x1,x2,...,xn}\{x_1,x_2,...,x_n\}{x1,x2,...,xn},我们可以将这些数据看成来自不同伯努利分布的数据,即yi∼B(1,pi)y_i\sim B(1,p_i)yi∼B(1,pi),我们获得尽量准确的每个数据xix_ixi来自类别1的努利分布概率,也即找到所有参数p1,p2,...,pnp_1,p_2,...,p_np1,p2,...,pn,使得在这样的分布下,出现y1,y2,...,yn,yi∈{0,1}y_1,y_2,...,y_n,y_i\in\{0,1\}y1,y2,...,yn,yi∈{0,1}这种真实数据的情况的可能性最大(可能性最大这里即是“似然”的思想)。
p^1,p^2,...,p^n=argmaxp1,p2,...,pnfX(y1,y2,...,yn;p1,p2,...,pn)=argmaxp1,p2,...,pn∏ifX(yi;pi)=argmaxp1,p2,...,pn∏ipiyi(1−pi)1−yi\hat p_1,\hat p_2,...,\hat p_n=\underset{p_1,p_2,...,p_n}{\mathrm{argmax}}\ f_X(y_1,y_2,...,y_n;p_1,p_2,...,p_n)\\ =\underset{p_1,p_2,...,p_n}{\mathrm{argmax}}\prod_i\ f_X(y_i;p_i)\\ =\underset{p_1,p_2,...,p_n}{\mathrm{argmax}}\prod_i\ p_i^{y_i}(1-p_i)^{1-y_i} p^1,p^2,...,p^n=p1,p2,...,pnargmax fX(y1,y2,...,yn;p1,p2,...,pn)=p1,p2,...,pnargmaxi∏ fX(yi;pi)=p1,p2,...,pnargmaxi∏ piyi(1−pi)1−yi
而每个数据xix_ixi来自类别1的概率pip_ipi,则与通过其他方法得到的yiy_iyi的预测值y^i\hat y_iy^i有关,即对于每个数据xix_ixi,我们会得到预测值y^i\hat y_iy^i对应为两类别的概率,即
P[y^i=1]=piP[y^i=0]=1−pi\Bbb P[\hat y_i=1]=p_i\\ \Bbb P[\hat y_i=0]=1-p_i P[y^i=1]=piP[y^i=0]=1−pi
所以现在问题其实变化成了我们要去找到最好的预测结果{y^i,y^2,...,y^n}\{\hat y_i,\hat y_2,...,\hat y_n\}{y^i,y^2,...,y^n},这也就是机器学习方法的“打标签”的目标
y^i,y^2,...,y^n=argmaxy^i,y^2,...,y^n∏i(P[y^i=1])yi(1−P[y^i=1])1−yi\hat y_i,\hat y_2,...,\hat y_n=\underset{\hat y_i,\hat y_2,...,\hat y_n}{\mathrm{argmax}}\prod_i\ (\Bbb P[\hat y_i=1])^{y_i}(1-\Bbb P[\hat y_i=1])^{1-y_i} y^i,y^2,...,y^n=y^i,y^2,...,y^nargmaxi∏ (P[y^i=1])yi(1−P[y^i=1])1−yi
记似然函数为
L=∏i(P[y^i=1])yi(1−P[y^i=1])1−yi⇒logL=∑iyilog(P[y^i=1])+(1−yi)log(1−P[y^i=1])\mathcal L=\prod_i\ (\Bbb P[\hat y_i=1])^{y_i}(1-\Bbb P[\hat y_i=1])^{1-y_i} \\ \Rightarrow \log\mathcal L=\sum_i\ {y_i}\log(\Bbb P[\hat y_i=1])+(1-y_i)\log(1-\Bbb P[\hat y_i=1]) \\ L=i∏ (P[y^i=1])yi(1−P[y^i=1])1−yi⇒logL=i∑ yilog(P[y^i=1])+(1−yi)log(1−P[y^i=1])
则我们的目标是要最大化logL\log\mathcal LlogL.
在这个基础上,考虑我们机器学习中的方法常常表述为“最小化loss损失”,所以我们对似然函数取负号,得到loss的形式
loss=−∑iyilog(P[y^i=1])+(1−yi)log(1−P[y^i=1])loss=-\sum_i\ {y_i}\log(\Bbb P[\hat y_i=1])+(1-y_i)\log(1-\Bbb P[\hat y_i=1]) loss=−i∑ yilog(P[y^i=1])+(1−yi)log(1−P[y^i=1])
另外常常需要对结果作一个归一化,所以除以总的样本数,得到
loss=−1n∑inyilog(P[y^i=1])+(1−yi)log(1−P[y^i=1])loss=−1n∑inyilog(pi)+(1−yi)log(1−pi)loss=-\frac{1}{n}\sum_i^n\ {y_i}\log(\Bbb P[\hat y_i=1])+(1-y_i)\log(1-\Bbb P[\hat y_i=1])\\ loss=-\frac{1}{n}\sum_i^n\ {y_i}\log(p_i)+(1-y_i)\log(1-p_i) loss=−n1i∑n yilog(P[y^i=1])+(1−yi)log(1−P[y^i=1])loss=−n1i∑n yilog(pi)+(1−yi)log(1−pi)
可以发现,对于单个样本iii,如果真实标签yi=1y_i=1yi=1,其 loss=−log(P[y^i=1])loss=-\log(\Bbb P[\hat y_i=1])loss=−log(P[y^i=1])随P[y^i=1]\Bbb P[\hat y_i=1]P[y^i=1]增大而减小;如果真实标签yi=0y_i=0yi=0,其 loss=−log(1−P[y^i=1])loss=-\log(1-\Bbb P[\hat y_i=1])loss=−log(1−P[y^i=1])随P[y^i=0]\Bbb P[\hat y_i=0]P[y^i=0]增大而减小。
有时将pi=P[y^i=1]p_i=\Bbb P[\hat y_i=1]pi=P[y^i=1]记为y^i\hat y_iy^i,则变为
loss=−1n∑inyilog(y^i)+(1−yi)log(1−y^i)loss=-\frac{1}{n}\sum_i^n\ {y_i}\log(\hat y_i)+(1-y_i)\log(1-\hat y_i) loss=−n1i∑n yilog(y^i)+(1−yi)log(1−y^i)
交叉熵损失
信息熵的定义为
H(X)=−∑x∈Xp(x)logp(x)H(X)=-\sum_{x\in \mathcal X}p(x)\log p(x) H(X)=−x∈X∑p(x)logp(x)
现在再来看交叉熵的公式,它表示分布在共同空间X\mathcal XX的两个概率分布p,qp,qp,q之间的差异
H(p,q)=−∑x∈Xp(x)logq(x)H(p,q) = -\sum_{x\in \mathcal X}p(x)logq(x) H(p,q)=−x∈X∑p(x)logq(x)
我们想借用交叉熵的概念,来衡量真实数据标签分布y1,y2,...,yny_1,y_2,...,y_ny1,y2,...,yn和预测的标签分布y^i,y^2,...,y^n\hat y_i,\hat y_2,...,\hat y_ny^i,y^2,...,y^n之间的差异,并把它称为交叉熵损失。注意它们要么都是连续分布,要不都是离散分布,考虑到真实数据标签是离散分布,即每个yiy_iyi要么等于1的概率为1,要么等于0的概率为1,故预测数据标签也应该是离散分布,即每个y^i\hat y_iy^i等于1、等于0的概率都在0到1之间,即这里共同的空间Y={0,1}\mathcal Y=\{0,1\}Y={0,1}
举例如下表:
真实标签yi∈Y={0,1}y_i\in\mathcal Y =\{0,1\}yi∈Y={0,1} | y1y_1y1 | y2y_2y2 | y3y_3y3 |
---|---|---|---|
P[yi=1]\Bbb P[y_i=1]P[yi=1] | 1 | 1 | 0 |
P[yi=0]\Bbb P[y_i=0]P[yi=0] | 0 | 0 | 1 |
预测标签y^i∈Y={0,1}\hat y_i\in\mathcal Y =\{0,1\}y^i∈Y={0,1} | y1y_1y1 | y2y_2y2 | y3y_3y3 |
---|---|---|---|
P[y^i=1]\Bbb P[\hat y_i=1]P[y^i=1] | 0.7 | 0.9 | 0.2 |
P[y^i=0]\Bbb P[\hat y_i=0]P[y^i=0] | 0.3 | 0.1 | 0.8 |
则在这个空间下每个样本的两个分布p(yi),q(y^i)p(y_i),q(\hat y_i)p(yi),q(y^i)的交叉熵为
H(p(yi),q(y^i))=−∑yi,y^i∈Yp(yi)log(q(y^i))=−∑yi,y^i∈{0,1}p(yi)log(q(y^i))=−P[yi=1]log(P[y^i=1])−P[yi=0]log(P[y^i=0])={−log(P[y^i=1])=−logpi,if yi=1−log(P[y^i=0])=−log(1−pi),if yi=0H\Big(p(y_i),q(\hat y_i)\Big)= -\sum_{y_i,\hat y_i\in \mathcal Y}p(y_i)log(q(\hat y_i)) =-\sum_{y_i,\hat y_i\in \{0,1\}}p(y_i)log(q(\hat y_i))\\ =-\Bbb P[y_i=1]\log(\Bbb P[\hat y_i=1]) -\Bbb P[y_i=0]\log(\Bbb P[\hat y_i=0]) \\ =\begin{cases} -\log(\Bbb P[\hat y_i=1])=-\log p_i, & \text {if $y_i=1$ } \\ -\log(\Bbb P[\hat y_i=0])=-\log (1-p_i), & \text{if $y_i=0$ } \end{cases} H(p(yi),q(y^i))=−yi,y^i∈Y∑p(yi)log(q(y^i))=−yi,y^i∈{0,1}∑p(yi)log(q(y^i))=−P[yi=1]log(P[y^i=1])−P[yi=0]log(P[y^i=0])={−log(P[y^i=1])=−logpi,−log(P[y^i=0])=−log(1−pi),if yi=1 if yi=0
则整体样本的交叉熵为
H=−∑inyilogpi+(1−yi)log(1−pi)H=-\sum_i^n y_i\log p_i +(1-y_i)\log (1-p_i)\\ H=−i∑nyilogpi+(1−yi)log(1−pi)
加上除以样本数
loss=−1n∑inyilog(pi)+(1−yi)log(1−pi)loss=-\frac{1}{n}\sum_i^n\ {y_i}\log(p_i)+(1-y_i)\log(1-p_i) loss=−n1i∑n yilog(pi)+(1−yi)log(1−pi)
至此,我们发现二分类问题从MLE推出的损失函数,和交叉熵是一样的,这种损失函数我们称之为交叉熵损失函数。
1.2 多分类的交叉熵损失函数
举例如下表:
真实标签yi∈Y={1,2,3}y_i\in\mathcal Y =\{1,2,3\}yi∈Y={1,2,3} | y1y_1y1 | y2y_2y2 | y3y_3y3 |
---|---|---|---|
P[yi=1]\Bbb P[y_i=1]P[yi=1] | 1 | 0 | 0 |
P[yi=2]\Bbb P[y_i=2]P[yi=2] | 0 | 0 | 1 |
P[yi=3]\Bbb P[y_i=3]P[yi=3] | 0 | 1 | 0 |
预测标签y^i∈Y={1,2,3}\hat y_i\in\mathcal Y =\{1,2,3\}y^i∈Y={1,2,3} | y1y_1y1 | y2y_2y2 | y3y_3y3 |
---|---|---|---|
P[y^i=1]\Bbb P[\hat y_i=1]P[y^i=1] | 0.7 | 0 | 0.1 |
P[y^i=2]\Bbb P[\hat y_i=2]P[y^i=2] | 0.1 | 0.1 | 0.8 |
P[y^i=3]\Bbb P[\hat y_i=3]P[y^i=3] | 0.2 | 0.9 | 0.1 |
- 从交叉熵来看,若共CCC个类别
H(p(yi),q(y^i))=−∑yi,y^i∈{1,2,...,C}p(yi)log(q(y^i))=−P[yi=1]log(P[y^i=1])−P[yi=2]log(P[y^i=2])−⋯−P[yi=C]log(P[y^i=C])H\Big(p(y_i),q(\hat y_i)\Big) =-\sum_{y_i,\hat y_i\in \{1,2,...,C\}}p(y_i)log(q(\hat y_i))\\ =-\Bbb P[y_i=1]\log(\Bbb P[\hat y_i=1])-\Bbb P[y_i=2]\log(\Bbb P[\hat y_i=2])-\cdots-\Bbb P[y_i=C]\log(\Bbb P[\hat y_i=C]) H(p(yi),q(y^i))=−yi,y^i∈{1,2,...,C}∑p(yi)log(q(y^i))=−P[yi=1]log(P[y^i=1])−P[yi=2]log(P[y^i=2])−⋯−P[yi=C]log(P[y^i=C])
故可以推导出交叉熵损失为
⇒loss=−1n∑iH(p(yi),q(y^i))=−1n∑in∑k=1C1(yi=k)logP[y^i=k]\Rightarrow loss=-\frac{1}{n}\sum_i H\Big(p(y_i),q(\hat y_i)\Big) \\ =-\frac{1}{n}\sum_i^n \sum_{k=1}^C {1}(y_i=k)\log\Bbb P[\hat y_i=k] ⇒loss=−n1i∑H(p(yi),q(y^i))=−n1i∑nk=1∑C1(yi=k)logP[y^i=k]
- 从MLE看同样可以得到类似的结果
现在是多分类不再是伯努利分布,而是多项式分布(Multinomial distribution,投骰子问题) yi∼P(pi1,pi2,...,piC)y_i\sim P(p_i^1,p_i^2,...,p_i^C)yi∼P(pi1,pi2,...,piC),这里yiy_iyi表示one-hot的一种情况[yi1,yi2,...,yiC]=[0,0,...,1,...,0][y_i^1,y_i^2,...,y_i^C]=[0,0,...,1,...,0][yi1,yi2,...,yiC]=[0,0,...,1,...,0],即yik=1y_i^k=1yik=1时表示为第kkk类,预测值为[y^i1,y^i2,...,y^iC]=[0.1,0.2,...,0.7,...,0][\hat y_i^1,\hat y_i^2,...,\hat y_i^C]=[0.1,0.2,...,0.7,...,0][y^i1,y^i2,...,y^iC]=[0.1,0.2,...,0.7,...,0]。其实二分类也可以表示成这种形式,[yi1,yi2]=[0,1],[y^i1,y^i2]=[0.1,0.9][y_i^1,y_i^2]=[0,1],[\hat y_i^1,\hat y_i^2]=[0.1,0.9][yi1,yi2]=[0,1],[y^i1,y^i2]=[0.1,0.9]
对二分类的稍作变换
argmax∏ipiyi(1−pi)1−yi=argmax∏ipi1{yi=1}(1−pi)1{yi=0}{\mathrm{argmax}}\prod_i p_i^{y_i}(1-p_i)^{1-y_i}={\mathrm{argmax}}\prod_i p_i^{1\{y_i=1\}}(1-p_i)^{1\{y_i=0\}}\\ argmaxi∏piyi(1−pi)1−yi=argmaxi∏pi1{yi=1}(1−pi)1{yi=0}
得到多分类
⇒argmax∏i(pi1)1{yi=1}(pi2)1{yi=2}⋯(piC)1{yi=C}=argmax∏in∏kC(pik)1{yi=k}⇒logL=log∏in∏kC(pik)1{yi=k}=∑inlog∏kC(pik)1{yi=k}=∑in∑kC1{yi=k}log(pik)\Rightarrow \\ {\mathrm{argmax}}\prod_i (p_i^1)^{1\{y_i=1\}}(p_i^2)^{1\{y_i=2\}}\cdots(p_i^C)^{1\{y_i=C\}}={\mathrm{argmax}}\prod_i^n \prod_k^C (p_i^k)^{1\{y_i=k\}}\\ \Rightarrow \\ \log \mathcal L=\log \prod_i^n \prod_k^C (p_i^k)^{1\{y_i=k\}}=\sum_i^n\log\prod_k^C (p_i^k)^{1\{y_i=k\}}=\sum_i^n\sum_k^C {1\{y_i=k\}}\log(p_i^k)\\ ⇒argmaxi∏(pi1)1{yi=1}(pi2)1{yi=2}⋯(piC)1{yi=C}=argmaxi∏nk∏C(pik)1{yi=k}⇒logL=logi∏nk∏C(pik)1{yi=k}=i∑nlogk∏C(pik)1{yi=k}=i∑nk∑C1{yi=k}log(pik)
故可以推导出损失为和前面交叉熵导出的相同
loss=−1n∑in∑kC1{yi=k}log(pik)=−1n∑in∑kC1{yi=k}logP[y^i=k]loss=-\frac{1}{n}\sum_i^n\sum_k^C {1\{y_i=k\}}\log(p_i^k)=-\frac{1}{n}\sum_i^n\sum_k^C {1\{y_i=k\}}\log\Bbb P[\hat y_i=k] loss=−n1i∑nk∑C1{yi=k}log(pik)=−n1i∑nk∑C1{yi=k}logP[y^i=k]
1.3 比较
二分类 | 多分类 | |
---|---|---|
MLE形式argmax | argmaxp1,p2,...,pn∏ipiyi(1−pi)1−yi\underset{p_1,p_2,...,p_n}{\mathrm{argmax}}\prod_i\ p_i^{y_i}(1-p_i)^{1-y_i}p1,p2,...,pnargmax∏i piyi(1−pi)1−yi | argmax∏i(pi1)1{yi=1}(pi2)1{yi=2}⋯(piC)1{yi=C}{\mathrm{argmax}}\prod_i (p_i^1)^{1\{y_i=1\}}(p_i^2)^{1\{y_i=2\}}\cdots(p_i^C)^{1\{y_i=C\}}argmax∏i(pi1)1{yi=1}(pi2)1{yi=2}⋯(piC)1{yi=C} |
单个样本交叉熵表达式 | H(p(yi),q(y^i)=−∑yi,y^i∈{0,1}p(yi)log(q(y^i))H(p(y_i),q(\hat y_i)=-\sum_{y_i,\hat y_i\in \{0,1\}}p(y_i)log(q(\hat y_i))H(p(yi),q(y^i)=−∑yi,y^i∈{0,1}p(yi)log(q(y^i)) | H(p(yi),q(y^i))=−∑yi,y^i∈{1,2,...,C}p(yi)log(q(y^i))H(p(y_i),q(\hat y_i))=-\sum_{y_i,\hat y_i\in \{1,2,...,C\}}p(y_i)log(q(\hat y_i))H(p(yi),q(y^i))=−∑yi,y^i∈{1,2,...,C}p(yi)log(q(y^i)) |
交叉熵损失 | −1n∑inyilog(P[y^i=1])+(1−yi)log(P[y^i=0])-\frac{1}{n}\sum\limits_i^n\ {y_i}\log(\Bbb P[\hat y_i=1])+(1-y_i)\log(\Bbb P[\hat y_i=0])−n1i∑n yilog(P[y^i=1])+(1−yi)log(P[y^i=0]) | −1n∑in∑kC1{yi=k}logP[y^i=k]-\frac{1}{n}\sum\limits_i^n\sum\limits_k^C {1\{y_i=k\}}\log\Bbb P[\hat y_i=k]−n1i∑nk∑C1{yi=k}logP[y^i=k] |
2. Hinge loss 铰链损失
Ref:
https://blog.csdn.net/hustqb/article/details/78347713
wiki
在机器学习中,hinge loss作为一个损失函数(loss function),通常被用于最大间隔算法(maximum-margin),而最大间隔算法又是SVM(支持向量机support vector machines)用到的重要算法(注意:SVM的学习算法有两种解释:1. 间隔最大化与拉格朗日对偶;2. Hinge Loss)。
Hinge loss专用于二分类问题,标签值y=±1y = ±1y=±1,预测值y^=wx+b∈R\hat y=wx+b\in \Bbb Ry^=wx+b∈R.
对任意一个样本,hinge loss定义为
L(xi,yi)=max{0,1−yi⋅y^i}=max{0,1−yi(wxi+b)}\mathcal L(\mathbf x_i,y_i)=\max\{0,1-y_i\cdot \hat y_i\}=\max\{0,1-y_i(\mathbf w \mathbf x_i+b)\} L(xi,yi)=max{0,1−yi⋅y^i}=max{0,1−yi(wxi+b)}
注意这里的y^i=wxi+b\hat y_i=\mathbf w \mathbf x_i+by^i=wxi+b是没有经过sign等激活函数的,是直接在数据平面上经过变换后的值。可以取任意值。
y^i=wxi+b>0\hat y_i=\mathbf w \mathbf x_i+b>0y^i=wxi+b>0表示一类,y^i=wxi+b<0\hat y_i=\mathbf w \mathbf x_i+b<0y^i=wxi+b<0表示另一类。
当yi⋅y^i>1y_i\cdot \hat y_i>1yi⋅y^i>1时,L(xi,yi)=0\mathcal L(\mathbf x_i,y_i)=0L(xi,yi)=0;
当yi⋅y^i<1y_i\cdot \hat y_i<1yi⋅y^i<1时,L(xi,yi)=1−yi⋅y^i=1−yi⋅(wxi+b)\mathcal L(\mathbf x_i,y_i)=1-y_i\cdot \hat y_i=1-y_i\cdot (\mathbf w \mathbf x_i+b)L(xi,yi)=1−yi⋅y^i=1−yi⋅(wxi+b).
对比感知机的loss为:
当yi(wxi+b)>0y_i(\mathbf w \mathbf x_i+b)>0yi(wxi+b)>0时,L(xi,yi)=0\mathcal L(\mathbf x_i,y_i)=0L(xi,yi)=0;
当yi(wxi+b)<0y_i(\mathbf w \mathbf x_i+b)<0yi(wxi+b)<0时,L(xi,yi)=−yi⋅(wxi+b)\mathcal L(\mathbf x_i,y_i)=-y_i\cdot (\mathbf w \mathbf x_i+b)L(xi,yi)=−yi⋅(wxi+b).
如下图:
hinge loss相对于感知机的loss向右平移了一个单位,相当于不再单单要求分类正确,还对每个点离分类平面的距离有一定的要求。这其实就是SVM中,从最优化求几何间隔最大的分离超平面,到最优化函数间隔最大的分离超平面,再到约定的函数间隔的值对优化求解超平面没有影响,优化问题是等价的,故而直接取了函数间隔为1,得到约束条件
yi(wxi+b)≥1⇒yi(wxi+b)−1≥0y_i(\mathbf w \mathbf x_i+b)\geq 1\\ \Rightarrow \\ y_i(\mathbf w \mathbf x_i+b)- 1\geq 0 yi(wxi+b)≥1⇒yi(wxi+b)−1≥0
即满足以上远离超平面一定距离的条件,才认为分类是正确的。这就得到了我们的hinge loss中,满足条件的时候,分类损失为0。可以看到,它比感知机的要求更进一步、更严格。
机器学习中的损失函数(交叉熵损失、Hinge loss)相关推荐
- 机器学习--- 交叉熵损失(CrossEntropy Loss)--(附代码)
文章目录 一. Softmax 介绍 1.1 Softmax 的形式 1.2 一些问题 1.2.1 为什么训练阶段需要 Softmax 层?推理阶段通常不使用 Softmax 层? 二.交叉熵损失(C ...
- 机器学习中使用的交叉熵(cross entropy)透彻分析
从字面分析交叉熵,1是交叉.2是熵(熵与信息量有关):首先交叉熵涉及信息论里面的东西,想要彻底理解交叉熵就要明白此概念跟信息量的关系以及里边的熵怎么理解. (1)信息量 衡量信息量可以用大小或者多少来 ...
- 机器学习中的损失函数 (着重比较:hinge loss vs softmax loss)
https://blog.csdn.net/u010976453/article/details/78488279 1. 损失函数 损失函数(Loss function)是用来估量你模型的预测值 f( ...
- 深度学习相关概念:交叉熵损失
深度学习相关概念:交叉熵损失 交叉熵损失详解 1.激活函数与损失函数 1.1激活函数: 1.2损失函数: 2.对数损失函数(常用于二分类问题): 3.交叉熵.熵.相对熵三者之间的关系 4.交叉熵损失函 ...
- 【机器学习】 二次损失函数的不足及交叉熵损失softmax详解
二次代价函数的不足: 以sigmoid激活函数为例,由于初始化是随机的,假设目标值为0,第一次随机初始化使得输入为0.82,那么还可以,多次迭代之后可以收敛到0.09,但如果第一次随机初始化到0.98 ...
- 常用损失函数:交叉熵损失
目录 什么是损失函数 均方误差与交叉熵 为什么要使用交叉熵 交叉熵与KL散度之间的关系 参考文献 什么是损失函数 对于损失函数网上已经有充分的解释:"机器学习中所有的算法都需要最大化或最小化 ...
- sklearn基于make_scorer函数为Logistic模型构建自定义损失函数+代码实战(二元交叉熵损失 binary cross-entropy loss)
sklearn基于make_scorer函数为Logistic模型构建自定义损失函数+代码实战(二元交叉熵损失 binary cross-entropy loss) # 广义线性模型中的各种连接函数: ...
- 交叉熵损失函数和focal loss_理解熵、交叉熵和交叉熵损失
交叉熵损失是深度学习中应用最广泛的损失函数之一,这个强大的损失函数是建立在交叉熵概念上的.当我开始使用这个损失函数时,我很难理解它背后的直觉.在google了不同材料后,我能够得到一个令人满意的理解, ...
- 【损失函数】NLLLoss损失、CrossEntropy_Loss交叉熵损失以及Label Smoothing示例与代码
机缘巧合下,近期又详细学习了一遍各损失函数的计算,特此记录以便后续回顾. 为了公式表示更加清晰,我们设 y n ∈ { 1 , 2 , - , K } {{y_n} \in \{ 1,2, \ ...
最新文章
- android adb root方法
- 手动代码约束,等比例
- android唤醒前台,Android将后台应用唤起到前台的方法 (SDK 4.0, ActivityLifecycleCallbacks)...
- java fx dialog_JavaFX 如何使用內建的對話框(Dialog)?
- FreeRTOS系统配置文件FreeRTOSConfig.h
- HTML中元素的position属性详解
- delphi 获取操作系统版本_Ubuntu 20.04 LTS已可通过Windows 10应用商店获取
- MyBatis的四种资源加载方式以及优先级
- mysql类目树关系的保存和全排列查询
- CCA分析图如何解读_欧易/鹿明生物云平台:点点鼠标,轻松完成RDA/CCA分析
- PS 使用画笔修复工具去除文字
- 服务器80端口找不到,如何查询服务器80端口被关闭
- 程序员需要掌握的单词
- 打开程序,出现最佳分辨率提示窗口,导致程序跳出WIN10
- 通过炒股实现财务自由的人,都做对了什么?
- 10个SaaS的常见问题解答告诉你SaaS是什么
- MODBUS-RS485布线的8条准则
- golang如何将http请求流转到gin
- Javaweb之JSTL
- matlab直流调速系统设计,直流调速系统的matlab设计与仿真系统设计
热门文章
- C#学习之ObjectOriented、Record
- CentOS7安装Nmon(linux性能监控工具)
- Vijos 1092 全排列
- 异步调用WebService
- cc java区别_cC和C++和java的问题有啥区别?
- redis 公网 安全_最安全redis公网访问
- c语言小游戏 贴吧,【图片】C语言小游戏~贪吃蛇【c语言吧】_百度贴吧
- java递归统计_Java类递归计数
- 卡图星小机器人怎么过_安徽交通广播90.8专题报道:阿尔法大蛋机器人,家里的新成员!...
- Java开发者需要掌握的基础知识