机器学习总结(1)
Supervised Learning
Linear Regression
- gradient decent(梯度下降)
- Least Mean Square(最小二乘法)
- Locally weighted linear regression(局部权值线性回归)
线性回归
在线性回归中,我们都将要研究的系统的函数表达式假设为线性的,即
hθ(x)=θ0+θ1x1+θ2x2
,在这里,
hθ(x)
表示实际输出的值,
y
表示理论输出值,
gradient decent && LMS
gradient decent(梯度下降)
对于梯度下降,其公式为 θj=θj−αδδθjJ(θ) ,即让某一变量沿着他的梯度方向下降,在该方向,其速度最快。其中,我们称 α 为learning rate。梯度下降就是一种变量改变的方法LMS(最小二乘法)
最小二乘法,是一种迭代利用梯度下降方法来改变参数值,从而使得 θ 不断接近最优的一种机器学习方法。其中,其常用的两种形式为:batch gradient decent 和 stochastic gradient decent- batch gradient decent:
Repeat until convergence{
θj=θj+α∑mi=1(y(i)−hθ(x(i)))x(i)j (for every j )
} - stochastic gradient decent
Loop{
θj=θj+α(y(i)−hθ(x(i)))x(i)j (for every j) }
}
通过上述代码,我们可以看到,两种方法的区别,批量梯度下降在进行一次 θ 值更新前,要对所有的样本进行一次梯度下降运算,然后依据整体的结果来对 θ 修正, 而统计梯度下降则是在每一个样本进行一次梯度下降运算后就进行一次修正。通常,对于样本量比较大的情况下,统计梯度下降法要比批量梯度下降法的收敛速度更快。
对于梯度下降,其除了使用迭代的方法去得到最优的 θ , 还可以对cost function J(θ) 分别对 θj 求导数并让导数为0来的到最优的 θj 从而使得 J(θ) 最小。故对于最小二乘法,利用梯度下降的这种方法,可以找到一个 θ 向量使得cost function: J(θ) 最小。
这里, J(θ) 可以表示为向量模式:J(θ)=12∑i=1m(hθ(x(i))−y(i))2=12(Xθ−y→)T(Xθ−y→)
故 J(θ) 对 θ 求梯度有:∇Jθ(θ)=XTXθ−XTy→
另 ∇θJ(θ)=0 可以得到 θ=(XTX)−1XTy→- batch gradient decent:
3.Locally weighted linear regression(局部权值线性回归)
对于很多问题,利用线性回归会导致欠拟合,而且在做回归问题时,特征的选取是一个非常难的问题,需要一定的先验知识。对于这样的问题,当我们不想为选择特征而苦恼而且又想利用线性回归方法来解决时,LWR是很好的一种选择。
对于LWR算法,我们选择
J(θ)=∑iω(i)(y(i)−θTx(i))2
作为我们的cost function,其中,
ω(i)=exp(−(x(i)−x)22τ2)
,在这里,我们可以看到,其cost function与传统的LMS的区别在于其多了一个
ω
这样的一个权值,并且根据
ω(i)
的定义,可以看到当
x(i)
离要预测的值
x
越远的时候,
note: 当 (x,y) 满足:
Classification and logistic regression
- Logistic regression(逻辑回归)
- Newton method(牛顿法)
逻辑回归
当分类问题的目标类只有两种,即
y=0,1
时,我们可以用逻辑回归的方法,在这里,我们设
hθ(x)=g(θTx)=11+e−θTx
,其中,
g(z)=11+e−z
称为logistic function或者sigmoid function,该函数有一个特别好的特性就是
g′(z)=g(z)(1−g(z))
使用逻辑回归的前提假设:
并且 y(i) 关于 x;θ 条件独立。
我们令
对 l(θ) 求梯度有 δδθjl(θ)=(y−hθ(x))xj ,故我们可以得到对于统计梯度下降法为:
牛顿法
假设我们有一个函数
f
,我们要找到一个值
对于逻辑回归问题,我们设置
θ
的变化规则为:
note:牛顿学习法与梯度下降法应该对应的去学习,他们都是一种求最优的方法,梯度下降法是通过让变量随着梯度的方向进行变化直到收敛,从而找到最优解,而牛顿学习法则是不断的调整 θ ,从而使得 f(θ)=0 ,进而找到最优解。通常,牛顿法要比梯度下降法收敛速度更快,需要迭代的次数更少,但是牛顿法所用的代价要比梯度下降大很多,因为其每次都需要计算Hessian矩阵