吴恩达——机器学习( Softmax Regression)

softmax regression和LR有些相似,可以说是LR的多分类版本,用于解决多项式分布问题。

首先回顾一下逻辑回归中提到的:对于指数分布族,y的分布函数可以表示为P\left ( y;\vartheta \right )=b\left ( y \right )exp\left ( \vartheta ^{T}T\left ( y \right )-a\left ( \vartheta \right ) \right ),其中T(y)表示充分统计量,在大多数情况下(比如LR)T(y)=y。但是在softmax regression中,T(y)\neq y

这里T(1)=\begin{bmatrix} 1\\ 0\\ ...\\ 0\end{bmatrix},  T(2)=\begin{bmatrix} 0\\ 1\\ ...\\ 0\end{bmatrix}, ... ,T(k-1)=\begin{bmatrix} 0\\ 0\\ ...\\ 1\end{bmatrix}T(k)=\begin{bmatrix} 0\\ 0\\ ...\\ 0\end{bmatrix}

定义指示函数1\begin{Bmatrix} True \end{Bmatrix}=11\begin{Bmatrix} False \end{Bmatrix}=0

那么T(y)中的第i个元素的值可以表示为T(y)_i=1\begin{Bmatrix} y=i \end{Bmatrix}

对于多项式分布y\in \begin{Bmatrix} 1,2,...,k \end{Bmatrix},有\phi _1,\phi _2,...,\phi _k_-_1分别表示对应下表分类的概率,\phi_k=1-\sum_{i}^{k-1}\phi _i

P(y)\\=\phi _1^{1\left \{ y=1 \right \}}\phi _2^{1\left \{ y=2 \right \}}...\phi _k^{1\left \{ y=k \right \}}\\ =\phi _1^{T(y)_1}\phi _2^{T(y)_2}...\phi _k^{ 1-\sum_{1}^{k-1} T(y)_j}\\ =exp(T(y)_1log\phi _1+T(y)_2log\phi _2+...+T(y)_k_-_1log\phi _k_-_1+(1-\sum_{j=1}^{k-1}T(y)_j))\\ =exp(T(y)_1log(\phi _1/\phi _k)+T(y)_2log(\phi _2/\phi _k)+...+T(y)_k_-_1log(\phi _K_-_1/\phi _k))+log\phi _k

\vartheta =\begin{bmatrix} log(\phi_1/\phi_k )\\ log(\phi_2/\phi_k)\\ ...\\ log(\phi_k_-_1/\phi_k)\end{bmatrix}\in \mathbb{R}^{k-1}},   a\left ( \vartheta \right )=-log\phi _k,  b\left ( y \right )=1

\Rightarrow \phi _i\\=\frac{e^{\vartheta_i }}{1+\sum_{j=1}^{k-1}e^{\vartheta _j}}\\ =\frac{e^{\theta_i ^{T}x}}{1+\sum_{j=1}^{k-1}e^{\theta_i ^{T}x}} (\vartheta _i=\theta_i^{T}x )

h_\theta (x)\\=E[T(y)|x;\theta ]\\ =E\begin{bmatrix} 1\left \{ y=1 \right \}\\ 1\left \{ y=2 \right \}\\ ...\\ 1\left \{ y=k-1 \right \|x;\theta }\end{bmatrix}\\ =\begin{bmatrix} \phi _1\\ \phi _2\\ ...\\ \phi _k_-_1\end{bmatrix}

softmax regression需要做的是:

给定标签y\in \begin{Bmatrix} 1,2,...,k \end{Bmatrix}和训练样本

最大化参数\theta的似然函数:

L(\theta )\\=\prod_{i=1}^{m}P(y^{\left ( i \right )}|x^{\left ( i \right )};\theta )\\ =\prod_{i=1}^{m}\phi _1^{1\left \{ y^{\left ( i \right )}=1 \right \}}\phi _2^{1\left \{ y^{\left ( i \right )}=1 \right \}}...\phi _k^{1\left \{ y^{\left ( i \right )}=1 \right \}}

然后对它取对数,利用梯度下降法求最大值。在推导的时候遇到一点问题,看到好多推导方法里\phi _i=\frac{e^{\theta_i ^{T}x}}{\sum_{j=1}^{k-1}e^{\theta_i ^{T}x}},我不是很理解为什么分母前面的1没了。

我觉得这个方法是拟合了多条直线\theta_i ^{T}X,分别可以代表归于i类的可能性,然后预测结果为可能性最大的那一个(不知道这样的理解对不对)

猜你喜欢

转载自blog.csdn.net/lekusun9671/article/details/82350000