SoftMax回归

文章目录

  • 一. 简介
    • 1.1 概念
    • 1.2 原理
  • 二.模型训练
    • 2.1 交叉熵
    • 2.2 交叉熵的成本函数
    • 2.3 交叉熵梯度向量

一. 简介

1.1 概念

逻辑回归(可以看这篇博客 )是用于解决二分类问题的,而SoftMax回归则是逻辑回归的一种推广,可以直接支持多个类别,所以softMax回归也叫做多元逻辑回归。

1.2 原理

  • SoftMax回归模型对于某个给定的实例,它会计算它对于每个类别k的分数 S k ( x ) S_k(x) Sk(x),然后对这些分数应用SoftMax函数(也叫做归一化指数),估算出属于每个类别的一个概率。 S k ( x ) S_k(x) Sk(x)分数的公式如下:

S k ( X ) = θ k T ⋅ X S_k(X)=\theta_k^T \cdot X Sk(X)=θkTX

  • 计算完实例x对于每个类别的分数后,就可以通过SoftMax函数来计算分数:计算出每个分数的指数,然后对它们进行归一化处理(除以所有指数的总和)即得到 p ^ k \hat p_k p^k,也就是实例属于类别k的概率。Softmax函数如下:

p ^ k = σ ( s ( x ) ) k = e x p ( s k ( X ) ) ∑ j = 1 K e x p ( s j ( X ) ) \hat p_k=\sigma(s(x))_k=\frac {exp(s_k(X))} {\sum_{j=1}^K exp(s_j(X))} p^k=σ(s(x))k=j=1Kexp(sj(X))exp(sk(X))

K:类别的数量
s ( x ) s(x) s(x):当前实例对于每个类别的分数
σ ( s ( x ) ) k \sigma(s(x))_k σ(s(x))k:是给定的类别分数下,实例x属于类别k的概率

  • 最后softMax会和逻辑回归分类器一样,Softmax回归分类器将估算概率值最高的类别作为预测类别(也就是分数最高的类别)。下面函数会将会返回函数取最大值时对应变量的值(也就是类别k),公式如下:

y ^ = a r g m a x σ ( s ( X ) ) k = a r g m a x s k ( X ) = a r g m a x ( θ k T ⋅ X ) \hat y=argmax \sigma(s(X))_k=argmax s_k(X)=argmax(\theta_k^T \cdot X) y^=argmaxσ(s(X))k=argmaxsk(X)=argmax(θkTX)

T i p s Tips Tips:Softmax回归器一次只会预测一个类别(也就是说,它是多类别,但是不是多输出),所以它应用仅仅适合于互斥的类别上,例如鸢尾花中的不同品种。

二.模型训练

2.1 交叉熵

交叉熵(Cross Entropy)是Loss函数的一种(也称为损失函数或代价函数),用于描述模型预测值与真实值的差距大小。

2.2 交叉熵的成本函数

模型训练的目标是得到一个能对目标类别做出高概率估算的模型(也就是其他类别的概率相应要很低)。通过交叉熵成本函数最小化来实现这个目标,因为当模型对目标类别做出较低概率的估算时,会受到惩罚,函数如下:

J ( θ ) = − 1 m ∑ i = 1 m ∑ k = 1 K y k ( i ) l o g ( p ^ k ( i ) ) J(\theta)=- \frac 1 m \sum_{i=1}^m \sum_{k=1}^K y_k^{(i)}log(\hat p_k^{(i)}) J(θ)=m1i=1mk=1Kyk(i)log(p^k(i))

2.3 交叉熵梯度向量

计算出交叉熵的梯度向量以后就可以使用梯度下降找到最小化成本函数的参数矩阵了。

∇ θ k J ( θ ) = 1 m ∑ i = 1 m ( p ^ k ( i ) − y k ( i ) ) X ( i ) ∇_{\theta_k} J(\theta)=\frac 1 m \sum_{i=1}^m(\hat p_k^{(i)}-y_k^{(i)})X^{(i)} θkJ(θ)=m1i=1m(p^k(i)yk(i))X(i)

你可能感兴趣的:(机器学习,机器学习)