斯坦福机器学习记录
本博客非自己,记录下别人的相关优秀博文,便于复习。
监督学习应用:梯度下降
监督学习应用:梯度下降
相关数学知识:
矩阵运算
矩阵迹
简要复习:
目的:求解下面模型,使得模型能利用实际数据集,充分模拟出实际模型
转化为经验风险最小化问题:
求解算法
梯度下降
对其求导后:
批量梯度下降:
思想:对于每个 参数的每次迭代,都需要遍历所有训练样本集m。而每次迭代都需要计算n个特征的梯度值,因此复杂度未O(mn)
缺点:批梯度下降算法的优点是能找到局部最优解,但是若训练样本 m 很大的话,其每次迭代都要计算所有样本的偏导数的和,时间过慢
随机梯度下降(增量梯度下降):
思想:每次计算一个参数,不需要遍历所有数据,只需计样本i即可
走一步,只考虑一个样本;当 m 个样本用完时,继续循环到第 1 个样本。
收敛方法:
1. 检验一个参数的两个迭代的改变量,若不再变化,则判定收敛
2. 检验经验风险最小化函数的值,若不再变化则收敛
最小二乘法
正规方程组
利用矩阵计算,重新求模型
转化经验风险函数:
推导:
结果:利用上述推导左边=0
欠拟合与过拟合
- 优秀博客笔记:欠拟合和过拟合
- 笔记2
- 似然函数:似然函数理解
- 感知机延伸学习:感知机
- 2D感知机学习算法演示
简要复习
概念
- 参数化学习算法(parametric learning algorithm)
拟合数据只需固定的、有限的参数(线性回归算法),以用来进行数据拟合的算法
房价 = 面积×参数1+地理位置×参数2 - 非参数化学习算法(non-parametric learning algorithm)
一个参数数量会随m(训练集大小)增长的算法,通常定义为参数数量虽m线性增长 - 欠拟合
对于特征集过小的情况,在训练数据和未知数据上表现都很差。如下图(较少点被拟合):
上图:若只用模型,并不能很好拟合数据
- 过拟合
对于特征集过大的情况,在训练数据上表现良好,在未知数据上表现差。如下图(几乎全部都拟合)
上图:对所有训练数据都成功拟合,但是其泛化能力差(对测试数据预测低),因此对于训练数据中的一些噪声数据也进行了拟合,这样和实际的模型肯定会有偏差 - 较优模型
通过增加一个额外特性X2,函数为,模型比较正确的拟合了数据
解决办法
- 特征选择算法:
- 非参数选择算法:缓解对于选取特征的需求,引出局部加权回归
局部加权线性回归(locally weighted linear regression)
一种特定的非参数学习算法,也称作Loess。
算法思想
假设对于一个查询点x,在x处对于假设h(x)求值
原先的线性回归如下:对于参数,求误差最小,返回参数
局部加权线性回归
当处理x时:
- 检查数据集合,并且考虑x周围的固定区域所有数据点
- 对这些点集做线性回归,拟合一条执行
- 返回拟合直线对x的拟合结果
公式中:W(i)为非负的权重(0~1)
权重(表示数据点对处理点x的影响大小)计算公式:
上式中:当数据离处理点x越接近|Xi-X|时,权重越大(1),越远越小(0)。
参数T控制样本集离处理点的距离权重下降的快慢,称波长参数
总结: 对于局部加权回归,每进行一次预测,都要重新拟合一条曲线。但如果沿着x轴对每个点都进行同样的操作,你会得到对于这个数据集的局部加权回归预测结果,追踪到一条非线性曲线。
问题:由于每次进行预测都要根据训练集拟合曲线,若训练集太大,每次进行预测的用到的训练集就会变得很大,有方法可以让局部加权回归对于大型数据集更高效,解决详情参见Andrew Moore的关于KD-tree的工作。
概率解释
另一种可能的对于线性回归的解释。
解决问题
在线性回归中,为什么选择最小二乘作为计算参数的指标:我们提供一组假设,证明在这组假设下最小二乘是有意义的,但是这组假设不唯一,还有其他很多方法可以证明其有意义。
* 假设1
输入和输出为线性关系:
误差项+号左边:表示一种未捕获特征,或者随机噪声
假设误差项服从某个概率分布,如高斯分布:
则高斯分布的概率密度函数:
因此:
解读左边:给定x(i)以thda为参数的y(i)的概率服从高斯分布,参数不是随机变量,只是未知常量
高斯分布:绝大多数问题中,测量误差都是高斯分布
中心极限定律:若干独立的随机变量之和(数据无限大时)趋向于服从高斯分布。若误差有多个因素导致,这些因素造成的效应的总和接近服从高斯分布
* 假设2
假设参数的似然性(即给定x(i)以thda为参数的y(i)的概率):
设误差项是独立同分布(相互独立且相同分布),上可变为所有分布乘积
* 假设3
极大似然估计:选取参数使得似然性L(thda)最大化即在给定x时,值为y的概率最大(最好地模拟实际模型)
利用似然函数取对数:
上变量为参数,所以只需求最后一项最小(似然函数最大)
可知:上式就是之前求最小二乘法时出现的式子
总结:假设误差项满足高斯分布,且独立同分布下,使得似然最大化计算参数。(高斯分布的方差对最终结果没有影响,由于方差一定为正数,所以无论取什么值,最后结果都相同)
Logistic回归
通过回归来进行分类的算法。通过将回归的变量y通过阈值离散化,将变量y限定为{0,1}两个值。
在线性回归算法预测y时,y很可能出现大于1或者小于0。 所以我们改变假设函数:
简写:
上述函数一般称为逻辑函数或者s型函数,如下图:成功将y限制在0~1范围内,当z很大,y趋向1
对假设的概率解释:
简写:
参数的似然性为:
转化为对数似然
求解似然性最大化,利用梯度下降法,对参数thda求偏导(因为求最大值,梯度上升)
推导过程:
结果:
上结果知,公式和线性回归相似,但是符号相反。线性回归求经验风险最小化为梯度下降,逻辑回归求似然概率最大化,为梯度上升。而且h(thda)函数不一样。
感知机算法
提出背景:在logistic中,y值最终是在[0,1]之间的小数,如何将其转化为只是{0,1},提出感知机算法:
给定一个阈值,将y定义分段:
利用logistic梯度上升,其中
感知器算法是一种非常简便的学习算法,临界值和输出只能是0或1,是比logistic更简单的算法。