Lecture 1_Extra Logistic Regression

Lecture 1_Extra Logistic Regression

Logistic Regression

逻辑回归建模步骤

Step 1: Function Set

上一篇讲到分类问题的解决方法,推导出函数集的形式为:

image-20220819160600847

将函数集可视化:

image-20220819161242204

这种函数集的分类问题叫做 Logistic Regression(逻辑回归),将它和之前讲到的线性回归简单对比一下函数集(Function Set):

image-20220819161608967

Step 2: Goodness of a Function

image-20220819185343101

将训练集数字化,并且将上图中求 m a x max max 通过取负自然对数转化为求 m i n min min

image-20220819191506638

然后将 − l n L ( w , b ) −lnL(w,b) lnL(w,b) 改写为下图中带蓝色下划线式子的样子:

image-20220819193013131
  • 上图中蓝色下划线实际上代表的是两个伯努利分布( 0 − 1 0-1 01 分布,两点分布)的 cross entropy(交叉熵);
  • 假设有两个分布 p p p q q q,如上图中蓝色方框所示,这两个分布之间交叉熵的计算方式就是公式 H ( p , q ) H(p,q) H(p,q);交叉熵代表的含义是这两个分布有多接近,如果两个分布是一模一样的话,那计算出的交叉熵就是熵;
  • 交叉熵的详细理论可以参考《Information Theory》(信息论)。

下面再拿逻辑回归和线性回归作比较,这次比较损失函数:

image-20220820110122839

此时直观上的理解:如果把 f u n c t i o n function function 的输出和 t a r g e t target target(算出的 f u n c t i o n function function 和真实的 y ^ n \hat{y}^n y^n)都看作是两个伯努利分布,所做的事情就是希望这两个分布越接近越好。

Step 3: Find the best Function

利用梯度下降法:

image-20220820111513918

要求 − l n L ( w , b ) −lnL(w,b) lnL(w,b) w i w_i wi 的偏微分,只需要先算出 l n f w , b ( x n ) lnf_w,_b(x^n) lnfw,b(xn) w i w_i wi 的偏微分以及 l n ( 1 − f w , b ( x n ) ) ln(1−f_w,_b(x^n)) ln(1fw,b(xn)) w i w_i wi 的偏微分。计算 l n f w , b ( x n ) lnf_w,_b(x^n) lnfw,b(xn) w i w_i wi 偏微分, f w , b ( x ) f_w,_b(x) fw,b(x) 可以用 σ ( z ) \sigma{(z)} σ(z) 表示,而 z z z 可以用 w i w_i wi b b b 表示,所以利用链式法则展开。

计算 l n ( 1 − f w , b ( x n ) ) ln(1−f_{w,b}(x^n)) ln(1fw,b(xn)) w i w_i wi 的偏微分,同理求得结果:

image-20220820144628139

将求得两个子项的偏微分带入,化简得到结果:

image-20220820145137407

现在 w i w_i wi 的更新取决于学习率 η \eta η x i n x^n_i xin 以及上图的紫色划线部分;紫色下划线部分直观上看就是真正的目标 y n y^n yn 与我们的 f u n c t i o n function function 的输出差距有多大。

下面再拿逻辑回归和线性回归作比较,这次比较如何挑选最好的 f u n c t i o n function function

image-20220820145552801

对于逻辑回归, t a r g e t target target y n y^n yn 0 0 0 或者 1 1 1,输出是介于 0 0 0 1 1 1 之间。而线性回归的 t a r g e t target target 可以是任何实数,输出也可以是任何值。

损失函数:为什么不学线性回归用平方误差?

image-20220820150257694

考虑上图中的平方误差形式。在 s t e p   3 step\ 3 step 3 计算出了对 w i w_i wi 的偏微分。假设 y n = 1 y^n=1 yn=1,如果 f w , b ( x n ) = 1 f_w,_b(x^n)=1 fw,b(xn)=1,就是非常接近 t a r g e t target target,会导致偏微分中第一部分为 0 0 0,从而偏微分为 0 0 0,这样是合理的;而 f w , b ( x n ) = 0 f_w,_b(x^n)=0 fw,b(xn)=0,就是距离 t a r g e t target target 还很远,会导致第二部分为 0 0 0,从而偏微分也是 0 0 0,这样是不合理的。 y n = 0 y^n=0 yn=0 时也存在上述情况。

image-20220820150946539

如果是交叉熵,距离 t a r g e t target target 越远,微分值就越大,就可以做到距离 t a r g e t target target 越远,更新参数越快。而平方误差在距离 t a r g e t target target 很远的时候,微分值非常小,会造成移动的速度非常慢,这就是很差的效果了。

判别模型 v.s. 生成模型(Discriminative v.s. Generative)

逻辑回归的方法称为 Discriminative(判别) 方法;上一篇中用高斯来描述后验概率,称为 Generative(生成) 方法。它们的函数集都是一样的:

image-20220820152037421

如果是逻辑回归,就可以直接用梯度下降法找出 w w w b b b;如果是概率生成模型,像上篇那样求出 μ 1 , μ 2 μ^1,μ^2 μ1,μ2 ,协方差矩阵的逆 Σ − 1 \varSigma^{-1} Σ1,然后就能算出 w w w b b b。用逻辑回归和概率生成模型找出来的 w w w b b b 是不一样的。那么,哪一个会更好呢?

image-20220820152608890

上图是前一篇的例子,图中画的是只考虑两个因素,如果考虑所有因素,结果是逻辑回归的效果好一些。

有趣的例子

image-20220820153051138

上图的训练集有 13 13 13 组数据,类别 1 1 1 里面两个特征都是 1 1 1,剩下的 ( 1 , 0 ) ,   ( 0 , 1 ) ,   ( 0 , 0 ) (1,0),\ (0,1),\ (0,0) (1,0), (0,1), (0,0) 都认为是类别 2 2 2;然后给一个测试数据 ( 1 , 1 ) (1,1) (1,1),它是哪个类别呢?人类来判断的话,不出意外基本都认为是类别 1 1 1。下面看一下朴素贝叶斯分类器(Naive Bayes)会有什么样的结果。

image-20220820154702096

计算出 P ( C 1 ∣ x ) P(C_1|x) P(C1x) 的结果是小于 0.5 0.5 0.5 的,即对于朴素贝叶斯分类器来说,测试数据 ( 1 , 1 ) (1,1) (1,1) 是属于类别 2 2 2 的,这和直观上的判断是相反的。其实这是合理,实际上训练集的数据量太小,但是对于 ( 1 , 1 ) (1,1) (1,1) 可能属于类别 2 2 2 这件事情,朴素贝叶斯分类器是有假设这种情况存在的(机器“脑补”这种可能性)。所以结果和人类直观判断的结果不太一样。

判别方法不一定比生成方法好

image-20220820160108183

多类别分类(以三类为例)

Softmax

下面看一下多类别分类问题的做法,具体原理可以参考《Pattern Recognition and Machine Learning》Christopher M. Bishop 著 ,P209-210。

假设有 3 3 3 个类别,每个都有自己的 w e i g h t weight weight b i a s bias bias

image-20220820160706730
  • z 1 , z 2 , z 3 z_1,z_2,z_3 z1,z2,z3 放到一个叫做 S o f t m a x Softmax Softmax 的方程中, S o f t m a x Softmax Softmax 做的事情就是它们进行 exponential(指数化),将 exponential 的结果相加,再分别用 exponential 的结果除以相加的结果;
  • 原本 z 1 , z 2 , z 3 z_1,z_2,z_3 z1,z2,z3 可以是任何值,但做完 S o f t m a x Softmax Softmax 之后输出会被限制住,都介于 0 0 0 1 1 1 之间,并且和是 1 1 1 S o f t m a x Softmax Softmax 做事情就是对最大值进行强化。

S o f t m a x Softmax Softmax 的输出就是用来估计后验概率(Posterior Probability)。为什么会这样?下面进行简单的说明:

  • 假设有 3 3 3 个类别,这 3 3 3 个类别都是高斯分布,它们也共用同一个协方差矩阵,进行类似上一篇讲述的推导,就可以得到 S o f t m a x Softmax Softmax
  • 信息论学科中有一个 Maximum Entropy(最大熵)的概念,也可以推导出 S o f t m a x Softmax Softmax。简单说信息论中定义了一个最大熵。指数簇分布的最大熵等价于其指数形式的最大似然界。二项式的最大熵解等价于二项式指数形式 (sigmoid) 的最大似然,多项式分布的最大熵等价于多项式分布指数形式 (softmax) 的最大似然,因此为什么用 sigmoid 函数,那是因为指数簇分布最大熵的特性的必然性。假设分布求解最大熵,引入拉格朗日函数,求偏导数等于 0 0 0,直接求出就是 sigmoid 函数形式。还有很多指数簇分布都有对应的最大似然界。而且,单个指数簇分布往往表达能力有限,就引入了多个指数簇分布的混合模型,比如高斯混合,引出了 EM 算法。像 LDA 就是多项式分布的混合模型。

定义 target

image-20220820174847110

上一篇讲到如果定义类别 1 1 1 y 1 ,   y 1 ^ y_1,\ \hat{y_1} y1, y1^,类别 2 2 2 y 2 ,   y 2 ^ y_2,\ \hat{y_2} y2, y2^,类别 3 3 3 y 3 ,   y 3 ^ y_3,\ \hat{y_3} y3, y3^,这样会人为造成类别 1 1 1 和类别 2 2 2有一定的关系这种问题。但可以将 y ^ \hat{y} y^ 定义为矩阵,这样就避免了。而且为了计算交叉熵, y ^ \hat{y} y^ 也需要是个概率分布才可以。

逻辑回归的限制

image-20220820175930833

考虑上图的例子,两个类别分布在两个对角线两端,用逻辑回归可以处理吗?

image-20220820180030578

这里的逻辑回归所能做的分界线就是一条直线,没有办法将红蓝色用一条直线分开。

特征转换(Feature Transformation)

image-20220820180500842

特征转换的方式很多,举例类别 1 1 1 转化为某个点到 ( 0 , 0 ) (0,0) (0,0) 点的距离,类别 2 2 2 转化为某个点到 ( 1 , 1 ) (1,1) (1,1) 点的距离。然后问题就转化右图,此时就可以处理了。但是实际中并不是总能轻易的找到好的特征转换的方法。

级联逻辑回归模型(Cascading logistic regression models)

image-20220820181018566

可以将很多的逻辑回归接到一起,就可以进行特征转换。比如上图就用两个逻辑回归 对 z 1 , z 2 z_1,z_2 z1,z2 来进行特征转换,然后对于 x 1 ′ , x 2 ′ x_1^{'},x_2^{'} x1,x2,再用一个逻辑回归 z z z 来进行分类。

对上述例子用这种方式处理:

image-20220820181406551

右上角的图,可以调整参数使得得出这四种情况。同理右下角也是

image-20220820181436158

这样的转换之后,点就被处理为可以进行分类的结果。

image-20220820181748810

一个逻辑回归的输入可以来源于其他逻辑回归的输出,这个逻辑回归的输出也可以是其他逻辑回归的输入。把每个逻辑回归称为一个 Neuron(神经元),把这些神经元连接起来的网络,就叫做 Neural Network(神经网络)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值