台大李宏毅Machine Learning 2017Fall学习笔记 (6)Logistic Regression
做Logistic Regression回归,需要3步。
Step 1: Function Set
在此问题中选择sigmod(z)函数,具体见下图。
这里对Logistic Regression和Linear Regression的输出值做个对比,主要是输出值的范围不同。
Step 2: Goodness of a Function
如果训练数据集的格式如下所示:
假设训练集数据是由fw,b(x)=Pw,b(C1|x)函数产生。给定w和
L(w,b)=fw,b(x1)fw,b(x2)(1−fw,b(x3))⋅⋅⋅fw,b(xN)
现在的目标是求出使L(w,b)最大的w∗和b∗。
w∗,b∗=arg maxw,bL(w,b)
为了便于处理,对 上式进行等价处理:
注意:上图中采用交叉熵函数作为损失函数。Cross entropy表示两个distribution有多么接近,若两个distribution一模一样,则cross entropy=0。
关于前两步对Logistic Regression和Linear Regression做对比。
至于为何不用square error做线性回归,暂且不表。
Step 3: Find the best function
这一步的工作就是要利用梯度下降法,不断迭代,找到符合要求的解。PPT中步骤详细,直接贴上来。
顺便观察下迭代的公式,可以发现逻辑回归和线性回归的迭代公式是相同的。
好,模型的求解讲解完毕。再说一说为何不用square error。
如果采用了logistic regression + square error的方式,那么在第三步中会出现微分值为0的情况,导致参数无法迭代更新。比如下面两个例子。
Cross entropy: 距离目标点越远时,目标值越大,参数更新的越快。
Square error: 当距离目标远时,目标函数对参数的微分值极小,参数更新速度很慢,不容易得到结果。
下图形象地展示了这一点。
判别式模型与生成式模型(Discriminative v.s. Generative)
这一小节讲述的logistic regression属于判别式模型(Discriminative);上一节中利用高斯分布描述数据的联合概率的方法求解model属于生成式模型(Generative)。
两种求解模型的方法各有优劣,在此小节的问题中判别式模型的准确率更高。
那生成式模型的优势见下图。
之前讨论的都是二分类问题,如果遇到多分类问题,以三分类为例,则需要把sigmod(x)函数改为softmax(x),其公式如下:
softmax(zj)=ezj∑iezi
举例如下:
Logistic Regression的限制
有时会出现无法分类的情况,如下图。
此时需要进行特征变换,但是要找到一个很好的特征变换往往并不容易。
这时候咱们把几个逻辑回归组合起来,其效果相当于特征变换的作用。再加一个逻辑回归当作分类器。整体结构图如下所示。
首先进行特征变换,结果如下。
基于特征变换的结果进行分类,如下图。
注:上图右下中的x,1和x,2画反了。。。
把多个logistic regression串在一起,再换个名字叫Deep Learning,瞬间就潮了许多。就可以去骗麻瓜说我们是在利用深度学习的方法做人工智能,模拟人类大脑的运作~~~