逻辑回归(Logistic Regression)学习笔记

本文是b站上李宏毅老师课程的学习笔记,想看视频的同学可去b站直接搜索。

逻辑回归(Logistic Regression)

  • 逻辑回归模型如下

逻辑回归(Logistic Regression)学习笔记
 
 
  • 寻找最好的模型

假设现在有两个类别C1和C2,则对以下的训练集进行分类,可以得到的结果如下。其中x3属于C2,则X3的概率为1减去它属于C1的概率,因为f(x)计算的是属于C1的概率。能够使得概率最大化的参数是W*和b*。
逻辑回归(Logistic Regression)学习笔记
 
上图最后的式子取对数后,找概率最大时的参数,就是取反后找概率最小时的参数。
逻辑回归(Logistic Regression)学习笔记
我们在此设置当训练集在C1中是取逻辑回归(Logistic Regression)学习笔记为1,当数据属于C2时取值为0。则上图中的式子可以变成如下中的结果。
逻辑回归(Logistic Regression)学习笔记
 
假设现在有两个Distribution p和q,cross entropy代表着两个分布有多接近。计算两个分布cross entropy就是带入H(p,q)的函数表达式中。如果p和q一模一样的话,那么计算出来的cross entropy就是0。详情如下图所示:
逻辑回归(Logistic Regression)学习笔记
  • 第三步就是找一个最好的function,使得-lnL最小化。

方法就是使用梯度下降,计算它对wi的偏微分。计算lnL对w的偏微分只需要计算中括号里蓝色部分对wi的偏微分即可。计算方法如下图所示。
逻辑回归(Logistic Regression)学习笔记
上图下面是对红框框内的计算。红框框内表达式的分子是一个复合函数。红框框上面是计算的结果。
下图是对右边红框框内计算偏微分,上面是结算的结果,整个图片的结构和上图的结构一样。
逻辑回归(Logistic Regression)学习笔记
下图中最下面紫色划线处代表当前模型结果与理想结果之间的差距,如果差距越大,则参数的update的跨度越大。最下面的表达式是参数的update。
逻辑回归(Logistic Regression)学习笔记
以下是对逻辑回归和线性回归的比较,逻辑回归的函数值使用了sigmiod来映射在0和1之间。所以它的理想函数值也是在这个范围内。而线性回归的函数值可以是任何值。
 
逻辑回归(Logistic Regression)学习笔记
 

Generative   vs   Discriminative

生成模型(generative model)和判别模型(discriminative model)的比较
 
现在假设有一些训练集,那么测试下面测试集属于C1的概率。所以如果使用逻辑回归(Logistic Regression)学习笔记来测试的测试集会显示下面的测试集是属于C2的,因为属于C1的概率小于0.5。因为在逻辑回归(Logistic Regression)学习笔记中,它会假设每一个特征的产生是相互独立的。
逻辑回归(Logistic Regression)学习笔记在数据量比较小的情况下,Generative模型的性能比Discriminative模型性能好,当数据量增大的时候,Discriminative的性能会超过Generative模型。
 
逻辑回归(Logistic Regression)学习笔记

接下来举一个多分类的例子

假设现在有三个分类,C1、C2、C3,他们有各自的weight和bias,w1、w2、w3和b1、b2、b3。接下来输入要分类的对象x,得到z1、z2、z3。此时他们可以是任何值,接下来对z1、z2、z3做softmax,做完后他们的结果会被限制到0-1之间,同时他们的数值和是1.
逻辑回归(Logistic Regression)学习笔记
如果x输入三个不同的分类,分别用下图中的向量来表示。下图中右边的式子是计算两个向量的cross entropy的方法。
 
逻辑回归(Logistic Regression)学习笔记
 

逻辑回归的限制性

逻辑回归在二分类上的边界只能是一条直线。因此无法将下图中蓝色的点和红色的点分到一边。
逻辑回归(Logistic Regression)学习笔记
解决方法是我们可以做一个特征转移。通过计算两个点的距离来表示分类。下图中x’代表转换后的特征。
逻辑回归(Logistic Regression)学习笔记
具体的步骤如下:前面先做特征转换,后面再做分类。
逻辑回归(Logistic Regression)学习笔记