【原创帖!转载请注明出处:http://www.cnblogs.com/LaplaceAkuir/p/7484796.html】
Logistic回归分析
(qquad Logistic回归为概率型非线性回归模型,机器学习常用的二分类分类器,其表达式为:)
(quad quad z=w_{1}*x_{1}+w_{2}*x_{2}+cdots +w_{n}*x_{n}+b=sum_{i=0}^n w_{i}x_{i} (其中 b等于w_{0},x_{0}等于1)则:)
(quad quad)即对于二分类,如果(f(x)ge{0.5}),则(x)属于第一类,即预测(y=1),反之(x)属于第二类,预测(y=0);样本的分布如下,其中,(C_1)表示第一个类别,(C_2)表示第二个类别,样本个数为(n)
(qquad)我们的目的是:对于类别为(1)的正样本(f_{w,b}(x)) 尽可能大,而类别为(2)的负样本(f_{w,b}(x)) 尽可能小,则我们需要最大化:(L(w,b)=f_{w,b}(x^1)f_{w,b}(x^2)(1-f_{w,b}(x^3))cdots f_{w,b}(x^n))来寻找最佳的(w)和(b)
随机梯度下降法
(qquad 我们需要优化的函数:-ln{L(w,b)} = -{ln{f_{w,b}(x^1)}+lnf_{w,b}(x^2)+ln(1-f_{w,b}(x^3))+cdots lnf_{w,b}(x^n)}quad \)
(qquad 我们需要优化的函数简化为:ln{L(w,b)} =sum_{j=1}^{n}{hat{y}^j\,lnf_{w,b}(x^j)+(1-hat{y}^j)\,ln(1-f_{w,b}(x^j))} \)
(qquad 当\,\,hat{y}=1时quad hat{y}\,lnf_{w,b}(x)+(1-hat y)\,ln(1-f_{w,b}(x)) = lnf_{w,b}(x) \)
(qquad 当\,\,hat{y}=0时quad hat{y}\,lnf_{w,b}(x)+(1-hat y)\,ln(1-f_{w,b}(x)) = ln(1-f_{w,b}(x)) qquad \)
(qquad 即均满足上式 , 因此:)
(qquad qquad quad frac{partial lnL(w,b)}{partial w_i}=sum_{j=1}^{n}hat{y}^jfrac{ partial lnf_{w,b}(x^j) }{partial w_i}+(1-hat{y}^j)frac{partial (1-lnf_{w,b}(x^j))}{partial w_i} \)
(qquad quad quad 而 \, frac{partial lnf_{w,b}(x)}{partial w_i}=frac{partial lnf_{w,b}(x)}{partial z}*frac{partial z}{partial w_i} \)
(qquad qquad qquad qquad quad=frac{1}{f_{w,b}(x)}* frac{partial f_{w,b}(x)}{partial z}*x_i \)
(qquad qquad qquad qquad quad=frac{1}{f_{w,b}(x)}*f_{w,b}(x)*(1-f_{w,b}(x))*x_i \)
(qquad qquad qquad qquad quad=(1-f_{w,b}(x))*x_i \)
(quad quad 同理 quad frac{partial (1-lnf_{w,b}(x))}{partial w_i}=f_{w,b}(x)*x_i qquad 则化简后:\)
(qquad quad\,\, qquad frac{partial lnL(w,b)}{partial w_i}=sum_{j=1}^{n}hat{y}^jfrac{ partial lnf_{w,b}(x^j) }{partial w_i}+(1-hat{y}^j)frac{partial (1-lnf_{w,b}(x^j))}{partial w_i} \)
(qquad qquad qquad quad qquad = sum_{j=1}^{n}{hat{y}^j(1-f_{w,b}(x^j))x^j_i+(1-hat{y}^j)*f_{w,b}(x^j)x^j_i} \)
(qquad qquad quadqquad qquad = sum_{j=1}^{n}(hat{y}^j -f_{w,b}(x^j))x^j_i \)
(qquad b的推导与w的相似,可以得到w的更新迭代过程:w_{i} leftarrow w_{i}-alpha*sum_{j=0}^{n}(hat{y}^j-f_{w,b}(x^j))x^j_i \)
思考题
1. 为什么选用(crossEntropy)损失函数,而不用L2损失函数
(答:logistic不像linear \,\, regression使用L2损失函数的原因,主要是由于logistic的funcion的形式,\)
(由于sigmoid函数的存在,如果logistic采取L2 loss时,损失函数为:\)
(则当\,hat{y}=1, f_{w,b}(x) = 1 quad 预测为1 ,即预测完全正确时 quad loss=0 quad \)
(但是当\,hat{y}=1,f_{w,b}(x) = 0 quad 预测为0 ,即预测完全错误时 quad loss却依然为0 quad显然不对 \)
2. (logistic \,\,regression)的分类概率为什么选取了(sigmoid)函数
(答: 我们假设样本的分布服从二次高斯分布,即\)
(f_{mu,Sigma}(x) = frac{1}{(2pi)^{D/2}}frac{1}{|Sigma|^{1/2}}exp{-frac{1}{2}(x-mu)^T|Sigma|^{-1}(x-mu)},其中mu为均值,Sigma为协方差矩阵 \)
(输入为x,输出f_{mu,Sigma}(x)为样本x的概率密度,高斯分布的形状分布取决于均值mu和协方差矩阵Sigma, \)
(因此需要求取最佳的高斯分布来满足样本的分布 \)
(对于一个二分类,我们假设类别1的样本高斯分布的均值为mu^1,类别2的样本的高斯分布均值为mu^2,他们具有相同的协方差Sigma \)
(对于样本x,如果属于C_1则有:\)
(qquad qquadqquad qquad P(C_{1}|x) \,\,= frac{P(C_{1},x)}{P(x)} \)
(qquad qquadqquad qquad qquad qquad =frac{P(x|C_{1})*P(C_{1})}{P(x|C_{1})*P(C_{1})+P(x|C_{2})*P(C_{2})} \)
(qquad qquadqquad qquad qquad qquad =frac{1}{1+frac{P(x|C_{2})P(C_{2})}{P(x|C_{1})P(C_{1})}} \)
(qquad qquadqquad qquad qquad qquad =frac{1}{1+exp(-alpha)} \)
(其中\,\, alpha= ln(frac{P(x|C_{1})*P(C_{1})}{P(x|C_{2})*P(C_{2})}))
(将P(x|C_i)带入高斯分布的公式:\)
(alpha= lnP(x|C_1)-lnP(x|C_2)+lnfrac{P(C_1)}{P(C_2)} \)
(quad =-frac{1}{2}(x-mu^1)^T|Sigma|^{-1}(x-mu^1)-(-frac{1}{2}(x-mu^2)^T|Sigma|^{-1}(x-mu^2))+lnfrac{n_1}{n_2}\)
(quad =-frac{1}{2}x^T(Sigma)^{-1}x+(u^1)^T(Sigma)^{-1}x-frac{1}{2}(u^1)^T(Sigma)^{-1}u^1+frac{1}{2}x^T(Sigma)^{-1}x-(u^2)^T(Sigma)^{-1}x+frac{1}{2}(u^2)^T(Sigma)^{-1}u^2+lnfrac{n_1}{n_2}\)
(quad = (u^1-u^2)^T(Sigma)^{-1}x-frac{1}{2}(u^1)^T(Sigma)^{-1}u^1+frac{1}{2}(u^2)^T(Sigma)^{-1}u^2+lnfrac{n_1}{n_2}\)
(quad = wx+b\)
(quad w = (u^1-u^2)^T(Sigma)^{-1} quad ; quad b=-frac{1}{2}(u^1)^T(Sigma)^{-1}u^1+frac{1}{2}(u^2)^T(Sigma)^{-1}u^2+lnfrac{n_1}{n_2}\)
(quad 因此可以得到对于满足猜想的二次高斯分布的datasets,生成模型的分类表达式与logistic是一致的 \)
生成model与判别model对比
生成模型
(基于现有的样本,对样本分布做了一个猜测(极大似然),因此当数据集较少,或者有噪声的时候 \)
(都能达到一个较好的结果(不过分依赖于实际样本),并且可以根据不同的概率model完成样本分布的gauss \)
判别模型
(基于决策的方式(判别式),通过优化方法(sgd)寻找最优参数,对样本的依赖大,样本充足时,其 \)
(效果一般比生成模型好(基于事实 not 基于猜测) \)
小扩展
多分类
(基于先验概率得出的每个类别的后验概率为softmax函数,即: \)
(qquad qquad qquad qquad \, P(C_i|x) = frac{P(x|C_i)P(C_i)}{sum_{j=1}^{n}P(x|C_j)P(C_j)}\)
(qquad qquad qquad qquad qquad qquad = frac{exp(a_k)}{sum_{j=1}^{n}a_j}\)
待续
(未完待续)