一、首先介绍Logistic Regression的过程。

step 1: Function Set:

不同的w、b,决定不同的Function

【李宏毅 深度学习】Logistic Regression

【李宏毅 深度学习】Logistic Regression

Step 2: Goodness of a Function

????∗,????∗就是使L(w,b)最大化的一组,????。

【李宏毅 深度学习】Logistic Regression

取对数,化简。

划线部分是“两个伯努利分布之间的交叉熵”。

【李宏毅 深度学习】Logistic Regression

Step 3: Find the best function

求红框中式子分别求偏微分,来找最好的function。

【李宏毅 深度学习】Logistic Regression

【李宏毅 深度学习】Logistic Regression

【李宏毅 深度学习】Logistic Regression

【李宏毅 深度学习】Logistic Regression

带入,化简:

【李宏毅 深度学习】Logistic Regression

【李宏毅 深度学习】Logistic Regression表示现在的output与目标的差。【李宏毅 深度学习】Logistic Regression是目标,【李宏毅 深度学习】Logistic Regression是现在的output。离目标越远,update的量就应该越大。

【李宏毅 深度学习】Logistic Regression

至此,我们可以对比一下Logistic Regression和Linear Regression。

【李宏毅 深度学习】Logistic Regression

 

二、为什么使用Logistic Regression + Cross Entropy,而不用Logistic Regression + Square Error呢?

来,我们看一个小例子:

【李宏毅 深度学习】Logistic Regression

【李宏毅 深度学习】Logistic Regression

【李宏毅 深度学习】Logistic Regression

下面这个红色的图像,在距离目标很近和很远的地方,偏微分【李宏毅 深度学习】Logistic Regression都等于0。这样,在训练过程中,当【李宏毅 深度学习】Logistic Regression很小的时候,我们就分不清是距离目标值很近还是很远,会出现update十分缓慢的现象。

而如果使用Cross Entropy,像上面黑色的图像,在距离目标值很近的地方,微分值很小,而在距离微分值很远的地方,微分值很大。

 

三、Discriminative V.S. Generative. 两者比较。

两者的Model是一样的,求出w、b,就可以得出各自的Function。

【李宏毅 深度学习】Logistic Regression

两者对于相同的训练数据,求出w,是不相等的。

Discriminative 和 Generative相比较,哪个很好呢?

通常情况下,人们认为Discriminative更好一点。

下面的一个例子(朴素贝叶斯,有13组数据)可以说明:

【李宏毅 深度学习】Logistic Regression

【李宏毅 深度学习】Logistic Regression

【李宏毅 深度学习】Logistic Regression

从结果来看,将Testing Data划分为class1的概率不足0.5,这是“不切实际”的。

然而,Generative Model也有胜出的时候,比如下面的几种情况:

①数据集较小

②数据集本身有缺陷

*③Prior 与 Class-dependent来来源不同时。

【李宏毅 深度学习】Logistic Regression

Generative model和discriminative model的差别在于:

*Generative的model它有做了某些假设,假设data来自于某个概率模型;

*Discriminative的model是完全不作任何假设的。

对于分类的问题(主要是二元分类),我们一般有两种方法去处理问题,一种是Generative的方法,另一种是Discriminative的方法,注意到分类问题的model都是从贝叶斯方程出发的。两种方法的区别在于:

*Generative model会假设一个带参数的Probability contribute,利用这个假设的概率分布函数进行计算,结合极大似然估计法最终得到最优的参数以确定这个model的具体形式。

*DIscriminative model不作任何假设,因此它无法通过假定的Probability distribution得到表达式,因此它使用的是直接去利用交叉熵和gradient descent结合极大似然估计法得到最优的b和w,以确定model的具体形式。

最后,利用得到的P(Ci∣x)P(Ci|x)P(Ci​∣x)与0.5相比较来判断它属于那个class的可能性更大。

*Generative model的好处是,它对data的依赖并没有像discriminative model那么严重,在data数量少或者data本身就存在noise的情况下受到的影响会更小,而它还可以做到Prior部分与class-dependent部分分开处理,如果可以借助其他方式提高Prior model的准确率,对整一个model是有所帮助的(比如语音辨识)。

*而Discriminative model的好处是,在data充足的情况下,它训练出来的model的准确率一般是比Generative model要来的高的。

四、多分类

只讲过程,不说原理。

【李宏毅 深度学习】Logistic Regression

softmax计算过程很简单:求e^z,求和,分别做除。

softmax强化大的值。

【李宏毅 深度学习】Logistic Regression

其中,【李宏毅 深度学习】Logistic Regression页式一个Probability distribution,才能计算Cross Entropy。

然而,Logistic Regression有局限性。下面这种情况,就无法进行分类。

【李宏毅 深度学习】Logistic Regression

如果你非要使用Logistic Regression,也有办法。

一个方法是Feature transformation,但是我们很难找到一个合适的转换。

【李宏毅 深度学习】Logistic Regression

另一种方法是,将多个Logistic Regression连接起来。

【李宏毅 深度学习】Logistic Regression

【李宏毅 深度学习】Logistic Regression

【李宏毅 深度学习】Logistic Regression

把每一个Logistic Regression叫做一个"Neuron",整个的链称为“Neuron Network(类神经网络)”,这个东西就称为【深度学习】。

【李宏毅 深度学习】Logistic Regression

相关文章: