回归问题的条件/前提:
1) 收集的数据
2) 假设的模型,即一个函数,这个函数里含有未知的参数,通过学习,可以估计出参数。然后利用这个模型去预测/分类新的数据。
1. 线性回归
假设 特征 和 结果 都满足线性。即不大于一次方。这个是针对 收集的数据而言。
收集的数据中,每一个分量,就可以看做一个特征数据。每个特征至少对应一个未知的参数。这样就形成了一个线性模型函数,向量表示形式:
这个就是一个组合问题,已知一些数据,如何求里面的未知参数,给出一个最优解。 一个线性矩阵方程,直接求解,很可能无法直接求解。有唯一解的数据集,微乎其微。
基本上都是解不存在的超定方程组。因此,需要退一步,将参数求解问题,转化为求最小误差问题,求出一个最接近的解,这就是一个松弛求解。
求一个最接近解,直观上,就能想到,误差最小的表达形式。仍然是一个含未知参数的线性模型,一堆观测数据,其模型与数据的误差最小的形式,模型与数据差的平方和最小:
这就是损失函数的来源。接下来,就是求解这个函数的方法,有最小二乘法,梯度下降法。
http://zh.wikipedia.org/wiki/%E7%BA%BF%E6%80%A7%E6%96%B9%E7%A8%8B%E7%BB%84
最小二乘法
是一个直接的数学求解公式,不过它要求X是列满秩的,
梯度下降法
分别有梯度下降法,批梯度下降法,增量梯度下降。本质上,都是偏导数,步长/最佳学习率,更新,收敛的问题。这个算法只是最优化原理中的一个普通的方法,可以结合最优化原理来学,就容易理解了。
在现实生活中普遍存在着变量之间的关系,有确定的和非确定的。确定关系指的是变量之间可以使用函数关系式表示,还有一种是属于非确定的(相关),比如人的身高和体重,一样的身高体重是不一样的。
线性回归:
(1): 函数模型(Model):
假设有训练数据
那么为了方便我们写成矩阵的形式
(2): 损失函数(cost):
现在我们需要根据给定的X求解W的值,这里采用最小二乘法。
a.最小二乘法:
何为最小二乘法,其实很简单。我们有很多的给定点,这时候我们需要找出一条线去拟合它,那么我先假设这个线的方程,然后把数据点代入假设的方程得到观测值,求使得实际值与观测值相减的平方和最小的参数。对变量求偏导联立便可求。
因此损失代价函数为:
(3): 算法(algorithm):
现在我们的目的就是求解出一个使得代价函数最小的W:
a.矩阵满秩可求解时(求导等于0):
b.矩阵不满秩时(梯度下降):
梯度下降算法是一种求局部最优解的方法,对于F(x),在a点的梯度是F(x)增长最快的方向,那么它的相反方向则是该点下降最快的方向,具体参考wikipedia。
原理:将函数比作一座山,我们站在某个山坡上,往四周看,从哪个方向向下走一小步,能够下降的最快;
注意:当变量之间大小相差很大时,应该先将他们做处理,使得他们的值在同一个范围,这样比较准确。
1)首先对θ赋值,这个值可以是随机的,也可以让θ是一个全零的向量。
2)改变θ的值,使得J(θ)按梯度下降的方向进行减少。
描述一下梯度减少的过程,对于我们的函数J(θ)求偏导J:
Repeat until convergence:{
下面是更新的过程,也就是θi会向着梯度最小的方向进行减少。θi表示更新之前的值,-后面的部分表示按梯度方向减少的量,α表示步长,也就是每次按照梯度减少的方向变化多少。
假设有数据集D时:
对损失函数求偏导如下:
使用矩阵表示(方便计算)
从概率层面解释-回归模型的目标函数:
基本上每个模型都会有一个对应的目标函数,可以通过不同的最优化求解方法(梯度下降,牛顿法等等)对这些对应的目标函数进行求解。线性回归模型,我们知道实际上是通过多个自变量对自变量进行曲线拟合。我们希望找到一条可以较好拟合的曲线,
那我们如何判断一条曲线的拟合程度的好坏。上面讲到,我们采用的是最小二乘法(预测值和真实值得误差的平方和),那为什么要用这个作为目标函数呢?
可以从中心极限定理、高斯分布来分析:
1.中心极限定理:
设有n个随机变量,X1,X2,X3,Xn,他们之间相互独立,并且有相同的数学期望和均值。E(X)=u;D(x)=δ2.令Yn为这n个随机变量之和。
Zn为X这几个变量的规范和。
2.高斯分布
假的给定一个输入样本x,我们得到预测值和真实值间的存在的误差e,那么他们的关系如下:
而这里,我们就可以假设e服从标准的高斯分布。
为什么呢?回归模型的最终目标是建立自变量x和y之间的关系,我们希望通过x可以较为准确的表示结果y。而在实际应用场景中,很难甚至不可能把导致y结果的所有变量(特征)都找到,放到回归模型里面。
我们只存放那些认为比较重要的特征。根据中心极限定理,把那些对结果影响比较小的(假设独立分布)之和认为是符合正态分布是合理的。
那么x和y的条件概率:
那么知道一条样本的概率,我们就可以通过极大估计求似然函数,优化的目标函数如下:
通过取对数我们可以发现极大似然估计的目标函数和最小平方误差是一样。
在概率模型中,目标函数的极大和极小与极大似然估计是等价的。
假设随机变量为Y,和普通变量x存在相关关系,由于Y是随机变量,对于x的各个确定值,Y有它的分布(高斯)。
假设为:
使用极大似然估计可求解。
我们知道对于下面公式:
y为随机变量,在c=E(y)时达到最小,这表明以E(y)作为y的近似是最好的。
2. 逻辑回归
逻辑回归与线性回归的联系、异同?
逻辑回归的模型 是一个非线性模型,sigmoid函数,又称逻辑回归函数。但是它本质上又是一个线性回归模型,因为除去sigmoid映射函数关系,其他的步骤,算法都是线性回归的。可以说,逻辑回归,都是以线性回归为理论支持的。
只不过,线性模型,无法做到sigmoid的非线性形式,sigmoid可以轻松处理0/1分类问题。
另外它的推导含义:仍然与线性回归的最大似然估计推导相同,最大似然函数连续积(这里的分布,可以使伯努利分布,或泊松分布等其他分布形式),求导,得损失函数。
逻辑回归函数
表现了0,1分类的形式。
应用举例:
是否垃圾邮件分类?
是否肿瘤、癌症诊断?
是否金融欺诈?
3. 一般线性回归
线性回归 是以 高斯分布 为误差分析模型; 逻辑回归 采用的是 伯努利分布 分析误差。
而高斯分布、伯努利分布、贝塔分布、迪特里特分布,都属于指数分布。
而一般线性回归,在x条件下,y的概率分布 p(y|x) 就是指 指数分布.
经历最大似然估计的推导,就能导出一般线性回归的 误差分析模型(最小化误差模型)。
softmax回归就是 一般线性回归的一个例子。
有监督学习回归,针对多类问题(逻辑回归,解决的是二类划分问题),如数字字符的分类问题,0-9,10个数字,y值有10个可能性。
而这种可能的分布,是一种指数分布。而且所有可能的和 为1,则对于一个输入的结果,其结果可表示为:
-
参数是一个k维的向量。而代价函数:
是逻辑回归代价函数的推广。
而对于softmax的求解,没有闭式解法(高阶多项方程组求解),仍用梯度下降法,或L-BFGS求解。
当k=2时,softmax退化为逻辑回归,这也能反映softmax回归是逻辑回归的推广。
线性回归,逻辑回归,softmax回归 三者联系,需要反复回味,想的多了,理解就能深入了。
4. 拟合:拟合模型/函数
由测量的数据,估计一个假定的模型/函数。如何拟合,拟合的模型是否合适?可分为以下三类
合适拟合
欠拟合
过拟合
看过一篇文章(附录)的图示,理解起来很不错:
欠拟合:
合适的拟合
过拟合
过拟合的问题如何解决?
问题起源?模型太复杂,参数过多,特征数目过多。
方法: 1) 减少特征的数量,有人工选择,或者采用模型选择算法
http://www.cnblogs.com/heaad/archive/2011/01/02/1924088.html (特征选择算法的综述)
2) 正则化,即保留所有特征,但降低参数的值的影响。正则化的优点是,特征很多时,每个特征都会有一个合适的影响因子。
5. 概率解释:线性回归中为什么选用平方和作为误差函数?
假设模型结果与测量值 误差满足,均值为0的高斯分布,即正态分布。这个假设是靠谱的,符合一般客观统计规律。
数据x与y的条件概率:
若使 模型与测量数据最接近,那么其概率积就最大。概率积,就是概率密度函数的连续积,这样,就形成了一个最大似然函数估计。对最大似然函数估计进行推导,就得出了求导后结果: 平方和最小公式
6. 参数估计 与 数据的关系
拟合关系
7. 错误函数/代价函数/损失函数:
线性回归中采用平方和的形式,一般都是由模型条件概率的最大似然函数 概率积最大值,求导,推导出来的。
统计学中,损失函数一般有以下几种:
1) 0-1损失函数
L(Y,f(X))={1,0,Y≠f(X)Y=f(X)
2) 平方损失函数
L(Y,f(X))=(Y−f(X))2
3) 绝对损失函数
L(Y,f(X))=|Y−f(X)|
4) 对数损失函数
L(Y,P(Y|X))=−logP(Y|X)
损失函数越小,模型就越好,而且损失函数 尽量 是一个凸函数,便于收敛计算。
线性回归,采用的是平方损失函数。而逻辑回归采用的是 对数 损失函数。 这些仅仅是一些结果,没有推导。
8. 正则化:
为防止过度拟合的模型出现(过于复杂的模型),在损失函数里增加一个每个特征的惩罚因子。这个就是正则化。如正则化的线性回归 的 损失函数:
lambda就是惩罚因子。
正则化是模型处理的典型方法。也是结构风险最小的策略。在经验风险(误差平方和)的基础上,增加一个惩罚项/正则化项。
线性回归的解,也从
θ=(XTX)−1XTy
转化为
括号内的矩阵,即使在样本数小于特征数的情况下,也是可逆的。
逻辑回归的正则化:
从贝叶斯估计来看,正则化项对应模型的先验概率,复杂模型有较大先验概率,简单模型具有较小先验概率。这个里面又有几个概念。
什么是结构风险最小化?先验概率?模型简单与否与先验概率的关系?
经验风险、期望风险、经验损失、结构风险
期望风险(真实风险),可理解为 模型函数固定时,数据 平均的 损失程度,或“平均”犯错误的程度。 期望风险是依赖损失函数和概率分布的。
只有样本,是无法计算期望风险的。
所以,采用经验风险,对期望风险进行估计,并设计学习算法,使其最小化。即经验风险最小化(Empirical Risk Minimization)ERM,而经验风险是用损失函数来评估的、计算的。
对于分类问题,经验风险,就训练样本错误率。
对于函数逼近,拟合问题,经验风险,就平方训练误差。
对于概率密度估计问题,ERM,就是最大似然估计法。
而经验风险最小,并不一定就是期望风险最小,无理论依据。只有样本无限大时,经验风险就逼近了期望风险。
如何解决这个问题? 统计学习理论SLT,支持向量机SVM就是专门解决这个问题的。
有限样本条件下,学习出一个较好的模型。
由于有限样本下,经验风险Remp[f]无法近似期望风险R[f] 。因此,统计学习理论给出了二者之间的关系:R[f] <= ( Remp[f] + e )
而右端的表达形式就是结构风险,是期望风险的上界。而e = g(h/n)是置信区间,是VC维h的增函数,也是样本数n的减函数。
VC维的定义在 SVM,SLT中有详细介绍。e依赖h和n,若使期望风险最小,只需关心其上界最小,即e最小化。所以,需要选择合适的h和n。这就是结构风险最小化Structure Risk Minimization,SRM.
SVM就是SRM的近似实现,SVM中的概念另有一大筐。就此打住。
1范数,2范数 的物理意义:
范数,能将一个事物,映射到非负实数,且满足非负性,齐次性,三角不等式。是一个具有“长度”概念的函数。
1范数为什么能得到稀疏解?
压缩感知理论,求解与重构,求解一个L1范数正则化的最小二乘问题。其解正是 欠定线性系统的解。
2范数为什么能得到最大间隔解?
2范数代表能量的度量单位,用来重构误差。
以上几个概念理解需要补充。
9. 最小描述长度准则:
即一组实例数据,存储时,利用一模型,编码压缩。模型长度,加上压缩后长度,即为该数据的总的描述长度。最小描述长度准则,就是选择 总的描述长度最小的模型。
最小描述长度MDL准则,一个重要特性就是避免过度拟合现象。
如利用贝叶斯网络,压缩数据,一方面, 模型自身描述长度 随模型复杂度的增加而增加 ; 另一方面, 对数据集描述的长度随模型复杂度的增加而下降。因此, 贝叶斯网络的 MD L总是力求在模型精度和模型复杂度之间找到平衡。当模型过于复杂时,最小描述长度准则就会其作用,限制复杂程度。
奥卡姆剃刀原则:
如果你有两个原理,它们都能解释观测到的事实,那么你应该使用简单的那个,直到发现更多的证据。
万事万物应该尽量简单,而不是更简单。
11. 凸松弛技术:
将组合优化问题,转化为易于求解极值点的凸优化技术。凸函数/代价函数的推导,最大似然估计法。
12. 牛顿法求解 最大似然估计
前提条件:求导迭代,似然函数可导,且二阶可导。
迭代公式:
若是 向量形式,
H就是 n*n 的hessian矩阵了。
特征:当靠近极值点时,牛顿法能快速收敛,而在远离极值点的地方,牛顿法可能不收敛。 这个的推导?
这点是与梯度下降法的收敛特征是相反的。
线性与非线性:
线性,一次函数;非线性,输入、输出不成正比,非一次函数。
线性的局限性:xor问题。线性不可分,形式:
x 0
0 x
而线性可分,是只用一个线性函数,将数据分类。线性函数,直线。
线性无关:各个独立的特征,独立的分量,无法由其他分量或特征线性表示。
核函数的物理意义:
映射到高维,使其变得线性可分。什么是高维?如一个一维数据特征x,转换为(x,x^2, x^3),就成为了一个三维特征,且线性无关。一个一维特征线性不可分的特征,在高维,就可能线性可分了。
逻辑回归logicalistic regression 本质上仍为线性回归,为什么被单独列为一类?
其存在一个非线性的映射关系,处理的一般是二元结构的0,1问题,是线性回归的扩展,应用广泛,被单独列为一类。
而且如果直接应用线性回归来拟合 逻辑回归数据,就会形成很多局部最小值。是一个非凸集,而线性回归损失函数 是一个 凸函数,即最小极值点,即是全局极小点。模型不符。
若采用 逻辑回归的 损失函数,损失函数就能形成一个 凸函数。
多项式样条函数拟合
多项式拟合,模型是一个多项式形式;样条函数,模型不仅连续,而且在边界处,高阶导数也是连续的。好处:是一条光滑的曲线,能避免边界出现震荡的形式出现(龙格线性)
http://baike.baidu.com/view/301735.htm
以下是几个需慢慢深入理解的概念:
无结构化预测模型
结构化预测模型
什么是结构化问题?
adaboost, svm, lr 三个算法的关系。
三种算法的分布对应 exponential loss(指数 损失函数), hinge loss, log loss(对数损失函数), 无本质区别。应用凸上界取代0、1损失,即凸松弛技术。从组合优化到凸集优化问题。凸函数,比较容易计算极值点。
正则化与贝叶斯参数估计的联系?
部分参考文章:
http://www.guzili.com/?p=45150
http://52opencourse.com/133/coursera%E5%85%AC%E5%BC%80%E8%AF%BE%E7%AC%94%E8%AE%B0-%E6%96%AF%E5%9D%A6%E7%A6%8F%E5%A4%A7%E5%AD%A6%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%AC%AC%E4%B8%83%E8%AF%BE-%E6%AD%A3%E5%88%99%E5%8C%96-regularization
http://www.cnblogs.com/jerrylead/archive/2011/03/05/1971867.html