台大李宏毅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 ,瞬间就潮了许多。就可以去骗麻瓜说我们是在利用深度学习的方法做人工智能,模拟人类大脑的运作~~~