【机器学习入门】交叉熵损失函数与MLE准则

0 总结

先放出结论方便查看,细节的推导可以阅读后续章节。

0.1 MLE与交叉熵

MLE准则导出的损失函数与交叉熵损失函数等价,如下:
J ( θ ) = − E x , y ∼ P d a t a [ l o g P m o d e l ( y ∣ x ; θ ) ] J(\pmb\theta)=-\mathbb{E}_{\pmb x,\pmb y\sim P_{data}}[logP_{model}(\pmb y|\pmb x;\pmb\theta)] J(θθθ)=Exxx,yyyPdata[logPmodel(yyyxxx;θθθ)]
监督学习是给定输入 x \pmb x xxx(样本)和输出 y \pmb y yyy(标签)来对模型进行训练的一个过程。

  • 从最大似然估计准则的角度看,这个过程可以看成是对条件概率 P ( Y ∣ X ; θ ) P(Y|X;\pmb\theta) P(YX;θθθ)的一个最大似然估计过程。
  • 从相对熵和交叉熵的角度看,这个过程可以看成调整 Q ( X ) Q(X) Q(X)使其逼近 P ( X ) P(X) P(X)的过程,而 H ( P , Q ) H(P,Q) H(P,Q)的最小值就是 H ( P ) H(P) H(P),那么我们对交叉熵 H ( P , Q ) H(P,Q) H(P,Q)进行最小化而获得的 Q ( X ) Q(X) Q(X)则应该能够很好逼近 P ( X ) P(X) P(X)

详见第4节

0.2 交叉熵损失函数具体形式

下列符号中: N N N为样本数, M M M为类别数

1.线性回归问题

J ( θ ) = − E x , y ∼ P d a t a [ l o g P m o d e l ( y ∣ x ; θ ) ] = 1 N ∣ ∣ y − y ^ ∣ ∣ 2 2 \begin{aligned} J(\pmb\theta)&=-\mathbb{E}_{\pmb x,\pmb y \sim P_{data}}[logP_{model}(\pmb y| \pmb x;\pmb\theta)]\\ &=\frac{1}{N}||\pmb y -\pmb{\hat y}||^2_2 \end{aligned} J(θθθ)=Exxx,yyyPdata[logPmodel(yyyxxx;θθθ)]=N1yyyy^y^y^22

2.logistic回归(二分类问题)

J ( θ ) = 1 N ∑ i = 1 N − y i l o g y i ^ − ( 1 − y i ) l o g ( 1 − y i ^ ) J(\pmb\theta)=\frac{1}{N}\sum_{i=1}^N-y_ilog\hat{y_i}-(1-y_i)log(1-\hat{y_i}) J(θθθ)=N1i=1Nyilogyi^(1yi)log(1yi^)其中:

  • y i y_i yi为0或1,若类别为A则为1,类别为B则为0
  • y i ^ \hat{y_i} yi^为模型输出的将样本分类为A的概率,则 ( 1 − y i ^ ) (1-\hat{y_i}) (1yi^)为分类成B的概率, y i ^ = σ s i g m o i d ( θ T x i + b ) \hat{y_i}=\sigma_{sigmoid}(\pmb\theta^T\pmb{x_i}+b) yi^=σsigmoid(θθθTxixixi+b)

3.多分类问题

J ( θ ) = − 1 N ∑ i = 1 N ∑ j = 1 M y i , j l o g y ^ i , j J(\pmb\theta)=-\frac{1}{N}\sum_{i=1}^N\sum_{j=1}^{M}y_{i,j}log\hat{y}_{i,j} J(θθθ)=N1i=1Nj=1Myi,jlogy^i,j其中:

  • y i , j y_{i,j} yi,j为0或1,若类别 j j j符合样本 i i i则取值为1,不符合则为0
  • y ^ i , j \hat{y}_{i,j} y^i,j为模型输出的将样本 i i i分类为类别 j j j的概率, y ^ i , j = σ s o f t m a x ( [ θ T x i + b ] j ) \hat{y}_{i,j}=\sigma_{softmax}([\pmb\theta^T\pmb{x_i}+\pmb b]_{j}) y^i,j=σsoftmax([θθθTxixixi+bbb]j)
  • [ θ T x i + b ] j [\pmb\theta^T\pmb{x_i}+\pmb b]_{j} [θθθTxixixi+bbb]j为输出层的第 j j j个输出,可解释作分类为类别 j j j的对数概率

1 最大似然估计MLE

1.1 似然函数与对数似然函数

给定一个概率分布 P ( x ) P(x) P(x),假设该分布由某组参数 θ \pmb\theta θθθ确定,那么该概率分布可以写成 P ( x ; θ ) P(x;\pmb\theta) P(x;θθθ)的形式。

  • 将参数 θ \pmb\theta θθθ固定,将 x x x看作变量,则 P ( x ; θ ) P(x;\pmb\theta) P(x;θθθ)称为概率分布,可以看作是在参数 θ \pmb\theta θθθ取到某组具体值的情况下的具体概率分布。
  • x x x固定,将 θ \theta θ看作变量,则 L ( θ ) = P ( x ; θ ) L(\pmb\theta)=P(x;\pmb\theta) L(θθθ)=P(x;θθθ)称为似然函数。似然函数可以看作是在数据 x x x已经被获取的情况下,参数 θ \theta θ在不同取值的情况下 x x x发生的概率。

对于一组独立同分布的数据 x = ( x 1 , x 2 , . . . , x n ) T \pmb{x}=(x_1,x_2,...,x_n)^T xxx=(x1,x2,...,xn)T,其联合分布通常可以写成连乘的形式: L ( θ ) = P ( x ; θ ) = ∏ i = 1 n P ( x i ; θ ) L(\pmb\theta)=P(\pmb{x};\pmb\theta)=\prod_{i=1}^{n}P(x_i;\pmb\theta) L(θθθ)=P(xxx;θθθ)=i=1nP(xi;θθθ)更常用的形式是对似然函数取对数,连乘可以化为求和符号,该函数称为对数似然函数: L L ( θ ) = l o g P ( x ; θ ) = ∑ i = 1 n l o g P ( x i ; θ ) LL(\pmb\theta)=logP(\pmb{x};\pmb\theta)=\sum_{i=1}^{n}logP(x_i;\pmb\theta) LL(θθθ)=logP(xxx;θθθ)=i=1nlogP(xi;θθθ)由于对数函数是单调递增函数,因此取对数不会影响极值的位置。

1.2 最大似然估计Maximum Likelihood Estimation

如上所述 “似然函数可以看作是在数据 x x x已经被获取的情况下,参数 θ \theta θ在不同取值的情况下 x x x发生的概率。” 那么最大似然估计准则的思想就是:
我要估计 θ \theta θ ,既然手上已经拿了这样的一组观测数据 x = ( x 1 , x 2 , . . . , x n ) T \pmb{x}=(x_1,x_2,...,x_n)^T xxx=(x1,x2,...,xn)T,那么就让它发生的概率最大化,然后取对应的 θ \theta θ 作为估计值好了。
用数学公式表达出来则是: θ ^ M L = arg max ⁡ θ L ( θ ) = arg max ⁡ θ ∑ i = 1 n l o g P ( x i ; θ ) \hat{\pmb{\theta}}_{ML}=\argmax_{\theta}L(\pmb\theta)=\argmax_{\theta}\sum_{i=1}^{n}logP(x_i;\pmb\theta) θθθ^ML=θargmaxL(θθθ)=θargmaxi=1nlogP(xi;θθθ)
上式取平均后可以等效写成:
θ ^ M L = arg min ⁡ θ [ − E [ l o g P ( x i ; θ ) ] ] \hat{\pmb{\theta}}_{ML}=\argmin_{\theta}[-\mathbb{E}[logP(x_i;\pmb\theta)]] θθθ^ML=θargmin[E[logP(xi;θθθ)]]
在利用最大似然准则进行参数估计的过程中,会用似然函数对参数 θ \pmb\theta θθθ进行求导然后求极大值,此处不赘述求解过程。
从该求解过程的概述中可以看出,利用数据 x \pmb x xxx求解 θ \pmb\theta θθθ的前提是函数 P ( x ; θ ) P(x;\pmb\theta) P(x;θθθ)是正确的,否则该函数不能正确反映 x \pmb x xxx θ \pmb\theta θθθ的真实关系,那么对 θ \pmb\theta θθθ的估计也就无从谈起了。《深度学习》中对这一个性质描述如下:

  • 真实分布 p d a t a p_{data} pdata必须在模型族 p m o d e l ( ⋅ ; θ ) p_{model}(·;\pmb\theta) pmodel(;θθθ)中。否则,没有估计可以还原 p d a t a p_{data} pdata
  • 真实分布 p d a t a p_{data} pdata必须刚好对应一个 θ \pmb\theta θθθ值。否则,最大似然估计恢复出真实分布 p d a t a p_{data} pdata后也不能决定数据生成过程使用哪个 θ \pmb\theta θθθ

通俗的说就是函数的样子要选对,选哪一个作为参数也要选好。

2 相对熵与交叉熵

2.1 相对熵

相对熵(relative entropy),又被称为Kullback-Leibler散度或信息散度,是两个概率分布间差异的非对称性度量。在信息理论中,相对熵等价于两个概率分布的信息熵的差值。——百度百科”相对熵“

相对熵的定义: D ( P ∣ ∣ Q ) = E x ∼ P ( X ) [ l o g P ( x ) Q ( x ) ] = ∑ x ∈ X P ( x ) l o g P ( x ) Q ( x ) = ∑ x ∈ X P ( x ) l o g P ( x ) − ∑ x ∈ X P ( x ) l o g Q ( x ) \begin{aligned} D(P||Q)&=\mathbb{E}_{x\sim P(X)}[log\frac{P(x)}{Q(x)}] \\ &=\sum_{x\in X}P(x)log\frac{P(x)}{Q(x)} \\ &=\sum_{x\in X}P(x)logP(x)-\sum_{x\in X}P(x)logQ(x) \end{aligned} D(PQ)=ExP(X)[logQ(x)P(x)]=xXP(x)logQ(x)P(x)=xXP(x)logP(x)xXP(x)logQ(x)其中 E x ∼ P ( X ) \mathbb{E}_{x\sim P(X)} ExP(X)表示针对服从 P ( X ) P(X) P(X)分布的 x x x计算数学期望,令 H ( P ) = − ∑ x ∈ X P ( x ) l o g P ( x ) H ( P , Q ) = − ∑ x ∈ X P ( x ) l o g Q ( x ) H(P)=-\sum_{x\in X}P(x)logP(x)\\ H(P,Q)=-\sum_{x\in X}P(x)logQ(x) H(P)=xXP(x)logP(x)H(P,Q)=xXP(x)logQ(x)相对熵可以写成以下形式: D ( P ∣ ∣ Q ) = H ( P , Q ) − H ( P ) D(P||Q)=H(P,Q)-H(P) D(PQ)=H(P,Q)H(P)
当对数以2为底的时候,公式及符号有以下物理意义:

  • H ( P ) H(P) H(P)为服从 P ( X ) P(X) P(X)分布的信源 X X X的信息熵,也表示对信源 X X X编码所需的平均比特数
  • H ( P , Q ) H(P,Q) H(P,Q)称为交叉熵,表示对服从 P ( X ) P(X) P(X)分布的信源 X X X,按照分布 Q ( X ) Q(X) Q(X)来进行编码所需的平均比特数,也表示利用分布 Q ( X ) Q(X) Q(X)来表示服从 P ( X ) P(X) P(X)分布的 X X X的困难程度
  • D ( P ∣ ∣ Q ) D(P||Q) D(PQ)为相对熵,表示用 Q ( X ) Q(X) Q(X)来对信源 X X X编码平均所需要的额外比特数

2.2 交叉熵

上面通过相对熵引出了交叉熵的定义:
H ( P , Q ) = − ∑ x ∈ X P ( x ) l o g Q ( x ) = − E [ l o g Q ( x ) ] \begin{aligned} H(P,Q)&=-\sum_{x\in X}P(x)logQ(x)\\ &=-\mathbb{E}[logQ(x)] \end{aligned} H(P,Q)=xXP(x)logQ(x)=E[logQ(x)]显然,当分布 Q ( X ) Q(X) Q(X)趋近于 P ( X ) P(X) P(X)的时候 H ( P , Q ) H(P,Q) H(P,Q)趋于 H ( P ) H(P) H(P),相对熵 D ( P ∣ ∣ Q ) D(P||Q) D(PQ)趋于0,表示利用 Q ( X ) Q(X) Q(X)编码也不会有很多的冗余比特。

可以证明 D ( P ∣ ∣ Q ) ≥ 0 D(P||Q)\geq0 D(PQ)0,即有 m i n H ( P , Q ) = H ( P ) minH(P,Q)=H(P) minH(P,Q)=H(P)

在机器学习当中,我们对模型的训练实际上就是一个参数估计的过程。我们对模型的参数进行调整的过程就是调整模型 Q ( X ) Q(X) Q(X)来逼近真实数据 P ( X ) P(X) P(X)的优化过程。

3 举个分类器的例子

交叉熵损失函数经常用在分类问题上,以下通过一个分类的例子进行说明

  • 有N个输入样本 x i , i = 1 , 2 , . . . , N \pmb{x_i},i=1,2,...,N xixixi,i=1,2,...,N(例如:N张图片)
  • 有M个类别 y j , j = 1 , 2 , . . . , M y_j,j=1,2,...,M yj,j=1,2,...,M(例如:猫、狗等M种动物)
  • P d a t a ( y j ∣ x i ) P_{data}(y_j|\pmb{x_i}) Pdata(yjxixixi)为要学习的分布,多分类中一般采用独热编码(例如: P d a t a ( 猫 ∣ 猫 的 照 片 ) = 1 , P d a t a ( 狗 ∣ 猫 的 照 片 ) = 0 P_{data}(猫|猫的照片)=1,P_{data}(狗|猫的照片)=0 Pdata()=1,Pdata()=0
  • P m o d e l ( y j ∣ x i ; θ ) P_{model}(y_j|\pmb{x_i};\pmb\theta) Pmodel(yjxixixi;θθθ)为模型的分布(通过学习来逼近 P d a t a ( y j ∣ x i ) P_{data}(y_j|\pmb{x_i}) Pdata(yjxixixi))
    根据上面的描述,第 i i i个样本交叉熵可以表示为: H i ( P d a t a , P m o d e l ) = − ∑ j = 1 M P d a t a ( y j ∣ x i ) l o g P m o d e l ( y j ∣ x i ; θ ) H_{i}(P_{data},P_{model})=-\sum_{j=1}^{M}P_{data}(y_j|\pmb{x_i})logP_{model}(y_j|\pmb{x_i};\pmb\theta) Hi(Pdata,Pmodel)=j=1MPdata(yjxixixi)logPmodel(yjxixixi;θθθ)这样我们就可以导出该样本的交叉熵损失函数:
    J i ( θ ) = H i ( P d a t a , P m o d e l ) = − ∑ j = 1 M P d a t a ( y j ∣ x i ) l o g P m o d e l ( y j ∣ x i ; θ ) \begin{aligned} J_i(\pmb\theta)&=H_i(P_{data},P_{model})\\ &=-\sum_{j=1}^{M}P_{data}(y_j|\pmb{x_i})logP_{model}(y_j|\pmb{x_i};\pmb\theta) \end{aligned} Ji(θθθ)=Hi(Pdata,Pmodel)=j=1MPdata(yjxixixi)logPmodel(yjxixixi;θθθ)
    实际上采用独热编码的时候该求和号内部每一次只有一项是非零的,例如:假设 P d a t a = ( 猫 , 狗 , 老 鼠 ) T P_{data}=(猫,狗,老鼠)^T Pdata=()T,则给定狗的照片,是猫、狗、老鼠这三种动物的概率分布为:
    P d a t a ( y = 猫 、 狗 、 老 鼠 ∣ x i = 狗 的 照 片 ) = [ 0 1 0 ] P_{data}(y=猫、狗、老鼠|\pmb{x_i}=狗的照片)= \begin{bmatrix} 0\\1\\0 \end{bmatrix} Pdata(y=xixixi=)=010模型的推理结果假设为:
    P m o d e l ( y = 猫 、 狗 、 老 鼠 ∣ x i = 狗 的 照 片 ; θ ) = [ 0.2 0.6 0.2 ] P_{model}(y=猫、狗、老鼠|\pmb{x_i}=狗的照片;\pmb\theta)= \begin{bmatrix} 0.2\\0.6\\0.2 \end{bmatrix} Pmodel(y=xixixi=;θθθ)=0.20.60.2那么这一个样本的交叉熵损失函数的实际结果为:
    J i ( θ ) = − ∑ y j = 猫 、 狗 、 老 鼠 P d a t a ( y j ∣ x i = 狗 的 照 片 ) l o g P m o d e l ( y j ∣ x i = 狗 的 照 片 ; θ ) = − P d a t a ( y = 狗 ∣ x i = 狗 的 照 片 ) l o g P m o d e l ( y = 狗 ∣ x i = 狗 的 照 片 ; θ ) = − 1 ⋅ l o g 0.6 \begin{aligned} J_i(\pmb\theta)&=-\sum_{y_j=猫、狗、老鼠}P_{data}(y_j|\pmb{x_i}=狗的照片)logP_{model}(y_j|\pmb{x_i}=狗的照片;\pmb\theta)\\ &=-P_{data}(y=狗|\pmb{x_i}=狗的照片)logP_{model}(y=狗|\pmb{x_i}=狗的照片;\pmb\theta)\\ &=-1·log0.6 \end{aligned} Ji(θθθ)=yj=Pdata(yjxixixi=)logPmodel(yjxixixi=;θθθ)=Pdata(y=xixixi=)logPmodel(y=xixixi=;θθθ)=1log0.6

由此可以导出多分类问题中交叉熵损失函数的计算公式: J i ( θ ) = − ∑ j = 1 M y j , i l o g P j , i J_i(\pmb\theta)=-\sum_{j=1}^{M}y_{j,i}logP_{j,i} Ji(θθθ)=j=1Myj,ilogPj,i

  • y j , i y_{j,i} yj,i为0或1,若类别 j j j符合样本 i i i则取值为1,不符合则为0
  • P j , i P_{j,i} Pj,i为模型输出的将样本 i i i分类为类别 j j j的概率,可以利用softmax单元获得

当分类问题为二分类时可以化简为: J i ( θ ) = − y i l o g P i − ( 1 − y i ) l o g ( 1 − P i ) J_i(\pmb\theta)=-y_ilogP_i-(1-y_i)log(1-P_i) Ji(θθθ)=yilogPi(1yi)log(1Pi)

  • y i y_i yi为0或1,若类别为A则为1,类别为B则为0
  • P i P_i Pi为模型输出的将样本分类为A的概率,则 ( 1 − P i ) (1-P_i) (1Pi)为分类成B的概率,可以利用sigmoid单元获得

4 交叉熵损失函数与MLE准则

当我们明确了一个模型的输出 P m o d e l ( y ∣ x ) P_{model}(\pmb y|\pmb x) Pmodel(yyyxxx)时,从上述讨论中可以看到对数似然函数最大化与交叉熵损失函数最小化是等价的,因此利用最大似然估计准则进行学习等价于利用交叉熵损失函数。
J ( θ ) = − E [ l o g P m o d e l ( y ∣ x ; θ ) ] J(\pmb\theta)=-\mathbb{E}[logP_{model}(\pmb y|\pmb x;\pmb\theta)] J(θθθ)=E[logPmodel(yyyxxx;θθθ)]该数学期望(均值)是针对服从训练数据分布 P d a t a P_{data} Pdata的样本和标签的,因此可以写成 J ( θ ) = − E x , y ∼ P d a t a [ l o g P m o d e l ( y ∣ x ; θ ) ] J(\pmb\theta)=-\mathbb{E}_{\pmb x,\pmb y\sim P_{data}}[logP_{model}(\pmb y|\pmb x;\pmb\theta)] J(θθθ)=Exxx,yyyPdata[logPmodel(yyyxxx;θθθ)]
监督学习是给定输入 x \pmb x xxx(样本)和输出 y \pmb y yyy(标签)来对模型进行训练的一个过程。

  • 从最大似然估计准则的角度看,这个过程可以看成是对条件概率 P ( Y ∣ X ; θ ) P(Y|X;\pmb\theta) P(YX;θθθ)的一个最大似然估计过程。
  • 从相对熵和交叉熵的角度看,这个过程可以看成调整 Q ( X ) Q(X) Q(X)使其逼近 P ( X ) P(X) P(X)的过程,而 H ( P , Q ) H(P,Q) H(P,Q)的最小值就是 H ( P ) H(P) H(P),那么我们对交叉熵 H ( P , Q ) H(P,Q) H(P,Q)进行最小化而获得的 Q ( X ) Q(X) Q(X)则应该能够很好逼近 P ( X ) P(X) P(X)

不同模型会有不同 P m o d e l ( y ∣ x ) P_{model}(\pmb y|\pmb x) Pmodel(yyyxxx),因此会导出不同的具体的损失函数形态。

4.1 线性回归

给定特征 h \pmb h hhh,线性单元输出 y ^ = θ T h + b \pmb {\hat y} = \pmb\theta^T\pmb h +\pmb b y^y^y^=θθθThhh+bbb,模型概率为 P m o d e l ( y ∣ x ; θ ) = N ( y ; y ^ , I ) P_{model}(\pmb y|\pmb x;\pmb\theta)=\mathcal{N}(\pmb y;\pmb{\hat y},\pmb I) Pmodel(yyyxxx;θθθ)=N(yyy;y^y^y^,III),即有
P m o d e l ( y ∣ x ; θ ) = 1 2 π N e − 1 2 ( y − y ^ ) T ( y − y ^ ) = 1 2 π N e − 1 2 ∑ i = 1 N ( y i − y ^ i ) 2 \begin{aligned} P_{model}(\pmb y| \pmb x;\pmb\theta)&=\frac {1}{\sqrt{2\pi}^N}e^{-\frac{1}{2}(\pmb y-\pmb{\hat y})^T(\pmb y - \pmb{\hat y})}\\ &=\frac {1}{\sqrt{2\pi}^N}e^{-\frac{1}{2}\sum_{i=1}^{N}(y_i-\hat y_i)^2} \end{aligned} Pmodel(yyyxxx;θθθ)=2π N1e21(yyyy^y^y^)T(yyyy^y^y^)=2π N1e21i=1N(yiy^i)2
其负对数似然函数为:
− l n P m o d e l ( y ∣ x ; θ ) = N 2 l n 2 π + 1 2 ∑ i = 1 N ( y i − y ^ i ) 2 = N 2 l n 2 π + 1 2 ∣ ∣ y − y ^ ∣ ∣ 2 2 \begin{aligned} -lnP_{model}(\pmb y|\pmb x;\pmb\theta)&=\frac{N}{2}ln2\pi+\frac{1}{2}\sum_{i=1}^{N}(y_i-\hat y_i)^2\\ &=\frac{N}{2}ln2\pi+\frac{1}{2}||\pmb y-\pmb{\hat y}||^2_2 \end{aligned} lnPmodel(yyyxxx;θθθ)=2Nln2π+21i=1N(yiy^i)2=2Nln2π+21yyyy^y^y^22
可以导出代价函数(忽略掉常数项和系数 1 2 1\over2 21):
J ( θ ) = − E x , y ∼ P d a t a [ l o g P m o d e l ( y ∣ x ; θ ) ] = 1 N ∣ ∣ y − y ^ ∣ ∣ 2 2 \begin{aligned} J(\pmb\theta)&=-\mathbb{E}_{\pmb x,\pmb y \sim P_{data}}[logP_{model}(\pmb y| \pmb x;\pmb\theta)]\\ &=\frac{1}{N}||\pmb y -\pmb{\hat y}||^2_2 \end{aligned} J(θθθ)=Exxx,yyyPdata[logPmodel(yyyxxx;θθθ)]=N1yyyy^y^y^22
显然该代价函数就是MSE,因此对于线性回归问题,最大似然估计准则与交叉熵损失函数导出的具体的代价函数即为MSE。

4.2 logistic回归(二分类问题)

sigmoid函数能够将输出数据压缩至(0,1)区间,可以解释为概率。函数形式如下 σ ( z ) = 1 1 + e − z \sigma(z)=\frac{1}{1+e^{-z}} σ(z)=1+ez1从第三节的例子中可以看到代价函数为
J ( θ ) = 1 N ∑ i = 1 N J i ( θ ) = 1 N ∑ i = 1 N − y i l o g P m o d e l ( 1 ∣ x i ; θ ) − ( 1 − y i ) l o g P m o d e l ( 0 ∣ x i ; θ ) = 1 N ∑ i = 1 N − y i l o g y i ^ − ( 1 − y i ) l o g ( 1 − y i ^ ) \begin{aligned} J(\pmb\theta)&=\frac{1}{N}\sum_{i=1}^NJ_i(\pmb\theta)\\ &=\frac{1}{N}\sum_{i=1}^N-y_ilogP_{model}(1|\pmb{x_i};\pmb\theta)-(1-y_i)logP_{model}(0|\pmb{x_i};\pmb\theta)\\ &=\frac{1}{N}\sum_{i=1}^N-y_ilog\hat{y_i}-(1-y_i)log(1-\hat{y_i}) \end{aligned} J(θθθ)=N1i=1NJi(θθθ)=N1i=1NyilogPmodel(1xixixi;θθθ)(1yi)logPmodel(0xixixi;θθθ)=N1i=1Nyilogyi^(1yi)log(1yi^)其中:

  • y i y_i yi为0或1,若类别为A则为1,类别为B则为0
  • y i ^ \hat{y_i} yi^为模型输出的将样本分类为A的概率,则 ( 1 − y i ^ ) (1-\hat{y_i}) (1yi^)为分类成B的概率, y i ^ = σ ( θ T x i + b ) \hat{y_i}=\sigma(\pmb\theta^T\pmb{x_i}+b) yi^=σ(θθθTxixixi+b)

4.3 多分类问题

softmax函数是sigmoid函数的推广,函数形式如下 σ ( z i ) = e z i ∑ j = 1 M e z j \sigma(z_i)=\frac{e^{z_i}}{\sum_{j=1}^{M}e^{z_j}} σ(zi)=j=1Mezjezi从第三节的例子中可以看到代价函数为
J ( θ ) = 1 N ∑ i = 1 N J i ( θ ) = − 1 N ∑ i = 1 N ∑ j = 1 M y i , j l o g P m o d e l ( j ∣ x i ; θ ) = − 1 N ∑ i = 1 N ∑ j = 1 M y i , j l o g y ^ i , j \begin{aligned} J(\pmb\theta)&=\frac{1}{N}\sum_{i=1}^NJ_i(\pmb\theta)\\ &=-\frac{1}{N}\sum_{i=1}^N\sum_{j=1}^{M}y_{i,j}logP_{model}(j|\pmb{x_i};\pmb\theta)\\ &=-\frac{1}{N}\sum_{i=1}^N\sum_{j=1}^{M}y_{i,j}log\hat{y}_{i,j} \end{aligned} J(θθθ)=N1i=1NJi(θθθ)=N1i=1Nj=1Myi,jlogPmodel(jxixixi;θθθ)=N1i=1Nj=1Myi,jlogy^i,j其中:

  • y i , j y_{i,j} yi,j为0或1,若类别 j j j符合样本 i i i则取值为1,不符合则为0
  • y ^ i , j \hat{y}_{i,j} y^i,j为模型输出的将样本 i i i分类为类别 j j j的概率, y ^ i , j = σ ( [ θ T x i + b ] j ) \hat{y}_{i,j}=\sigma([\pmb\theta^T\pmb{x_i}+\pmb b]_{j}) y^i,j=σ([θθθTxixixi+bbb]j)
  • [ θ T x i + b ] j [\pmb\theta^T\pmb{x_i}+\pmb b]_{j} [θθθTxixixi+bbb]j为输出层的第 j j j个输出,可解释作分类为类别 j j j的对数概率

猜你喜欢

转载自blog.csdn.net/jasonso97/article/details/112726403