线性模型
线性模型可以说是比较简单的一种监督学习,通常可以表述成
写成向量形式就是
线性回归(Liner Regression)
线性回归可以定义为:
用h(x) 来预测y,而判断h(x)拟合的直线是否能尽量靠近这些点,可以用cost function来描述:
而求得最优的h(x)则转换成了让 J(θ) J ( θ ) 的值最小。
这里使用平方和而不是绝对值原因在于,这样求出来的是likelihood最大。还有若第一组绝对值差是1,3,第二组是2,2,绝对值差求和是一样,4=4, 算平方差就不一样了,10 > 8。所以平方项还能达到惩罚偏差值线性增大的效果,最终图上看就是尽可能让直线靠近所有点。
可以参考为什么最小二乘需要均方误差
求解costfunction最小的方法
梯度下降(gradient descent algorithm)
α
α
是学习速率
对于单个训练数据的例子:
所以 θj θ j 的更新为:
几乎是最常使用的基本算法,需要了解其本质原理。
更多详细参考 梯度下降(Gradient Descent)
矩阵方程法(the normal equations)
此外矩阵方程法常用到SVD求解逆矩阵,但计算复杂度都较大,当n>10000时基本不推荐使用,实际安利极少应用到。
下面有几个参考
矩阵方程线性代数分析
矩阵方程的矩阵推导
牛顿法(Newton Method)
牛顿方法是使用迭代的方法寻找使f(θ)=0的θ值,在这里θ是一个真实的值,不是一个参数,只不过θ的真正取值不确定。牛顿方法数学表达式为:
先随机选一个点,然后求出f在该点的切线,即f在该点的导数。该切线等于0的点,即该切线与x轴相交的点为下一次迭代的值。直至逼近f等于0的点。
部分情况会使用到,应用面没有梯度下降广泛。
相关参考如下:
牛顿法通俗解释
对数几率回归(Logistic Regression)
现在如果有一个0和1的e二分类问题的,可以套进去线性回归去解。只要中间加一个sigmoid函数即可,
把线性回归套进去就是
h(θ)=g(θTx)=11+e−θTx
h
(
θ
)
=
g
(
θ
T
x
)
=
1
1
+
e
−
θ
T
x
)
建立好模型即可求解costfunction了,但与liner model 不同,套入sigmoid后,这个函数不是凸函数,不好求解。
而且 h(x)−y h ( x ) − y 算出来是一个概率,多个训练数据的概率相加是没意义的,得相乘。 p(x,y)=p(x)×p(y) p ( x , y ) = p ( x ) × p ( y )
对数几率模型损失函数推导
分别求出两种分类的概率并合在一起:
极大似然的参数表达式:
对数极大似然函数:
根据sigmoid函数的性质 g′(z)=g(z)(1−g(z)) g ′ ( z ) = g ( z ) ( 1 − g ( z ) ) 代入前面的结论
由于前面linear regression,我们求cost function的最小值,所以是减号 θj:=θj−α∂∂θjJ(θ) θ j := θ j − α ∂ ∂ θ j J ( θ ) 对于logistic regression,我们要求的是likelihood最大,所以要换成加号。
这样θ最终的迭代式子与跟前面linear regression就一样了。
正则化(Regularized)
为了解决过拟合问题,我们需要给予costfunction 一定的惩罚,而这个就称为正则化。
λ是正则化参数。它决定了我们的θ参数的成本被夸大了多少。 使用上述costfuntion求和,我们可以平滑假设函数的输出以减少过度拟合。如果λ选择太大,它可能会使功能过度平滑并导致欠拟合。
正则化损失函数
梯度下降正则化
我们将
θ0
θ
0
与其余参数分开,对于
θ0
θ
0
我们不需要惩罚他.
我们对 λmθj λ m θ j 进行一下变形,那么 θ θ 的更新可以表示为:
上面等式中的第一项, 1−αλm 1 − α λ m 将始终小于1.可以看到每次更新的时候都会减少 θj θ j 的值,但第二项和之前并没有变化。
矩阵法正则化
现在让我们使用非迭代正规方程的替代方法来逼近正则化。 要添加正则化,除了我们在括号内添加一项之外,等式与我们之前基本相同:
L是一个左上角为0,对角线下方为1,其他地方为0的矩阵。还有当 X X 不是方正时,是不可逆的。但是加上 λ⋅L λ ⋅ L 项,那么 XTX+λ⋅L X T X + λ ⋅ L 就变为可逆的了。
正则化项的区别
正则化项一般有L1和L2等,如果加入的是L2正则化项,就是Ridge回归,而Lasso回归用的是L1正则化项。
Ridge回归
cost function 如下:
其中 α α 为常数系数,需要进行调优。 ||θ||2 | | θ | | 2 为L2范数。
Ridge回归的解法和一般线性回归大同小异。在不抛弃任何一个变量的情况下,缩小了回归系数,使得模型相对而言比较的稳定,但这会使得模型的变量特别多,模型解释性差。
Lasso回归
Lasso回归用的是L1正则化项,他的cost function表达式如下:
其中n为样本个数, α α 为常数系数,需要进行调优。 ||θ||1 | | θ | | 1 为L1范数。
Lasso回归使得一些系数变小,甚至还是一些绝对值较小的系数直接变为0,因此特别适用于参数数目缩减与参数的选择,因而用来估计稀疏参数的线性模型。
但由于L1范数用的是绝对值之和,导致损失函数有不可导的点。最小二乘法,梯度下降法,牛顿法与拟牛顿法对它统统失效了。因此只能使用全新的求极值解法 坐标轴下降法(coordinate descent)和 最小角回归法( Least Angle Regression, LARS)。
参考 坐标轴下降法与最小角回归法小结
弹性网络(Elastic Net)
结合了L1、L2正则项,既可以减少无用特征还可以保证模型的稳定性。