赞
踩
交叉熵:设p(x)、q(x)是X中取值的两个概率分布,则p对q的相对熵是:
在一定程度上,相对熵可以度量两个随机变量的“距离”,且有D(p||q) ≠D(q||p)。另外,值得一提的是,D(p||q)是必然大于等于0的。
互信息:两个随机变量X,Y的互信息定义为X,Y的联合分布和各自独立分布乘积的相对熵,用I(X,Y)表示:
且有I(X,Y)=D(P(X,Y)||P(X)P(Y))。下面,咱们来计算下H(Y)-I(X,Y)的结果,如下:
逻辑回归本质上是线性回归,只是在特征到结果的映射中加入了一层逻辑函数g(z),即先把特征线性求和,然后使用函数g(z)作为假设函数来预测。g(z)可以将连续值映射到0 和1。g(z)为sigmoid function.
则
sigmoid function 的导数如下:
逻辑回归用来分类0/1 问题,也就是预测结果属于0 或者1 的二值分类问题。这里假设了二值满足伯努利分布,也就是
其也可以写成如下的形式:
对于训练数据集,特征数据x={x1, x2, … , xm}和对应的分类标签y={y1, y2, … , ym},假设m个样本是相互独立的,那么,极大似然函数为:
log似然为:
如何使其最大呢?与线性回归类似,我们使用梯度上升的方法(求最小使用梯度下降),那么
。
如果只用一个训练样例(x,y),采用随机梯度上升规则,那么随机梯度上升更新规则为:
逻辑回归本质上是线性回归,只是在特征到结果的映射中加入了一层逻辑函数g(z),即先把特征线性求和,然后使用函数g(z)作为假设函数来预测。g(z)可以将连续值映射到0 和1。g(z)为sigmoid function.
则
sigmoid function 的导数如下:
逻辑回归用来分类0/1 问题,也就是预测结果属于0 或者1 的二值分类问题。这里假设了二值满足伯努利分布,也就是
其也可以写成如下的形式:
对于训练数据集,特征数据x={x1, x2, … , xm}和对应的分类标签y={y1, y2, … , ym},假设m个样本是相互独立的,那么,极大似然函数为:
log似然为:
如何使其最大呢?与线性回归类似,我们使用梯度上升的方法(求最小使用梯度下降),那么
。
如果只用一个训练样例(x,y),采用随机梯度上升规则,那么随机梯度上升更新规则为:
损失函数:
方式一:修改逻辑回归的损失函数,使用softmax函数构造模型解决多分类问题,softmax分类模型会有相同于类别数的输出,输出的值为对于样本属于各个类别的概率,最后对于样本进行预测的类型为概率值最高的那个类别。
方式二:根据每个类别都建立一个二分类器,本类别的样本标签定义为0,其它分类样本标签定义为1,则有多少个类别就构造多少个逻辑回归分类器
若所有类别之间有明显的互斥则使用softmax分类器,若所有类别不互斥有交叉的情况则构造相应类别个数的逻辑回归分类器。
当数据的特征提取的较好,所包含的信息量足够大,很多问题是线性可分的那么可以采用线性核。若特征数较少,样本数适中,对于时间不敏感,遇到的问题是线性不可分的时候可以使用高斯核来达到更好的效果。
支持向量机为一个二分类模型,它的基本模型定义为特征空间上的间隔最大的线性分类器。而它的学习策略为最大化分类间隔,最终可转化为凸二次规划问题求解。
LR是参数模型,SVM为非参数模型。LR采用的损失函数为logisticalloss,而SVM采用的是hingeloss。在学习分类器的时候,SVM只考虑与分类最相关的少数支持向量点。LR的模型相对简单,在进行大规模线性分类时比较方便。
输入的数据有标签则为监督学习,输入数据无标签为非监督学习。
设空间中两个点为
欧式距离:
曼哈顿距离:
余弦距离:
cos=
切比雪夫距离:max
贝叶斯定理、特征条件独立假设
解析:朴素贝叶斯属于生成式模型,学习输入和输出的联合概率分布。给定输入x,利用贝叶斯概率定理求出最大的后验概率作为输出y。
准确度(Accuracy)
解析:举例,对于二分类问题来说,正负样例比相差较大为99:1,模型更容易被训练成预测较大占比的类别。因为模型只需要对每个样例按照0.99的概率预测正类,该模型就能达到99%的准确率。
在回答自己的模型时,必须要深入了解自己的模型细节以及其中用到知识(如:Bi-LSTM的优点以及与rnn和lstm的对比)的原理。
SVM可以用于解决二分类或者多分类问题,此处以二分类为例。SVM的目标是寻找一个最优化超平面在空间中分割两类数据,这个最优化超平面需要满足的条件是:离其最近的点到其的距离最大化,这些点被称为支持向量。
解析:建议练习推导SVM,从基本式的推导,到拉格朗日对偶问题。
左边为硬间隔;右边为软间隔
解析:不同点在于有无引入松弛变量
目的有两个:一是方便核函数的引入;二是原问题的求解复杂度与特征的维数相关,而转成对偶问题后只与问题的变量个数有关。由于SVM的变量个数为支持向量的个数,相较于特征位数较少,因此转对偶问题。通过拉格朗日算子发使带约束的优化目标转为不带约束的优化函数,使得W和b的偏导数等于零,带入原来的式子,再通过转成对偶问题。
构造一个最优化的超平面在空间中分割数据
根据数据类型选择不同的模型,如Lr或者SVM,决策树。假如特征维数较多,可以选择SVM模型,如果样本数量较大可以选择LR模型,但是LR模型需要进行数据预处理;假如缺失值较多可以选择决策树。选定完模型后,相应的目标函数就确定了。还可以在考虑正负样例比比,通过上下集采样平衡正负样例比。
解析:需要了解多种分类模型的优缺点,以及如何构造分类模型的步骤
分层抽样利用事先掌握的信息,充分考虑了保持样本结构和总体结构的一致性,当总体由差异明显的几部分组成的时候,适合用分层抽样。
M为样本个数,为模型对样本i的预测结果,为样本i的真实标签。
线性回归用来做预测,LR用来做分类。线性回归是来拟合函数,LR是来预测函数。线性回归用最小二乘法来计算参数,LR用最大似然估计来计算参数。线性回归更容易受到异常值的影响,而LR对异常值有较好的稳定性。
生成式:朴素贝叶斯、HMM、Gaussians、马尔科夫随机场
判别式:LR,SVM,神经网络,CRF,Boosting
详情:支持向量机
线性核、多项式核、高斯核。
特征维数高选择线性核
样本数量可观、特征少选择高斯核(非线性核)
样本数量非常多选择线性核(避免造成庞大的计算量)
详情:支持向量机
单一的分类方法主要包括:LR逻辑回归,SVM支持向量机,DT决策树、NB朴素贝叶斯、NN人工神经网络、K-近邻;集成学习算法:基于Bagging和Boosting算法思想,RF随机森林,GBDT,Adaboost,XGboost。
当样本的特征很多且维数很高时可考虑用SVM的线性核函数。当样本的数量较多,特征较少时,一般手动进行特征的组合再使用SVM的线性核函数。当样本维度不高且数量较少时,且不知道该用什么核函数时一般优先使用高斯核函数,因为高斯核函数为一种局部性较强的核函数,无论对于大样本还是小样本均有较好的性能且相对于多项式核函数有较少的参数。
核函数隐含着一个从低维空间到高维空间的映射,这个映射可以把低维空间中线性不可分的两类点变成线性可分的。
对偶将原始问题中的约束转为了对偶问题中的等式约束,而且更加方便了核函数的引入,同时也改变了问题的复杂度,在原始问题下,求解问题的复杂度只与样本的维度有关,在对偶问题下,只与样本的数量有关。
ID3决策树优先选择信息增益大的属性来对样本进行划分,但是这样的分裂节点方法有一个很大的缺点,当一个属性可取值数目较多时,可能在这个属性对应值下的样本只有一个或者很少个,此时它的信息增益将很高,ID3会认为这个属性很适合划分,但实际情况下叫多属性的取值会使模型的泛化能力较差,所以C4.5不采用信息增益作为划分依据,而是采用信息增益率作为划分依据。但是仍不能完全解决以上问题,而是有所改善,这个时候引入了CART树,它使用gini系数作为节点的分裂依据。
SVM只和分类界限上的支持向量点有关,换而言之只和局部数据有关。
因为将泰勒展开式代入高斯核,将会得到一个无穷维度的映射。
SVM推导:
支持向量机是一种二分类模型,他的基本想法就是基于训练集和样本空间中找到一个最好的划分超平面,将两类样本分割开来,首先你就要知道什么样的划分发才能称为“最”好划分
看上图,二维平面上有两类样本,一类是用‘+’表示,另一类用‘-’表示,那么中间那几条划分线每条都能将两类样本分割开来,但我们我们一眼就注意到中间那条加粗的划分超平面,似乎他是最好的,因为两类的样本点都离他挺远的,专业点说就是该划分超平面对训练样本局部扰动的‘容忍’性最好。好,这还只是个二维平面,我们可以通过可视化大概寻找这样一个超平面,但如果三维,四维,五维呢,我们必须用我们擅长的数学去描述它,推导它。
在样本空间中,划分超平面可用表示,记为(w,b),样本点(xi,yi)到划分超平面的函数间隔为
,几何间隔为:
若,可知函数间隔和几何间隔相等,若超平面参数w,b成比例的改变(超平面没有变),则函数间隔也是成比例的改变,而几何间隔不变。
支持向量机的基本想法就是求解能够正确划分训练数据集并且几何间隔最大的分离超平面,表达为数学公式即为:
其实函数间隔的取值并不影响最优化问题的解,假设将w和b成倍的改变为aw,ab,那么函数间隔也会相应变成a,函数间隔的对上面最优化问题的不等式没有影响,也对目标函数没有影响,因此为简便,取,而且我们注意到最大化等价于最小化(为啥取平方呢,因为后面好求导),便可得到下面支持线性可分(线性不可分的情况后面会提到)的支持向量机的最优化问题
这是一个凸二次优化的问题,可以直接求解,但是为了简便呢,我们要应用拉格朗日对偶性,求解他的对偶问题
其实求解对偶问题相比于原问题有一下几点好处(1).对偶问题更容易求解,因为不用求w了 (2)我们可以自然引入核函数,这样可以推广到线性不可分分类问题上
建立拉格朗日函数,引进拉格朗日乘子,定义拉格朗日函数:
根据原始问题的对偶性,原始问题的对偶性是极大极小问题,即
首先我们来求最小,零L(w,b,a)分别对w和b求导为零可
得
将其代入对偶问题,可得
解出alpha之后,那么w,b也相应得到啦
接下来,我们看看很有意思的上式不等式约束的kkt条件(不懂请百度)带给我们的信息
咦,对于任意训练样本,总有或者,也就是说最终与模型有关的的样本点都位于最大间隔的边界上,我们称之为支持向量,其余的样本点与模型无关
在前面的讨论中,我们都是聊的线性可分的情况,那么大多数情况下都线性不可分怎么办,比如这样(如左)
山人自有妙计,我们可以将样本先映射到高维特征空间,然后就可以继续分割了(如右)
前面我们说到了对偶问题是
公式中涉及到计算,xi,xj是映射到特征空间之后的内积,由于特征维数可能会很高,甚至是无穷多维,直接计算很困难,所以我们引入了核函数:
这样我们就可以不用麻烦的计算内积了
dqn的各种trick:
第一个Trick。DQN引入卷积层。模型通过Atari游戏视频图像了解环境信息并学习策略。DQN需要理解接收图像,具有图像识别能力。卷积神经网络,利用可提取空间结构信息卷积层抽取特征。卷积层提取图像中重要目标特征传给后层做分类、回归。DQN用卷积层做强化学习训练,根据环境图像输出决策。
第二个Trick。Experience Replay。深度学习需要大量样本,传统Q-Learning online update方法(逐一对新样本学习)不适合DQN。增大样本,多个epoch训练,图像反复利用。Experience Replay,储存Agent Experience样本,每次训练随机抽取部分样本供网络学习。稳定完成学习任务,避免短视只学习最新接触样本,综合反复利用过往大量样本学习。创建储存Experience缓存buffer,储存一定量较新样本。容量满了,用新样本替换最旧样本,保证大部分样本相近概率被抽到。不替换旧样本,训练过程被抽到概率永远比新样本高很多。每次需要训练样本,直接从buffer随机抽取一定量给DQN训练,保持样本高利用率,让模型学习到较新样本。
第三个Trick。用第二个DQN网络辅助训练,target DQN,辅助计算目标Q值,提供学习目标公式里的maxaQ(st+1,a)。两个网络,一个制造学习目标,一个实际训练,让Q-Learning训练目标保持平稳。强化学习 Q-Learning学习目标每次变化,学习目标分部是模型本身输出,每次更新模型参数会导致学习目标变化,更新频繁幅度大,训练过程会非常不稳定、失控,DQN训练会陷入目标Q值与预测Q值反馈循环(陷入震荡发散,难收敛)。需要稳定target DQN辅助网络计算目标Q值。target DQN,低频率、缓慢学习,输出目标Q值波动较小,减小训练过程影响。
第四个Trick。Double DQN。传统DQN高估Action Q值,高估不均匀,导致次优Action被高估超过最优Action。targetDQN 负责生成目标Q值,先产生Q(st+1,a),再通过maxa选择最大Q值。Double DQN,在主DQN上通过最大Q值选择Action,再获取Action在target DQN Q值。主网选择Action,targetDQN生成Action Q值。被选择Q值,不一定总是最大,避免被高估次优Action总是超过最优Action,导致发现不了真正最好Action。学习目标公式:Target=rt+1+γ·Qtarget(st+1,argmaxa(Qmain(st+1,a)))。
第五个Trick。Dueling DQN。Dueling DQN,Q值函数Q(st,at)拆分,一部分静态环境状态具有价值V(st),Value;另一部分动态选择Action额外带来价值A(at),Advantage。公式,Q(st,at)=V(st)+A(at)。网络分别计算环境Value和选择Action Advantage。Advantage,Action与其他Action比较,零均值。网络最后,不再直接输出Action数量Q值,输出一个Value,及Action数量 Advantage值。V值分别加到每个Advantage值上,得最后结果。让DQN学习目标更明确,如果当前期望价值主要由环境状态决定,Value值大,所有Advantage波动不大;如果期望价值主要由Action决定,Value值小,Advantage波动大。分解让学习目标更稳定、精确,DQN对环境状态估计能力更强。
SVM核函数:
1 核函数本质
核函数的本质可以概括为如下三点:
1)实际应用中,常常遇到线性不可分的情况。针对这种情况,常用做法是把样例特征映射到高维空间中,转化为线性可分问题。
2)将样例特征映射到高维空间,可能会遇到维度过高的问题。
3)针对可能的维灾难,可以利用核函数。核函数也是将特征从低维到高维的转换,但避免了直接进行高维空间中的复杂计算,可以在低维上进行计算,却能在实质上将分类效果表现在高维上。
当然,SVM也能处理线性可分问题,这时使用的就是线性核了。
常用的核函数包括如下几个:线性核函数,多项式核函数,RBF核函数(高斯核),Sigmoid核函数
2 线性核
2.1 线性核
SVM肯定是可以处理线性问题的,这个就是斯坦福课程里讲SVM时候,最开始讲解的部分,以线性问题入手进行讲解。
线性核计算为k(x1,x2)=,其实就是在原始空间中的内积。
2.2 线性SVM和逻辑回归
当SVM使用线性核时,在处理分类问题时,和逻辑回归比较有哪些异同,如何选择?
1)线性核SVM和逻辑回归本质上没有区别
2)n=特征数,m=训练样本数目
如果n相对m比较大,使用逻辑回归或者线性SVM,例如n=10000,m=10-1000
如果n比较小,m数值适中,使用高斯核的SVM,例如n=1-1000,m=10-10000
如果n比较小,m很大,构建更多特征,然后使用逻辑回归或者线性SVM
3 非线性核
常用的非线性核包括多项式核,RBF核(高斯核),sigmoid核。
RBF核通常是首选,实践中往往能表现出良好的性能。计算方法如下:
其中,如果σ选得很大的话,高次特征上的权重实际上衰减得非常快,所以实际上(数值上近似一下)相当于一个低维的子空间;反过来,如果σ选得很小,则可以将任意的数据映射为线性可分——当然,这并不一定是好事,因为随之而来的可能是非常严重的过拟合问题。不过,总的来说,通过调控参数,高斯核实际上具有相当高的灵活性,也是使用最广泛的核函数之一。
多项式核计算方法如下:
sigmoid核函数计算方法如下:
采用Sigmoid函数作为核函数时,支持向量机实现的就是一种多层感知器神经网络,应用SVM方法,隐含层节点数目(它确定神经网络的结构)、隐含层节点对输入节点的权值都是在设计(训练)的过程中自动确定的。而且支持向量机的理论基础决定了它最终求得的是全局最优值而不是局部最小值,也保证了它对于未知样本的良好泛化能力而不会出现过学习现象。
4 如何选择
1)可以利用专家先验知识余弦选定核函数,例如已经知道问题是线性可分的,就可以使用线性核,不必选用非线性核
2)利用交叉验证,试用不同的核函数,误差最小的即为效果最好的核函数
3)混合核函数方法,将不同的核函数结合起来
我觉得问题是线性可分和线性不可分其中之一,那在选择核函数的时候,如果不清楚问题属于哪一类,就两类核都尝试一下,所以可以主要尝试线性核以及RBF核。
1) Linear核:主要用于线性可分的情形。参数少,速度快,对于一般数据,分类效果已经很理想了。
2)RBF核:主要用于线性不可分的情形。参数多,分类结果非常依赖于参数。有很多人是通过训练数据的交叉验证来寻找合适的参数,不过这个过程比较耗时。
至于到底该采用哪种核,要根据具体问题,有的数据是线性可分的,有的不可分,需要多尝试不同核不同参数。如果特征的提取的好,包含的信息量足够大,很多问题都是线性可分的。当然,如果有足够的时间去寻找RBF核参数,应该能达到更好的效果。
没有一种黄金规则可以确定哪种核函数将推导出最准确的SVM,在实践中,核函数的选择一般并不导致准确率的很大差别。SVM总是发现全局解,而不是局部解。
5 其他
SVM的复杂度主要由支持向量数刻画,而不是数据的维度,因此相比其他方法,SVM不太容易过拟合。
SVM的损失函数:
1、Hinge损失函数
首先我们来看什么是合页损失函数(hinge loss function):
hinge loss function
下标”+”表示以下取正值的函数,我们用z表示中括号中的部分:
也就是说,数据点如果被正确分类,损失为0,如果没有被正确分类,损失为z。合页损失函数如下图所示:
2、SVM损失函数
SVM的损失函数就是合页损失函数加上正则化项:
2、SVM损失函数
SVM的损失函数就是合页损失函数加上正则化项:
损失函数
1)LR是参数模型,SVM是非参数模型。2)从目标函数来看,区别在于逻辑回归采用的是logistical loss,SVM采用的是hinge loss.这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。3)SVM的处理方法是只考虑support vectors,也就是和分类最相关的少数点,去学习分类器。而逻辑回归通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重。4)逻辑回归相对来说模型更简单,好理解,特别是大规模线性分类时比较方便。而SVM的理解和优化相对来说复杂一些,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算。5)logic 能做的 svm能做,但可能在准确率上有问题,svm能做的logic有的做不了。
朴素贝叶斯分类和预测算法的原理
决策树和朴素贝叶斯是最常用的两种分类算法,本篇文章介绍朴素贝叶斯算法。贝叶斯定理是以英国数学家贝叶斯命名,用来解决两个条件概率之间的关系问题。简单的说就是在已知P(A|B)时如何获得P(B|A)的概率。朴素贝叶斯(Naive Bayes)假设特征P(A)在特定结果P(B)下是独立的。
1.概率基础:
在开始介绍贝叶斯之前,先简单介绍下概率的基础知识。概率是某一结果出现的可能性。例如,抛一枚匀质硬币,正面向上的可能性多大?概率值是一个0-1之间的数字,用来衡量一个事件发生可能性的大小。概率值越接近1,事件发生的可能性越大,概率值越接近0,事件越不可能发生。我们日常生活中听到最多的是天气预报中的降水概率。概率的表示方法叫维恩图。下面我们通过维恩图来说明贝叶斯公式中常见的几个概率。
在维恩图中:
S:S是样本空间,是所有可能事件的总和。
P(A):是样本空间S中A事件发生的概率,维恩图中绿色的部分。
P(B):是样本空间S中B事件发生的概率,维恩图中蓝色的部分。
P(A∩B):是样本空间S中A事件和B事件同时发生的概率,也就是A和B相交的区域。
P(A|B):是条件概率,是B事件已经发生时A事件发生的概率。
对于条件概率,还有一种更清晰的表示方式叫概率树。下面的概率树表示了条件概率P(A|B)。与维恩图中的P(A∩B)相比,可以发现两者明显的区别。P(A∩B)是事件A和事件B同时发现的情况,因此是两者相交区域的概率。而事件概率P(A|B)是事件B发生时事件A发生的概率。这里有一个先决条件就是P(B)要首先发生。
因为条件概率P(A|B)是在事件B已经发生的情况下,事件A发生的概率,因此P(A|B)可以表示为事件A与B的交集与事件B的比率。
该公式还可以转换为以下形式,以便我们下面进行贝叶斯公式计算时使用。
2.贝叶斯公式:
贝叶斯算法通过已知的P(A|B),P(A),和P(B)三个概率计算P(B|A)发生的概率。假设我们现在已知P(A|B),P(A)和P(B)三个概率,如何计算P(B|A)呢?通过前面的概率树及P(A|B)的概率可知,P(B|A)的概率是在事件A发生的前提下事件B发生的概率,因此P(B|A)可以表示为事件B与事件A的交集与事件A的比率。
该公式同样可以转化为以下形式:
到这一步,我们只需要证明P(A∩B)= P(B∩A)就可以证明在已知P(A|B)的情况下可以通过计算获得P(B|A)的概率。我们将概率树转化为下面的概率表,分别列出P(A|B),P(B|A),P(A),和P(B)的概率。
通过计算可以证明P(A|B)*P(B)和P(B|A)*P(A)最后求得的结果是概率表中的同一个区域的值,因此:
我们通过P(A∩B)= P(B∩A)证明了在已知P(A|B),P(A),和P(B)三个概率的情况下可以计算出P(B|A)发生的概率。整个推导和计算过程可以说得通。但从统计学的角度来看,P(A|B)和P(B|A)两个条件概率之间存在怎样的关系呢?我们从贝叶斯推断里可以找到答案。
3.贝叶斯推断:
贝叶斯推断可以说明贝叶斯定理中两个条件概率之间的关系。换句话说就是我们为什么可以通过P(A|B),P(A),和P(B)三个概率计算出P(B|A)发生的概率。
在贝叶斯推断中,每一种概率都有一个特定的名字:
P(B)是”先验概率”(Prior probability)。
P(A)是”先验概率”(Prior probability),也作标准化常量(normalized constant)。
P(A|B)是已知B发生后A的条件概率,叫做似然函数(likelihood)。
P(B|A)是已知A发生后B的条件概率,是我们要求的值,叫做后验概率。
P(A|B)/P(A)是调整因子,也被称作标准似然度(standardised likelihood)。
贝叶斯推断中有几个关键的概念需要说明下:
第一个是先验概率,先验概率是指我们主观通过事件发生次数对概率的判断。
第二个是似然函数,似然函数是对某件事发生可能性的判断,与条件概率正好相反。通过事件已经发生的概率推算事件可能性的概率。
维基百科中对似然函数与概率的解释:
概率:是给定某一参数值,求某一结果的可能性。
例如,抛一枚匀质硬币,抛10次,6次正面向上的可能性多大?
似然函数:给定某一结果,求某一参数值的可能性。
例如,抛一枚硬币,抛10次,结果是6次正面向上,其是匀质的可能性多大?
第三个是调整因子:调整因子是似然函数与先验概率的比值,这个比值相当于一个权重,用来调整后验概率的值,使后验概率更接近真实概率。调整因子有三种情况,大于1,等于1和小于1。
调整因子P(A|B)/P(A)>1:说明事件可能发生的概率要大于事件已经发生次数的概率。
调整因子P(A|B)/P(A)=1:说明事件可能发生的概率与事件已经发生次数的概率相等。
调整因子P(A|B)/P(A)<1:说明事件可能发生的概率与事件小于已经发生次数的概率。
因此,贝叶斯推断可以理解为通过先验概率和调整因子来获得后验概率。其中调整因子是根据事件已经发生的概率推断事件可能发生的概率(通过硬币正面出现的次数来推断硬币均匀的可能性),并与已经发生的先验概率(硬币正面出现的概率)的比值。通过这个比值调整先验概率来获得后验概率。
后验概率=先验概率x调整因子
逻辑回归本质上是线性回归,只是在特征到结果的映射中加入了一层逻辑函数g(z),即先把特征线性求和,然后使用函数g(z)作为假设函数来预测。g(z)可以将连续值映射到0 和1。g(z)为sigmoid function.
则
sigmoid function 的导数如下:
逻辑回归用来分类0/1 问题,也就是预测结果属于0 或者1 的二值分类问题。这里假设了二值满足伯努利分布,也就是
其也可以写成如下的形式:
对于训练数据集,特征数据x={x1, x2, … , xm}和对应的分类标签y={y1, y2, … , ym},假设m个样本是相互独立的,那么,极大似然函数为:
log似然为:
如何使其最大呢?与线性回归类似,我们使用梯度上升的方法(求最小使用梯度下降),那么。
如果只用一个训练样例(x,y),采用随机梯度上升规则,那么随机梯度上升更新规则为:
为了更好的理解,需要了解的概率必备知识有:
大写字母X表示随机变量,小写字母x表示随机变量X的某个具体的取值;
P(X)表示随机变量X的概率分布,P(X,Y)表示随机变量X、Y的联合概率分布,P(Y|X)表示已知随机变量X的情况下随机变量Y的条件概率分布;
p(X=x)表示随机变量X取某个具体值的概率,简记为p(x);
p(X=x,Y=y) 表示联合概率,简记为p(x,y),p(Y=y|X=x)表示条件概率,简记为p(y|x),且有:p(x,y)=p(x)*p(y|x)。
熵:如果一个随机变量X的可能取值为X={x1,x2,…,xk},其概率分布为P(X=xi)=pi(i= 1,2,...,n),则随机变量X的熵定义为:
把最前面的负号放到最后,便成了:
上面两个熵的公式,无论用哪个都行,而且两者等价,一个意思(这两个公式在下文中都会用到)。
联合熵:两个随机变量X,Y的联合分布,可以形成联合熵Joint Entropy,用H(X,Y)表示。
条件熵:在随机变量X发生的前提下,随机变量Y发生所新带来的熵定义为Y的条件熵,用H(Y|X)表示,用来衡量在已知随机变量X的条件下随机变量Y的不确定性。
且有此式子成立:H(Y|X)=H(X,Y)-H(X),整个式子表示(X,Y)发生所包含的熵减去X单独发生包含的熵。至于怎么得来的请看推导:
简单解释下上面的推导过程。整个式子共6行,其中
第二行推到第三行的依据是边缘分布p(x)等于联合分布p(x,y)的和;
第三行推到第四行的依据是把公因子logp(x)乘进去,然后把x,y写在一起;
第四行推到第五行的依据是:因为两个sigma都有p(x,y),故提取公因子p(x,y)放到外边,然后把里边的-logp(x,y)-logp(x))写成-log(p(x,y)/p(x)) ;
第五行推到第六行的依据是:p(x,y)=p(x)*p(y|x),故p(x,y)/p(x)=p(y|x)。
相对熵:又称互熵,交叉熵,鉴别信息,Kullback熵,Kullback-Leible散度等。设p(x)、q(x)是X中取值的两个概率分布,则p对q的相对熵是:
在一定程度上,相对熵可以度量两个随机变量的“距离”,且有D(p||q) ≠D(q||p)。另外,值得一提的是,D(p||q)是必然大于等于0的。
互信息:两个随机变量X,Y的互信息定义为X,Y的联合分布和各自独立分布乘积的相对熵,用I(X,Y)表示:
且有I(X,Y)=D(P(X,Y)||P(X)P(Y))。下面,咱们来计算下H(Y)-I(X,Y)的结果,如下:
通过上面的计算过程,我们发现竟然有H(Y)-I(X,Y)=H(Y|X)。故通过条件熵的定义,有:H(Y|X)=H(X,Y)-H(X),而根据互信息定义展开得到H(Y|X)=H(Y)-I(X,Y),把前者跟后者结合起来,便有I(X,Y)= H(X)+H(Y)-H(X,Y),此结论被多数文献作为互信息的定义。
逻辑回归本质上是线性回归,只是在特征到结果的映射中加入了一层逻辑函数g(z),即先把特征线性求和,然后使用函数g(z)作为假设函数来预测。g(z)可以将连续值映射到0 和1。g(z)为sigmoid function.
则
sigmoid function 的导数如下:
逻辑回归用来分类0/1 问题,也就是预测结果属于0 或者1 的二值分类问题。这里假设了二值满足伯努利分布,也就是
其也可以写成如下的形式:
对于训练数据集,特征数据x={x1, x2, … , xm}和对应的分类标签y={y1, y2, … , ym},假设m个样本是相互独立的,那么,极大似然函数为:
log似然为:
如何使其最大呢?与线性回归类似,我们使用梯度上升的方法(求最小使用梯度下降),那么。
如果只用一个训练样例(x,y),采用随机梯度上升规则,那么随机梯度上升更新规则为:
交叉熵:设p(x)、q(x)是X中取值的两个概率分布,则p对q的相对熵是:
在一定程度上,相对熵可以度量两个随机变量的“距离”,且有D(p||q) ≠D(q||p)。另外,值得一提的是,D(p||q)是必然大于等于0的。
互信息:两个随机变量X,Y的互信息定义为X,Y的联合分布和各自独立分布乘积的相对熵,用I(X,Y)表示:
且有I(X,Y)=D(P(X,Y)||P(X)P(Y))。下面,咱们来计算下H(Y)-I(X,Y)的结果,如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。