线性回归,逻辑回归的学习(包含最小二乘法及极大似然函数等)

博文参考了以下两位博主的文章:http://blog.csdn.net/lu597203933/article/details/45032607,http://blog.csdn.net/viewcode/article/details/8794401

回归问题的前提:

1) 收集的数据

2) 假设的模型,即一个函数,这个函数里含有未知的参数,通过学习,可以估计出参数。然后利用这个模型去预测/分类新的数据。


1. 线性回归

假设 特征 和 结果 都满足线性。即不大于一次方。这个是针对 收集的数据而言。
收集的数据中,每一个分量,就可以看做一个特征数据。每个特征至少对应一个未知的参数。这样就形成了一个线性模型函数,向量表示形式:

clip_image005

向量默认为列向量,此处的X表示一个列向量,其中内容为(x1,x2,x3.......,xn),用以表示收集的一个样例。向量内容为设置的系数(w1,w2.....,wn),也就是要通过学习得到的系数,转置后成为行向量。两者相乘后得到预测打分h。

这个就是一个组合问题,已知一些数据,如何求里面的未知参数,给出一个最优解。 一个线性矩阵方程,直接求解,很可能无法直接求解。有唯一解的数据集基本是不存在的。基本上都是解不存在的超定方程组(未知数的个数小于方程的个数)。因此,需要退一步,将参数求解问题,转化为求最小误差问题,求出一个最接近的解,这就是一个松弛求解。

求一个最接近解,直观上,就能想到,误差最小的表达形式。仍然是一个含未知参数的线性模型,一堆观测数据,其模型与数据的误差最小的形式,模型与数据差的平方和最小:


这就是损失函数(cost function)的来源,文中之后我们称之为目标函数。接下来,就是求解这个函数最小值的方法,有最小二乘法,梯度下降法等(利用这些方法使这个函数的值最小)。

**********最小二乘法:************

多元函数求极值的方法,对θ求偏导,让偏导等于0,求出θ值。当θ为向量时,需要对各个θi求偏导计算。

为了便于理解,可以先看当数据集中的样本只有一个特征时的情况,参看之前的最小二乘法博文,可以直接得出theta的值(原先博文中表示为beta)。当含有多个特征时,需要进行矩阵计算从而求出各个θi:

如上图中将目标函数拆解为两个式子相乘的形式()其中的X表示获取的数据集转换成的矩阵,与列向量相乘后得到预测打分(列向量),与真实打分y向量想减后平方。上图中的下半部分对于拆解后的目标函数进行求导,令求导后的式子=0,如下图:

 

由此可以得到向量的值。

其中补充说明:

 只在X存在逆矩阵时才可以使用。关于逆矩阵:如下定义:(来自百度百科。。。。)

A是数域上的一个n阶方阵,若在相同数域上存在另一个n阶矩阵B,使得: AB=BA=I。 则我们称BA的逆矩阵,而A则被称为可逆矩阵。A是可逆矩阵的充分必要条件是

,也就是可逆阵必是满秩阵,即可逆矩阵就是非奇异矩阵[1]  (当
时,A称为奇异矩阵
      可逆阵 等价于 满秩阵 等价于 非奇异阵。(只有满秩阵的行列式不为0)
求法:

伴随矩阵法

如果矩阵
可逆,则
其中
是的 伴随矩阵
注意:
中元素的排列特点是的第k 元素是A的第k 元素的 代数余子式。要求得
即为求解
的余因子矩阵的 转置矩阵

初等变换法

如果矩阵 AB互逆,则 AB= BA= I。由条件 AB= BA以及 矩阵乘法的定义可知,矩阵 AB都是 方阵。再由条件 AB= I以及定理“两个矩阵的乘积的 行列式等于这两个矩阵的行列式的乘积”可知,这两个矩阵的行列式都不为0(又因为只有满秩阵的行列式不为0,所以A,B均为满秩阵)。也就是说,这两个 矩阵的秩【对于m*n矩阵,变换成零行全部处于下方/零列全部处于右侧(具体采用哪种变换要看m和n的大小 )的那种形式,此形式此处不好做多讲解,可以看一下线性代数基础,变成此形式后数非零行数目/非零列数目。得出矩阵的秩。注意:矩阵的行秩==列秩,(矩阵的行秩与列秩求法是分别变换矩阵后求最大无关行向量组/最大无关列向量组) 因为可逆阵只可能是方阵,下面有证明 】所以:这两个矩阵的秩:等于它们的级数(或称为阶,也就是说,A与B都是方阵,且rank(A) = rank(B) = n)。换句话说,这两个矩阵可以只经由初等行变换,或者只经由初等列变换,变为单位矩阵。因为对矩阵 A施以初等行变换(初等列变换)就相当于在 A的左边(右边)乘以相应的 初等矩阵,所以我们可以同时对 AI施以相同的初等行变换(初等列变换)。这样,当矩阵 A被变为 I时, I就被变为 A的逆阵 B
 
     性质:
  1. 可逆矩阵一定是方阵。因为可逆阵中:A*B=B*A=I,如果不是方阵,那么(m*m和n*n的阵不会是同一个I)
  2. 如果矩阵A是可逆的,A的逆矩阵是唯一的。

*****************梯度下降法:**************************

分别有梯度下降法,批梯度下降法,增量梯度下降。本质上,都是偏导数,步长/最佳学习率,更新,收敛的问题。这个算法只是最优化原理中的一个普通的方法,可以结合最优化原理来学,就容易理解了。(梯度下降中用到的目标函数不一定是之前提到的那个距离最小函数,在之后的逻辑回归中,要用到梯度上升,在那里细述)

 

******************极大似然法************************************

极大似然的核心思想为:

当从模型总体随机抽取n组样本观测值后,最合理的参数估计量应该使得从模型中抽取该n组样本观测值的概率最大。打个比方:一个袋子中有20个球,只有黑白两色,有放回的抽取十次,取出8个黑球和2个白球,计算袋子里有白球黑球各几个。那么我会认为我所抽出的这个样本是被抽取的事件中概率最大的。p(黑球=8)=p^8*(1-p)^2,让这个值最大。极大似然法就是基于这种思想。

 

极大似然估计的定义如下:

 


 


 


 


 


 


 


求解方法同样采用多元函数求极值法。

2、逻辑回归

 

逻辑回归与线性回归的联系、异同?

 

逻辑回归的模型 是一个非线性模型,sigmoid函数,又称逻辑回归函数。但是它本质上又是一个线性回归模型,因为除去sigmoid映射函数关系,其他的步骤,算法都是线性回归的。可以说,逻辑回归,都是以线性回归为理论支持的。只不过,线性模型,无法做到sigmoid的非线性形式,sigmoid可以轻松处理0/1分类问题。

在另一篇博文(logistic)中有对逻辑回归的详细说明。在逻辑回归中,重新定义了cost function,

另外它的推导含义:仍然与线性回归的最大似然估计推导相同,最大似然函数连续积(这里的分布,可以使伯努利分布,或泊松分布等其他分布形式),求导,得损失函数。

(参看logistic那篇博文)

\begin{align}J(\theta) = -\frac{1}{m} \left[ \sum_{i=1}^m y^{(i)} \log h_\theta(x^{(i)}) + (1-y^{(i)}) \log (1-h_\theta(x^{(i)})) \right]\end{align}

3、一般线性回归(这部分尚未做过多研究)

 

线性回归 是以 高斯分布 为误差分析模型; 逻辑回归 采用的是 伯努利分布 分析误差。

 

而高斯分布、伯努利分布、贝塔分布、迪特里特分布,都属于指数分布。

 

clip_image040

 

而一般线性回归,在x条件下,y的概率分布 p(y|x) 就是指 指数分布.

 

经历最大似然估计的推导,就能导出一般线性回归的 误差分析模型(最小化误差模型)。

 

softmax回归就是 一般线性回归的一个例子。

 

有监督学习回归,针对多类问题(逻辑回归,解决的是二类划分问题),如数字字符的分类问题,0-9,10个数字,y值有10个可能性。

 

而这种可能的分布,是一种指数分布。而且所有可能的和 为1,则对于一个输入的结果,其结果可表示为:

 

\begin{align}h_\theta(x^{(i)}) =\begin{bmatrix}p(y^{(i)} = 1 | x^{(i)}; \theta) \\p(y^{(i)} = 2 | x^{(i)}; \theta) \\\vdots \\p(y^{(i)} = k | x^{(i)}; \theta)\end{bmatrix}=\frac{1}{ \sum_{j=1}^{k}{e^{ \theta_j^T x^{(i)} }} }\begin{bmatrix}e^{ \theta_1^T x^{(i)} } \\e^{ \theta_2^T x^{(i)} } \\\vdots \\e^{ \theta_k^T x^{(i)} } \\\end{bmatrix}\end{align}
参数是一个k维的向量。
而代价函数:
\begin{align}J(\theta) = - \frac{1}{m} \left[ \sum_{i=1}^{m} \sum_{j=1}^{k}  1\left\{y^{(i)} = j\right\} \log \frac{e^{\theta_j^T x^{(i)}}}{\sum_{l=1}^k e^{ \theta_l^T x^{(i)} }}\right]\end{align}

是逻辑回归代价函数的推广。


而对于softmax的求解,没有闭式解法(高阶多项方程组求解),仍用梯度下降法,或L-BFGS求解。

 

当k=2时,softmax退化为逻辑回归,这也能反映softmax回归是逻辑回归的推广。

 

线性回归,逻辑回归,softmax回归 三者联系,需要反复回味,想的多了,理解就能深入了。

**********************************************************************************

4. 拟合:拟合模型/函数

由测量的数据,估计一个假定的模型/函数。如何拟合,拟合的模型是否合适?可分为以下三类

合适拟合

欠拟合

过拟合


看过一篇文章(附录)的图示,理解起来很不错:

 欠拟合:
逻辑回归欠拟合-我爱公开课-52opencourse.com


合适的拟合
逻辑回归合适的拟合-我爱公开课-52opencourse.com

过拟合
逻辑回归过拟合-我爱公开课-52opencourse.com

过拟合的问题如何解决?

问题起源?模型太复杂,参数过多,特征数目过多。

方法: 1) 减少特征的数量,有人工选择,或者采用模型选择算法

http://www.cnblogs.com/heaad/archive/2011/01/02/1924088.html (特征选择算法的综述)

     2) 正则化,即保留所有特征,但降低参数的值的影响。正则化的优点是,特征很多时,每个特征都会有一个合适的影响因子。

7. 错误函数/代价函数/损失函数:

线性回归中采用平方和的形式,一般都是由模型条件概率的最大似然函数 概率积最大值,求导,推导出来的。

统计学中,损失函数一般有以下几种:

1) 0-1损失函数

L(Y,f(X))={1,0,Yf(X)Y=f(X)

2) 平方损失函数

L(Y,f(X))=(Yf(X))2

3) 绝对损失函数

L(Y,f(X))=|Yf(X)|

4) 对数损失函数

L(Y,P(Y|X))=logP(Y|X)

损失函数越小,模型就越好,而且损失函数 尽量 是一个凸函数,便于收敛计算。

线性回归,采用的是平方损失函数。而逻辑回归采用的是 对数 损失函数。 这些仅仅是一些结果,没有推导。


8. 正则化:

为防止过度拟合的模型出现(过于复杂的模型),在损失函数里增加一个每个特征的惩罚因子。这个就是正则化。如正则化的线性回归 的 损失函数:

正则化正式的定义-我爱公开课-52opencourse.com

lambda就是惩罚因子。

正则化是模型处理的典型方法。也是结构风险最小的策略。在经验风险(误差平方和)的基础上,增加一个惩罚项/正则化项。

线性回归的解,也从

θ=(XTX)1XTy


转化为

不可逆后的正规方程-我爱公开课-52opencourse.com

括号内的矩阵,即使在样本数小于特征数的情况下,也是可逆的。


逻辑回归的正则化:

正则化逻辑回归Cost Function-我爱公开课-52opencourse.com


从贝叶斯估计来看,正则化项对应模型的先验概率,复杂模型有较大先验概率,简单模型具有较小先验概率。这个里面又有几个概念。

什么是结构风险最小化?先验概率?模型简单与否与先验概率的关系?

逻辑回归logicalistic regression 本质上仍为线性回归,为什么被单独列为一类?

其存在一个非线性的映射关系,处理的一般是二元结构的0,1问题,是线性回归的扩展,应用广泛,被单独列为一类。

而且如果直接应用线性回归来拟合逻辑回归数据,就会形成很多局部最小值。是一个非凸集,而线性回归损失函数 是一个 凸函数,即最小极值点,即是全局极小点。模型不符。

非凸函数-我爱公开课-52opencourse.com


若采用 逻辑回归的 损失函数,损失函数就能形成一个 凸函数。


凸函数-我爱公开课-52opencouse.com



多项式样条函数拟合

多项式拟合,模型是一个多项式形式;样条函数,模型不仅连续,而且在边界处,高阶导数也是连续的。好处:是一条光滑的曲线,能避免边界出现震荡的形式出现(龙格线性)
http://baike.baidu.com/view/301735.htm


以下是几个需慢慢深入理解的概念:

无结构化预测模型

结构化预测模型

什么是结构化问题?

adaboost, svm, lr 三个算法的关系。

三种算法的分布对应 exponential loss(指数 损失函数), hinge loss, log loss(对数损失函数), 无本质区别。应用凸上界取代0、1损失,即凸松弛技术。从组合优化到凸集优化问题。凸函数,比较容易计算极值点。

 

 

 

 


 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/litian0605/p/5239774.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值