第五周学习周报

目录

摘要

Abstract

Logistical  Regression

模型训练过程

Logistic Regression与Linear Regression之间的区别

Logistic Regression+Square Error

多分类

逻辑回归的限制

总结


摘要

本周在之前学习基础上引申出用于解决二分类问题的逻辑回归,Logistical Regression的三步骤以及交叉熵损失,分析判别(discriminate)模型和生成(generative)模型两者的特点以及区别,总结逻辑回归的限制,采用transformation方法解决二分类问题,以及引出了神经网络。

Abstract

This week, based on previous learning, we extend the logistic Regression, the three steps of Logistical Regression and cross entropy loss to solve the binary classification problem, analyze the characteristics and differences between the discrimination model and the generative model, and summarize the limitations of logistic regression. transformation method was adopted to solve the binary classification problem, and the neural network was introduced.

Logistical  Regression

模型训练过程

1.Function Set

第一步先找到一个模型集合,是个概率模型,最后可以转化为sigmoid函数,即逻辑回归=线性回归+sigmoid函数。输入是一个线性函数,如果结果大于等于0.5,则认为是类1,否则是类2;

用图像化的方式表示如图所示,每个特征x都有一个权重,然后加上bias,输入到sigmoid函数里,得到0到1的概率值。

2.Goodness of a Function

在Logistical Regression,怎么定义一个函数的好坏呢?

假设有N组Training Data,每组属于一个Class,总共有两种Class。通过几率模型去计算某一组w和b

假设我们的数据都来自后验概念模型,那怎么样的后验模型能生成这样的数据呢,也即每一个样本来自这个模型的概率乘积最大,这里假设我们的样本是独立同分布的,因此有得到:

找到一组w和b,使得最大似然值最大,即:

将class1设为1,class2设为0,统一格式,打上0和1的 标签,将式子进一步改写,求最大可以转换为求最小的Loss Function的负对数,利用对数将乘法换成加法。

Loss Function等于Training Data 中的数据X的Cross entropy(交叉熵)的总和,交叉熵实际上表达的是希望这个function的output和它的target越接近越好,如果p和q的distribution一模一样的话,那么计算出来的Cross entropy就是0。

3.Find the best function

Logistic Regression与Linear Regression之间的区别

在Function Set中,两者产生的模型不一样,Logistic Regression是在Linear Regression基础上进行Sigmoid Function,因此它的值一定是介于0到1之间的。而Linear Regression的值可以是任何值。

Logistic Regression与Linear Regression Gradient Descent 中update的方式是一样的,区别只有Logistic Regression中的f函数的值是在0到1之间,而Linear Regression中的f函数的值可以是任何值。

Logistic Regression+Square Error

Logistic Regression 可以加上Square Error吗?加上会有什么影响吗?

(1)利用model计算指定参数的输出;

(2)通过Training Data计算Loss Function,其中目标值为1代表class1,目标值为0代表class2;

(3)计算Loss Function对于w的微分,可以发现当目标值不管为1还是为0时,在离目标值近或者远,微分值都为0 。

造成的问题:

对于Cross Entropy来说,当离目标很远的时候,更新的幅度是很大的,可以很快接近目标。但是对于Square Error来说,在离目标很远的时候,从图可以看出来,更新的幅度是很小、变化很平坦的,随机选取一个初始值,微分的值很小就需要做很多步才能接近目标值,update速率很慢就很容易卡住不动了。并且在算出微分值的时候不知道离目标值远还是近,所以learning rate也不知道应该设大还是小。

Logistic Regression的方法我们可以称之为Discriminative方法,那么Discriminative方法与几率模型Generative方法有什么不一样呢?

1、两者之间的Function Set,也就是Model是一样的,不同的w和b可以得到不同的Function.

2、Logistic Regression是直接给出w和b的值,Generative是利用高斯分布求得,接下来把这些项代入公式计算w和b的值。这两种方法找出来的w和b不会是一样的值,哪一种找出来的w和b更好呢?

通过一组Data测试,其中蓝色代表水系,红色代表火系,只考虑两种特征值时好像差不多,但当考虑多种特征值时,两种方法的测试结果的正确率分别为73%和79%,貌似Discriminative效果更好一点。

那么Discriminative比Generative的准确率更高是绝对的吗?下面通过一个例子说明

在给出的这组Training Data中总共有13组Data,每组Data有两个featurn,一共两个Class,其中Class1占1/13,Class2占12/13。在Class1中X1等于1和X2等于1的概率都为1,在Class2中X1等于1和X2等于1的概率都为1/3,利用朴素贝叶斯来考虑,假设特征值之间都是独立的。

通过直观观察会认为这一组Data应该是属于Class1,但通过几率计算,其属于Class2,这是因为在Training Data中给出的Data不够多,当给出的Data够多的情况下,可能出现两个特征值都为1的Data。Generative与Discriminative差别就在于,它做某种假设,假设该组Data属于某种类型,再通过计算几率来判断是否正确,这种脑部假设好不好却决于数据的多少。而Discriminative是完全依赖给出的Training Data进行判断的,Data越多,正确率会越高,因此在Data数量较少的情况下,Generative比Discriminative正确率更高,且当label有噪声时,生成式模型预判的模型可以将噪声过滤掉,影响较小。

多分类

前面说的都是两组Class,那么两组以上Class的情况怎么做呢?

假设有三组Class,每一组都有自己的w和b,属于一个x(也就是要进行分类的对象),通过公式计算z的值,然后将三个z值进行Softmax。

对最大的值做优化,将z的值e之后,大的值与小的值之间的差距就会被拉得更开,就是强化了大的值,这件事情就叫做Softmax。Softmax的输出值就是用来估计Probability的,因此输入的x属于Class1的几率是0.88,属于Class2的几率是0.12,属于Class3的几率是0,三者之和一定为1。

输出的y可以看成是一个概率分布,我们的真值也是一个概率分布,我们要做的就是让他们的概率分布越小越好,于是可以用到交叉熵,即两个分布的差异。对三种类别进行假设,设为三个线性无关组。

这个多分类的交叉熵其实是极大似然估计转换得到的,也可以理解为极大似然估计就是要找到最像真实分布的预测分布,也就是希望预测分布和真实分布差异小,也就是交叉熵越小越好,就等价于优化交叉熵了。

逻辑回归的限制

对于这四组data,分别为Class1和Class2,假设y>=0.5即为Class1,y<0.5即为Class2,。如果想用Logistic Regression对这两种类型进行分类的话,是完成不了的,为什么呢?

因为Logistic Regression的y只能是一条直线,因此分两个Class的时候,只能在Feature的平面上画一条直线,因此不管怎么画,都不可能将蓝色的和红色的分开在两边

那如果任要使用Logistic Regression来进行分类的话,怎么做呢?

使用Feature Transformation,将feature的值转换为到某一点的距离,距离值作为feature。例如将该点到[0,0]的距离作为第一个特征值,到[1,1]的距离作为第二个特征值。进行Transformation之后可以发现蓝色的点和红色的点可以通过一条直线划分为两个区域。

能够实现划分的transfoemation并不容易找到,怎么让机器自己产生这个transformation呢?

答:将多个Logistic Regression接起来,也就是将一个逻辑回归的输出当成转换后的一个坐标,因此上面的例子我们可以用两个逻辑回归的,刚好转换到两个新坐标上,然后再接一个逻辑回归来进行线性分类。

将feature值从[0,1]变成[0.73 ,0.05],[1,0]变成[0.05 ,0.73],[0,0][1,1]transformation之后都是[0.27 ,0.27],因此可以将红色的点和蓝色的点分开来。

每个Logistic Regression就是一个“Neuron”,把这些Logistic Regression穿起来的Neuron就是“Neuron Network”即神经元网络

总结

逻辑回归是一种广义的线性回归分析模型,用于解决分类问题,尤其是二分类问题。它基于线性回归的概念,但通过使用逻辑函数(或称为Sigmoid函数)将线性模型的输出映射到[0, 1]之间,从而实现对概率的建模。其优点是实现简单,易于理解和实现;计算代价不高,速度很快,存储资源低;模型的可解释性强,能够给出预测结果的概率解释。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值