逻辑回归原理
1 逻辑回归简介
logistic回归(LR),是一种广义的线性回归分析模型,常用于数据挖掘,疾病预测,经济预测等方面。
优点:计算代价低,思路清晰易于理解和实现;
缺点:它是一个线性的分类器,不使用额外策略,处理不来非线性问题(线性分类器的通病),容易欠拟合,分类精度可能不高。
逻辑回归是一个名为回归实为分类的经典算法,他的模型如下:
对于一个输入向量,输出一个0-1的概率值,表示其为正例的概率。这个函数也叫Sigmoid函数,其中z又等于,其实它是x的一个线性函数,所以说它是一个广义的线性回归函数,其实说的就是这里z和x的关系,y的x并不是线性的,但是z和x是线性的,z和y之间是单调的。我们所说的输入特征向量就是x,输出的y是一个0-1的值,那么表示的就是一个样本为正例的概率。这里的向量默认为列向量,转置之后就是行向量。
逻辑回归的整个表达式,输入特征向量x,首先经过一个线性变换变成z,然后在根据Sigmoid计算得到y值,最后得到预测结果
1.1 线性变换过程
一般来说在二维空间下线性变化是kx+b,对于这里也是一样,系数矩阵乘以特征向量再加一个常数,才是一个完整的线性变化,如下。一般来说,可以写成下面的方式,把b乘以1,就可以变成后面矩阵的变化情况,那么接下来b可以不写,因为把b丢到w里面,后面也都是这样表达的
为了方便,不写b就变成下面公式,其实是有b的不过在这省略了
1.2 Sigmoid函数
Sigmoid函数如上图,它的定义域是-∞到+∞,其实z可以随便给,值域是0到1,在输入为0的时候,y值是0.5.它的目的就是把经过线性变换之后的处于-∞到+∞之间的一个数映射到0-1之间。
其实为了映射到0-1之间还有其他很多函数,如单位阶跃函数,为什么使用Sigmoid函数呢?核心问题是单位阶跃在0这里不可导,后面计算很复杂,而Sigmoid后面推倒非常容易。
1.3 小总
逻辑回归模型,就是每个特征的回归系数,即,也就是说有训练集就为为了算出W是多少能够和数据的拟合度最高。
逻辑回归的性质:是线性分类器,如果不加特殊处理是无法解决非线性问题的
建模过程:通过数据集,计算出“最合适”的系数向量,越合适拟合度越高(最合适也可以理解为是错误概率最低的情况)
应用:
2 极大似然估计原理
假设有箱子甲和乙,甲箱子8个红色的球和1个蓝色的球,乙箱子有8个蓝色的球和1个红色的球,那么从这两个箱中随机选一个箱子,不管选什么都是8比1的关系,然后从选择之后的箱子再随机抽一个,假设抽到的是蓝色的,那么要估计这个球是甲还是乙箱子的。其实这是一个根据数据和结果推倒中间参数的过程,来自乙箱的概率为
极大似然估计(Maximum likelihood):利用已知的样本和结果,反推最有可能导致这样结果的参数值
2.1 极大似然数学表达式的逻辑推理
利用实验结果D={x1,x2...,xn}得到某个参数值θ,使样本出现的概率最大。似然函数如下
L就是loss损失的意思,等于在θ条件下出现D的概率,其中D是这些事件的集合,假设各个事件都是独立的,这里就可以变成一个连乘,那就用∏表示。
那么极大似然函数就是根据似然函数求解argmax(L(θ)),其中使他得到最大的θ,就是似然估计要得到的结果
2.2 例子
设样本服从正态分布N(μ,σ²),用似然法估计参数
所以这里是强假设的,在这个条件之上,我们就要计算它的参数,估计的参数就是μ和σ²。步骤如下:
①建立(对数)似然函数
因为连乘对我们是不友好的,所以要求他的对数。似然函数是关于μ,σ²的函数,定义和前面一样,对于某个样本而言,他属于真实样本的乘积,意思就是希望每一个样本都属于真实值的概率是最大的,所以对于每一个概率都要连乘,连乘的内容就是在给定参数的条件下属于真实样本的概率。连乘内部的这一项其实就是正态分布的概率密度函数,因为连乘对我们是不友好的,所以要求他的对数。
在知道了对数似然之后就要对其极大值求解,这里其实有两个参数μ和σ²,xi是通过采用或者调研得到的是已知的,n是样本量也是已知参数
②求解使似然函数最大的参数,也就是结果
其实就是求导,并且导函数等于0。关于μ的导函数推倒如下:其中第一项和μ是没有任何关系的求导就没了,后面的一项分母和μ也没关系,分子和μ有关系,其实也就是多项式,把2拿下来,负号拿下来就变成-2倍的后一项,-和-相抵,2和分母的2相抵。关于σ²的导函数如下
这时候就可以求出μ和σ²
3 用极大似然建立损失函数
3.1 求极大似然依赖的概率
前面说了极大似然是一个概率,然后根据那个概率逐步推倒,逻辑回归能用极大似然就要找出概率函数,概率是在最后一步产生的,比如输入的特征向量为两个维度的,经过线性变换,然后在根据Sigmoid计算得到y值,y值的含义就是这个样本属于类别1的概率是多少,y是0-1之间的,y越大说明属于正样本的概率越高。
既然逻辑回归用极大似然建立损失函数,而极大似然依赖概率,那么既然这里找到了这个概率,就可以利用这个概率建立损失函数,上图的0.09和0.79就是概率。用数学公式写出来就如下
给定一个输入x,那么输出标签为1的概率就是逻辑回归这个模型的函数,其中对于一个任意输入x,这个结果就是输出标签为1的值,把他化简如下:
在给定x的条件下,标签为1的概率,把它定义成φ(z)其他表示方式h(z)等。同样对于输入x输出标签为0的概率如下图
把上面两个表达式合并,那就是给定了某个x,它的标签属于它自己真实标签的概率,因为这里面分别是1和0,我们并不知道它的真实的标签是什么,那么给定x,它属于它真实的标签的概率就如下:
假定x是属于类别1的,yi就等于1,任何数的0次方就能与1,只有φ(z),所以是正确的,反之x属于类别0也是一样的推理。所以这个表达式表示该样本属于真实标签的概率,就和似然的定义吻合了,那么有了这个表达式就可以用它建立似然函数。
3.2 用极大似然建立损失函数
逻辑回归中极大似然规律是:最大化每个样本属于真实标签的概率,采用似然估计就是如下表达式
这里的变量是W系数向量所以是L(w),它等于每一个样本属于真实标签的概率的连乘,就是大家都属于真实标签的概率,当然这里有假设各个样本都是独立互不影响的,其中P概率这一项上面已经推倒出来了。所以这个函数就是逻辑回归的损失函数,而且是用极大似然建立的,接下来就是求他的最大值。连乘对我们很不友好,一般在优化问题的求解过程中连乘是非常难计算的,就用对数极大似然,一般这是通用的套路,就是求它的log,再一般一点大写的L表示连乘状态下的极大似然,而小写的l表示对数极大似然,那么这里就得到如下表达式,其中这里选的是自然对数ln,求对数,连乘就边和连续求和,指数项拿下来变成系数项。
这个函数看起来就对我们友好很多了。我们讲极大似然,一般建立似然之后要求极大值,就是要找出这里面的参数对它求偏导。
那么接下来要做的事情就是把上图使右边的求和项最大的w的值,那么关于这个表达式的通用写法采用梯度上升法,最大化对数似然函数。前面正太分布的例子直接求偏导,那是因为逻辑回归他的表达式求解过程会非常复杂而且是很难计算的,那这种场景一般采用梯度上升求解最大值,一般梯度上升很容易求导局部最优。其实其他书上的梯度下降法和它正好相反,就是把l(w)变成-l(w),就变成最小化似然函数,就变成梯度下降了。他们的最终结果是一样的,所以不影响推倒。
3.3 梯度相关知识
梯度:就是一个方向向量,表示某一函数在某点处沿着该方向(梯度的方向)最快。因为是方向向量那么就依赖某一个函数,某一个函数的某一个点的向量似然是不同的,那这个梯度表示的是这个函数在这个点的梯度的方向变化率最大,变化速度最快。
假设一座山的海拔与坐标关系为f(x,y),且处处可导,等高线如下图
这个图表达了海拔与坐标的关系,对于p0而言,其变化率最快的方向是p0p1这个向量,那么这个向量就是函数f(x,y)在p0点的梯度。对于p1而言,p1p2这个向量的方向是上升最快的。也就是说梯度并不是固定的某一个方向,随着某个点的变化是在变化的。
梯度在数学表达式中中记为grad(x,y),定义式如下:
梯度在数学用反三角表达,表达的是一个方向向量,那么他是函数在这个点下方向向量的值,其中梯度求解的方式就是求偏导。
举例如下:
4 用梯度上升(梯度下降)最优化参数求解
前面已推倒出逻辑回归的对数似然如下:
我们的目的就是要求解参数w其中w=argmax(L(W)),就是说使其w最大的就是我们要求解的。一般通用的方法是计算损失函数关于参数向量的每个Wi的偏导,之后连列方程组,并且另他等于0对其进行求解,如下:
这个对于逻辑回归是非常难求解的,为了简化计算参数梯度上升方式求解,方法如下:
①首先随机初始化一个回归系数向量w,②之后重复的迭代,对于每次迭代,计算当前点下的梯度,之后在计算w+α*梯度,α是个入参可以随便给,这个w是当前情况下的w值,然后梯度是变化率最快的那个方向,这里α*梯度表示的是一个步长。(可以理解为在一个山腰上,发现沿着这个方向走能最快上山,那么α表示走一步的步长,)不能走太多,因为梯度方向一直在变,走一小步之后会有一个新的w,用这个新的w更新旧的w,之后再去迭代。
4.1 公式推导过程
损失函数如下:
这是关于w的函数,等号右边w包含在了Zi里面,因为z是w的一个线性变化。把φ(z)和1-φ(z)带进去
梯度上升法的求解过程就是求梯度再去更新参数。求解l关于w的偏导,求和还是求和
其中这一项就是逻辑回归的表达式,而yi是xi的真实的标签,而逻辑回归的输出就是预测值,所以一减就是真实的误差。
逻辑回归伪代码如下:
首先把所有变量导进来,,然后初始化w随便初始化给全0或全1都可以,然后alpha是个入参就是每次跨的步长(学习率),接下来就是重复迭代,对于迭代循环每次要做的事就是第一步求解梯度,第二步更新参数,第三步更新w。
5 最大熵模型
最大熵模型的定义:假设满足所有约束条件的模型集合为c,定义在条件概率P(Y|X)上的条件熵为
则模型集合c中条件熵最大的模型称为最大熵模型。因为与逻辑回归形式类似,又称为对数线性模型
最大熵原理:在所有可能的概率模型中,熵最大的模型最好。
假设离散随机变量X的概率分布为P(x),那么熵为
就是对所有P(x)*logP(x)求和再加一个符号
熵的取值范围为,他肯定是一个正数,代表的是一个信息量,一般来说信息量越大的值,熵是越大的,信息量越小熵越小。
举例:假设有一场中国对战巴西的足球赛,假设两对正常发挥,其实这个事情本身对于结果是没有太多信息量的。根据经验中国足球实例较弱,因为我们都知道两对实力有相差,我们胜的机会比较低,而相反输的记录较高。所以这个随机变量的结果胜平负,那么他的熵是非常小的可以简单估算,假设胜的几率是10%,平10%,输80%,所以H(P)的值非常低。所以在这种没有信息量的事件他的熵比较小。反过来看英法两国比赛旗鼓相当,所以事情很难明确有人知道,那么他们的信息量就比较多,假设胜的几率是30%,平40%,输30%.这样求出来的熵值就比较大,相比中巴的大很多。
简单来说,对于随机变量来说,如果他的每个可选择的可能性越趋近于等概率,他的熵就越大,相反越不趋近于等概率,那么他的熵就会越小,其实就是信息量。等概率就是我们不知道结果信息量比较大,而不等概率就是这个事情越来越显而易见了,就是信息量比较小。就像1+1等于2我们都知道就没有信息量。