1 什么是回归
1.1 回归概念的来源
“回归”是由英国著名生物学家兼统计学家高尔顿(Francis Galton,1822~1911.生物学家达尔文的表弟)在研究人类遗传问题时提出来的。为了研究父代与子代身高的关系,高尔顿搜集了1078对父亲及其儿子的身高数据。他发现这些数据的散点图大致呈直线状态,也就是说,总的趋势是父亲的身高增加时,儿子的身高也倾向于增加。但是,高尔顿对试验数据进行了深入的分析,发现了一个很有趣的现象—回归效应。因为当父亲高于平均身高时,他们的儿子身高比他更高的概率要小于比他更矮的概率;父亲矮于平均身高时,他们的儿子身高比他更矮的概率要小于比他更高的概率。它反映了一个规律,即这两种身高父亲的儿子的身高,有向他们父辈的平均身高回归的趋势。对于这个一般结论的解释是:大自然具有一种约束力,使人类身高的分布相对稳定而不产生两极分化,这就是所谓的回归效应。
1.2 机器学习中的回归
样本
S(i)(x(i),y(i))
,如房价的样本,
x
表示局势数,
如果样本中,
y
是连续的,我们叫做回归;如果
在机器学习中,只要说到回归,就是指样本中
y
是连续的。
2 线性回归
2.1 单变量的情形
如图1所示的x轴为房屋面积,y轴为房屋价格。
模型为:
通过样本,我们可以得出参数a,b。
2.2 多变量的情形
如上图2所示,现在考虑两个因素对价格的影响,居室面积和居室数量。
模型为:
同样,样本 x 是已知的,而参数θ是未知的,我们要求的是参数θ。
2.3 误差服从高斯分布
根据公式,我们求出的估计值
根据中心极值定理,
ε(i)
服从正态分布,也就是高斯分布。服从均值为0,方差为
σ2
。
记做:
ε
~
N(0,σ2)
由此得出似然函数:
2.4 中心极值定理
在实际问题中,很多随机现象可以看作众多因素的独立影响的综合反应,往往近似服从正态分布。
如:城市耗电量,大量用户的耗电量总和。
测量误差,许多观察不到的,微小误差的总和。
注:应用前提是多个随机变量的和,有些问题是乘性误差,则需要鉴别或取对数后再使用
3 最大似然估计MLE
3.1 根据似然函数,求出L(θ)
根据似然函数,
y(i)=θTx(i)+ε(i)
,又根据
ε
~
N(0,σ2)
。根据正态分布的概率密度,可以推导出:
3.2 高斯的对数似然
因为此时
L(θ)
为连乘。为了得到相加的结果,将
L(θ)
取对数。推导过程如下图:
此时的目标函数就成了
J(θ)
,此时
hθ(x(i))
为估计值,
y(i)
为真实值。
最终求其最小值。
3.3 向量的倒数
将M个N维样本组成矩阵
X
:
标量对向量的导数:
3.4 θ 的解析式的求解过程
1、目标函数
2、梯度
3、参数 θ 的解析式为
此时, XTX 可逆。
4、加入 λ 扰动
若 XTX 不可逆或者过拟合,增加 λ 扰动
因为 XTX 是半正定阵,因此对于任意非零向量 u ,
所以,对于任意实数 λ>0 , XTX+λI 为正定,从而可逆。由此保证了回归公式有意义。
5、正定阵
对于n阶方阵A,若任意n阶向量x,都有 xTAx>0 ,则称A是正定阵。
若条件变成了 xTAx≥0 ,则A称作半正定阵。
类似还有负定阵,半负定阵。
6、过拟合
overfitting一般在描述统计学模型随机误差或噪音时用到。它通常发生在模型过于复杂的情况下,如参数过多等。overfitting会使得模型的预测性能变弱,并且增加数据的波动性。
一般来说,如到了8阶以后,参数过大,震荡厉害。我们不希望参数 (θ0,θ1,θ2......θn) 过大。
4 线性回归的复杂度惩罚因子
4.1 增加损失函数
1、目标函数:
2、加入增加平方和损失
为了使得参数(θ0,θ1,θ2…..θn)不至于过大,将目标函数增加平方和损失。我们机器学习中,几乎是所有机器学习的办法,就是将参数的平方加起来。
4.2 正则项和防过拟合
L2-norm,Ridge:
L2-norm,LASSO:
Elastic Net:
4.3 ridge回归,和LASSO有什么区别,有什么优势和劣势
1、如果给定一个指标,如
R2
损失,精确度λ等,选用Ridge,效果好。Ridge要比LASSO性能指标上要好。
2、LASSO具有稀疏性,可以做特征选择。
3、举例,通过下图,可以看出LASSO将后面的数值很小,起到了特征选择的作用。
4、稀疏性是指找到重要的信息。如果参数超过一个定值就不再使用。
5、形式化表示
第一个是LASSO,第二个是Ridge。
将
J(θ)=(Xθ−y)T(Xθ−y)
,看作两维
w1
和
w2
。从图中可以看出是一个等高线,是因为二元高斯分布,二者不同处,高斯分布中央点是最大的,我们这个图是最小的。
LASSO的方程是
∣∣w1∣∣+∣∣w2∣∣=c
,Ridge的方程是
(w1)2+(w2)2=c
。
LASSO会在坐标轴上取到最值(0,
w2A
),而Ridge的最值会在相切处,就无法选择特征值。
通过这幅图可以很明显的看出岭回归和lasso之间的差异。图中是两个变量回归的情况,等高线图表示的是残差平方和的等高线。残差在最小二乘估计处最小。阴影部分分别是岭回归和lasso的限制区域。显然圆形为岭回归,菱形为lasso的。这两种带有惩罚项的方法都是要找到第一个落到限制区域上的等高线的那个位置的坐标(即岭估计和lasso估计)。因为菱形带尖角,所以更有可能使得某个变量的系数为0(即所找到的第一个点是菱形四个顶点之一)。当回归变量增多时,lasso的尖角也会变得更多,从而增大更多系数变0的可能性。而光滑的高维球面的显然不可能有这样的概率。这也就是说lasso可以用于变量选择。 这是lasso相较于Ridge有优势的一点。
5 机器学习与数据使用
5.1 数据的使用
1、根据训练数据
(x,y)
,可得出
θ
。
2、测试数据,用来测试模型,如SVM、决策树等。模型哪个好,是由测试数据决定的。
3、如果有
λ
,验证数据决定了
λ
。
5.2 如何确定 λ
通过同一个数据进行训练,
λ=0.01=>Q0.01,f(Q0.01,0.01)=>0.10
λ=0.05=>Q0.05,f(Q0.05,0.05)=>0.08
λ=1=>Q0.01,f(Q1,1)=>0.04
—最小最好
λ=5=>Q0.01,f(Q5,5)=>0.6
5.3 交叉验证
如果训练数据和验证数据是2:1,就是一个三折交叉验证,也就是将训练数据分为三份,其中一份作为验证数据。如1 2|1 3|2 3。
再利用是一个例子,
λ
分别取0.01,0.05,1,5,这四个值。这样的话,3*4,就是做了12个线性回归,来确定一个模型。
6 梯度下降算法
6.1 利用广义逆矩阵,求参数
利用公式:
这时可以通过公式,求的参数Q。
注:如果 X 是一个几百*几百的矩阵,完成可以计算。但是如果是几万或者过亿级别的矩阵,就无法计算了。我们往往会绕过矩阵求逆的过程。这样我们就要使用下面的方法,梯度下降方法。
6.2 梯度下降
1、目标函数:
我们的目标是目标函数求最小。
2、方法:
首先,初始化 θ (随机初始化)
然后,沿着负梯度方向迭代,更新后的 θ 使得 J(θ) 更小。
注: α :学习率,步长
这样我们最终会得到 θ∗ 。 θ0−>θ1−>θ2.....θ∗
此方法可以得到局部极小值。
3、梯度方向
定义 θ=[θ0 θ1 ⋮ θn],θj=[0….n]
推导过程如下图:
6.3 批量梯度下降算法
Repeat until convergence{
θj:=θj+α∑mi=1(y(i)−hθ(x(i)))x(i)j
}
这里的
∑mi=1(y(i)−hθ(x(i)))x(i)j
就是所有样本的梯度的加和。再给定一个
α
,不断的迭代就可以得到
θj
。
因为目标函数
J(θ)
是一个凸函数。因此线性回归一定能找到一个全局最优解。
批量下降梯度图示如下:
6.4 随机梯度下降算法 SGD
Loop{
for i=1 to m,{
θj:=θj+α(y(i)−hθ(x(i)))x(i)j
}
}
这里的
(y(i)−hθ(x(i)))x(i)j
是第i个样本的梯度。不需要拿到所有样本,再处理。只要拿到一个样本,就开始做更新,这样的算法就是随机梯度下降算法。
6.5 SGD与BGD比较
1、BGD一定可以找一个局部极值,而SGD不保证结果。因为
2、BGD的损失函数是直接下降的,而SGD的损失函数是震荡下降的。
3、一般选用SGD。
4、SGD经常能够跳过目标函数中局部极值,达到一个更好的值。
5、SGD更适合在线学习,不一定非要离线的。
6.6 折中:mini-batch
在实际中用得最多的是mini-batch,但是一般表述就是SGD。
如果不是没拿到一个样本及更改梯度,而是若干个样本的平均梯度作为更新方向,就是mini-batch。
注:我们在实际工作中,步长
α
往往是选一个0.01,如果小了,再变大点。
7 线性回归的进一步分析
如上面左边的图,根据所给定的样本,我们通过线性回归能够得到一条直线。但是如果是一条曲线,效果会更好,如上右边的图。
根据所给样本
S(i)(x(i),y(i))
,将其变形,添加两列,常数项
(11⋯1)
和
x
的平方
这样,我们建立方程(模型) y=θ2x2+θ1x+θ0 ,其中 θ=(θ0θ1θ2) 。
同样,我们使用 θ=(XTX)(−1)XTy 来计算。因此得到的二次曲线。
注:我们利用线性回归的技术,得到曲线是非线性的。线性回归不仅仅绝对样本的线性的,也可以是曲线。只要是对参数 θ 是线性的。
再扩展一下,如果是 (x1,x2) 两个参考变量如面积、居室数量,可以取得更多的参数 (x1,x2,x21,x22,x1x2) 。
7.1 特征选择
上面说到我们可以将特征选择成为多种,如
(1,x)
,
(1,x,x2)
,
(1,x,x2,x3)
。
(1,x)
(1,x,x2)
(1,x,x2,x3)
注:特征选择并不是参数越多越好,而是需要根据MSE或者
R2
的指标,如果不再有显著下降,就不再需要增加参数。
7.2 测定系数,coefficient of determination
对于m个样本
(x1→,y1),(x2→,y2),....,(xm→,ym)
某模型的估计值为
(x1→,y1^),(x2→,y2^),....,(xm→,ym^)
1、样本的总平方和TSS(Total Sum of Squares):
2、样本的伪方差:
3、残差平方和(Residual Sum of Squares):
注:RSS就是误差平方和SSE(Sum of Squares for Error)
4、定义 R2
* R2 越大,拟合效果越好
* R2 的最优解为1,若模型预测为随机值, R2 可能为负
* 若预测值恒为样本期望, R2 为0。
5、定义ESS:
* TSS=ESS+RSS ,此公式成立,只有在无偏估计时成立,否则, TSS≥ESS+RSS
* 无偏估计,是指期望是不是真实值。 E(x)=Xtrue 就称为无偏估计。
* ESS 又称为回归平方和 SSR (Sum of Squares for Regression)
8 局部加权回归
8.1 定义
上图中黑色的点是样本点;红色的线是线性回归曲线;绿色的线就是局部加权回归曲线。
8.2 局部加权线性回归 LWR(Locally Weighted linear Regression)
模型:
求出 θ 最小值。
8.3 权值的设置
1、
ω
的一种可能的选择方式(高斯核函数)
其中 ∥x−xi∥22σ2 是二范式;
2、二范式
样本 x(x1x2.....xm)
样本 y(y1y2.....ym)
二范式的距离: (x1−y1)2+(x2−y2)2+.....+(xm−ym)2‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾√
3、有参模型与无參模型
首先这里的无參模型是指参数无穷多,也是指与样本m的个数相当。
举例:
线性回归,特征包括: (x1,x2,...,xn) n个特征,那么参数就是 (θ0,θ1,θ2,...θn) n+1个参数。
局部加权回归,因为每一样本点都是有若干个样本点组成的小线段,这样的话参数的个数就是无穷多个,甚至于与样本个数相同。
9 总结
1、特征选择很重要,除了人工选择,还可以用机器学习的方法,如随机森林、PCA、LDA等。
2、梯度下降算法是参数优化的重要手段,尤其是SGD。
参考
1、邹博小象机器学习课程。
2、机器学习入门:线性回归及梯度下降
3、从理论到应用——浅谈lasso模型
4、LaTeX 各种命令,符号