zoukankan      html  css  js  c++  java
  • logistic回归和softmax回归

    logistic:二分类

    softmax:多分类

    logistic回归

    在 logistic 回归中,我们的训练集由 	extstyle m 个已标记的样本构成:{ (x^{(1)}, y^{(1)}), ldots, (x^{(m)}, y^{(m)}) }。由于 logistic 回归是针对二分类问题的,因此类标记 y^{(i)} in {0,1}

    假设函数(hypothesis function): egin{align}h_	heta(x) = frac{1}{1+exp(-	heta^Tx)},end{align}

    代价函数(损失函数):egin{align}J(	heta) = -frac{1}{m} left[ sum_{i=1}^m y^{(i)} log h_	heta(x^{(i)}) + (1-y^{(i)}) log (1-h_	heta(x^{(i)})) 
ight]end{align}

    我们的目标是训练模型参数	extstyle 	heta,使其能够最小化代价函数。

    假设函数就相当于我们在线性回归中要拟合的直线函数。

    softmax回归

    在 softmax回归中,我们的训练集由 	extstyle m 个已标记的样本构成:{ (x^{(1)}, y^{(1)}), ldots, (x^{(m)}, y^{(m)}) }。由于softmax回归是针对多分类问题(相对于 logistic 回归针对二分类问题),因此类标记 	extstyle y 可以取 	extstyle k 个不同的值(而不是 2 个)。我们有 y^{(i)} in {1, 2, ldots, k}

    对于给定的测试输入 	extstyle x,我们想用假设函数针对每一个类别j估算出概率值 	extstyle p(y=j | x)。也就是说,我们想估计 	extstyle x 的每一种分类结果出现的概率。因此,我们的假设函数将要输出一个 	extstyle k 维的向量(向量元素的和为1)来表示这 	extstyle k 个估计的概率值。 具体地说,我们的假设函数 	extstyle h_{	heta}(x) 形式如下:

    假设函数:egin{align}h_	heta(x^{(i)}) =egin{bmatrix}p(y^{(i)} = 1 | x^{(i)}; 	heta) \p(y^{(i)} = 2 | x^{(i)}; 	heta) \vdots \p(y^{(i)} = k | x^{(i)}; 	heta)end{bmatrix}=frac{1}{ sum_{j=1}^{k}{e^{ 	heta_j^T x^{(i)} }} }egin{bmatrix}e^{ 	heta_1^T x^{(i)} } \e^{ 	heta_2^T x^{(i)} } \vdots \e^{ 	heta_k^T x^{(i)} } \end{bmatrix}end{align}
    其中 	heta_1, 	heta_2, ldots, 	heta_k in Re^{n+1} 是模型的参数。请注意 frac{1}{ sum_{j=1}^{k}{e^{ 	heta_j^T x^{(i)} }} }这一项对概率分布进行归一化,使得所有概率之和为 1 。

    为了方便起见,我们同样使用符号 	extstyle 	heta 来表示全部的模型参数。在实现Softmax回归时,将 	extstyle 	heta 用一个 	extstyle k 	imes(n+1) 的矩阵来表示会很方便,该矩阵是将 	heta_1, 	heta_2, ldots, 	heta_k 按行罗列起来得到的,如下所示:

    	heta = egin{bmatrix}mbox{---} 	heta_1^T mbox{---} \mbox{---} 	heta_2^T mbox{---} \vdots \mbox{---} 	heta_k^T mbox{---} \end{bmatrix}
    也就是说	extstyle h_{	heta}(x)表示的是x属于不同类别的概率组成的向量。
    代价函数:egin{align}J(	heta) = - frac{1}{m} left[ sum_{i=1}^{m} sum_{j=1}^{k}  1left{y^{(i)} = j
ight} log frac{e^{	heta_j^T x^{(i)}}}{sum_{l=1}^k e^{ 	heta_l^T x^{(i)} }}
ight]end{align}
    	extstyle 1{cdot} 是示性函数,其取值规则为
     值为真的表达式 


    值得注意的是,logistic回归代价函数是softmax代价函数的特殊情况。因此,logistic回归代价函数可以改为:

    egin{align}J(	heta) &= -frac{1}{m} left[ sum_{i=1}^m   (1-y^{(i)}) log (1-h_	heta(x^{(i)})) + y^{(i)} log h_	heta(x^{(i)}) 
ight] \&= - frac{1}{m} left[ sum_{i=1}^{m} sum_{j=0}^{1} 1left{y^{(i)} = j
ight} log p(y^{(i)} = j | x^{(i)} ; 	heta) 
ight]end{align}
    一点个人理解:

    为什么二分类中参数只有一个	extstyle 	heta,而k分类中参数却有k个。

    其实二分类中的	extstyle 	heta是y=1情况下的参数,而y=0情况下其实未给出参数,因为y=0的假设函数值可以通过1-(y=1的假设函数值)得到。同理,k分类中参数其实只需要k-1个参数就可以了,多余的一个参数是冗余的。
    具体冗余参数有什么负面影响,参考Softmax回归 http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vincent2610/article/details/52708863?locationNum=14
     
    知乎:https://www.zhihu.com/question/23765351
  • 相关阅读:
    Java字节流Stream的使用,创建方法
    Java中字节流和字符流复制文件
    Java中的IO流,Input和Output的用法,字节流和字符流的区别
    Java中String的常用方法总结
    java中File类的常用方法总结
    Java中递归的优缺点,Java写一个递归遍历目录下面的所有文件包括子文件夹里边的文件。
    Mysql 5.5从零开始学阅读笔记
    RDS for MySQL有哪些限制
    mysql查看建表语句命令
    MYSQL查看当前正在使用的数据库命令
  • 原文地址:https://www.cnblogs.com/Ph-one/p/9068897.html
Copyright © 2011-2022 走看看