Logistic Regression part 2

ML 的第一个步骤:

Step 1: Function Set for Posterior Probability

上一章我们已经设置了函数,就是寻找机率的问题,
如果机率大于0.5,我们就说该点在C1, 如果机率小于0.5, 该点就在C2。
如果机率函数是高斯分布的,我们就用sigmoid方程,如下图

其中 w是Vector,方程中每个xi 都有一个 wi,然后带入方程,就可以求出sigmoid方程的机率。


step1 .png

基本上整个模型就是下图形式,这个就是 Logistic Regression 方程的model


sigmoid.png

Logistic Regression 和 Linear Regression

sigmoid 方程的 output 肯定是介于(0,1),而 Linear Regression output 可以是任何值,这就是两个model的区别
different.png

接下来Step 2,评价函数好坏。对训练数据(x1,C1)(x2,C1)(x3,C2)……用y^=1 表示C1,用y^=0 表示C2。那么似然函数可以表示为


交叉熵.png

交叉熵代表两个机率函数p,q有多接近。若两个分布完全一样则交叉熵等于0。

这样就得到了逻辑回归Logistic Regression与线性回归Linear Regression在Step 2(评价函数好坏)时的区别
step2.png

Step3:找出最好的function,我们用 Gradient Descent,首先求偏导数,然后用Gradient Descent 来update。得出如下图中参数公式


step3.png

为什么Logistic Regression 不能用 Square Error?

如果用平方误差损失,在计算损失函数对参数的微分时会出现如下情况
20170408151302743.png

说明,在结果 far from target 时,微分很小。 需要update很多很多次才可以到 target,或者直接卡住。
为了更形象的说明问题,将交叉熵损失/平方误差损失与参数之间的关系画出


20170408151625544.png

判别方法 v.s. 生成方法 Discriminative vs Generative
两个函数的表达形式是一样的,但是判别方法的直接找到 w 和 b 与生产方法的 先求 u 和 E 然后再求出 w 和 b, 两组的 w 和 b 会一样吗?是不一样的,而且判别方法比较好,因为生成方法对概率分布做了假设。


accuracy.png

20170408153606883.png

朴素贝叶斯的结果是Class 2。

生成模型在一些情况下相对判别模型是有优势的:
1、训练数据较少时。判别模型的表现受数据量影响较大,而生成模型受数据量影响较小。
2、label有噪声时。生成模型的假设(“脑补”)反而可以把数据中的问题忽视掉。
3、判别模型直接求后验概率,而生成模型将后验概率拆成先验和似然,而先验和似然可能来自不同来源。以语音识别(生成模型)为例,DNN只是其中一部分,还需要从大量文本(不需要语音)中计算一句话说出来的先验概率。

Multi-class Classification

在做Multi-class Classification时,需要softmax。原因可参考Bishop P209-210,或Google “maximum entropy”。
最小化交叉熵,等价于最大化似然函数


20170408155736195.png

Limitation of Logistic Regression 局限性

如果feature如下图所示,那么很难找到一条直线才分类他们。
limit.png

那我们怎么做呢?

我们做Feature Transformation 如下图,
transform.png

但是这样做就不是机器学习了,所以我们还有其它的办法,就是我们可以多设置几个feature transformation model,然后得到另外的一组feature,然后在分类


add feature.png

一个Logistic Regression的input可以是其它Logistic Regression的output;一个Logistic Regression的output可以是其它Logistic Regression的input。这样,我们就得到了Neural Network,其中每个Logistic Regression叫做一个Neuron.
Neural.png

你可能感兴趣的:(Logistic Regression part 2)