版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/KevinBetterQ/article/details/83117342
学习过程主要顺着 周志华《机器学习》第三章线性模型 内容,本次线性回归模型总结按照 “模型 + 策略 + 算法 ” 的统计学习三要素整理。
0. 数据集和目标
训练集假设m个样本,每个样本n个特征/属性,每个样本包含一个标记y。
表示为:
D=⎣⎢⎢⎢⎡X1(1)X1(2)...X1(m)X2(1)X2(2)...X2(m)............Xn(1)Xn(2)...Xn(m)y1y2...ym⎦⎥⎥⎥⎤其中,
Xj(i)代表第 i 个样本的第 j 个特征
模型的目标为:对于一个新的样本,给定特征
(X1(k),X2(k),...,Xn(k)),可以给出它对应的
yk(在回归模型中,
yk是一个连续值)。
1. 模型
针对每个样本:
f(x)=w1x1+w2x2+...+wnxn+b其中,
wi,b为模型参数,
xi为每个样本的特征值。
线性模型试图学得一个通过特征的线性组合来进行预测的函数
为了方面操作,简化为矩阵形式:
f(X)=Xθ其中
X=⎣⎢⎢⎢⎡X1(1)X1(2)...X1(m)X2(1)X2(2)...X2(m)............Xn(1)Xn(2)...Xn(m)11...1⎦⎥⎥⎥⎤维度m∗(n+1),θ=⎣⎢⎢⎢⎢⎡w1w2...wnb⎦⎥⎥⎥⎥⎤维度(n+1)∗1所以
Xθ=⎣⎢⎢⎡f(X1)f(X2)...f(Xm)⎦⎥⎥⎤维度m∗1,即为针对m个输入样本的预测值
2. 策略
最小二乘法,均方误差作为损失函数
J(w,b)=i=1∑m(f(xi)−yi))2矩阵形式:
J(θ)=(Xθ−y)T(Xθ−y)
最小二乘法:选择未知参数,使得理论值与观测值之差的平方和达到最小
所以,最优参数
θ∗:
(θ∗)=argminJ(θ)=argmin(Xθ−y)T(Xθ−y)
3. 算法(模型求解)
算法是指学习模型参数的具体计算方法
求解最小二乘问题,可以采用 正规方程法和迭代法(梯度下降法是迭代法的一种,可以用于求解线性和非线性最小二乘问题。高斯-牛顿法是另一种经常用于求解非线性最小二乘的迭代法)
(TODO1:进一步学习数值优化算法,迭代法)
3.1 正规方程法
因为
J(θ) 是关于
θ 的凸函数
所以
J(θ)求导为0时,得到最小值,此时的
θ即为最优解
何为凸函数:
对区间 [a, b] 上定义的函数
f,若它对区间中任意两点
x1,x2均有
f(2x1+x2)⩽2f(x1)+f(x2),则称
f为区间[a, b] 上的凸函数。
对实数集上的函数,可通过求二阶导数来判别:若二阶导数在区间上非负,则称为凸函数。
J(θ)对θ向量求导取0,如下:
∂θ∂J(θ)=2(XTXθ−XTy)=0
求导过程:(其中一些矩阵求导公式参考:矩阵求导与转置运算 或 向量,标量对向量求导数 )
∂θ∂J(θ)=∂θ∂(Xθ−y)T(Xθ−y)=∂θ∂[(θTXT−yT)(Xθ−y)]=∂θ∂(θTXTXθ−θTXTy−yTXθ+yTy)=2XTXθ−XTy−XTy=2(XTXθ−XTy)
得:
θ=(XTX)−1XTy
3.2 梯度下降法
针对损失函数:
J(θ)=(Xθ−y)T(Xθ−y),设定初始值
θ、步长
α
计算损失函数梯度:
▽=∂θ∂J(θ)=2XT(Xθ−y)
更新参数:
θ=θ−α▽
不断更新参数,直到梯度
▽ 小于设定阈值
ε
得到最优参数
θ。
4. 广义线性模型
考虑单调可微函数
g(.) ,令
y=g−1(Xθ)
也就是:
g(y)=Xθ
这样得到的模型称为“广义线性模型”。
这里做一下扩展,对数线性函数是
g(.)=ln(.)的情况,而逻辑回归是
g−1(.)=sigmoid(.)的情况。
参考:
1.《机器学习》周志华
2.《统计学习方法》李航
3. ML模型2:线性回归模型
4. 第二周(多变量线性回归 +Matlab使用)-【机器学习-Coursera Machine Learning-吴恩达】