机器学习定义
计算机程序从经验(experience) E 中学习解决某一任务(task) T 进行某一性能度量(performance) P,通过P测定在T上的表现因经验E而提高。
机器学习分类
- 监督学习(Supervised learning)
- 无监督学习(Unsupervised learning)
- 其他:
加强学习(reinforcement)
推荐系统(recommender systems)
监督学习
监督学习就是给出算法一个数据集,其中包含了正确答案。
每个样本都有正确的答案(标签)。
通过算法预测的出正确答案。
- 回归问题:预测一个连续值输出
比如:房价预测 - 分类问题:预测离散值输出
比如:癌症预测
无监督学习
无监督学习给的数据集中样本没有任何标签,不知道要拿他做什么,也不知道每个数据点究竟是什么,只被告知有一个数据集,找出他们的某种结构。
无监督学习算法可能判定该数据集包含两个不同的簇。
- 聚类算法:将数据分为不同的簇
比如:市场划分,天文数据分析
线性回归算法模型
1. 线性回归平方差代价函数
预测一个 real-valued 输出,
Note:
mmm:训练样本数量
xxx:输入变量/特征
yyy:输出变量/目标变量
(x,y)(x, y)(x,y):一个训练样本
(x(i),y(i))(x^{(i)}, y^{(i)} )(x(i),y(i)):第 iii 个训练样本
h为假设函数
hθ(x)=θ0+θ1xh_\theta(x) = \theta_0 + \theta_1 xhθ(x)=θ0+θ1x
线性方程整体目标函数:
12m∑i=1m(hθ(x(i))−y(i))2\frac{1}{2m} \sum\limits_{i=1}^m(h_\theta(x^{(i)}) - y^{(i)})^22m1i=1∑m(hθ(x(i))−y(i))2
参数
θ0,θ1\theta_0 , \theta_1θ0,θ1
代价函数:
J(θ0,θ1)=12m∑i=1m(hθ(x(i))−y(i))2J(\theta_0, \theta_1) = \frac{1}{2m} \sum\limits_{i=1}^m(h_\theta(x^{(i)}) - y^{(i)})^2J(θ0,θ1)=2m1i=1∑m(hθ(x(i))−y(i))2
目标:
最小化J(θ0,θ1)最小化J(\theta_0 , \theta_1)最小化J(θ0,θ1)
选用平方差代价函数也许是解决回归问题最常用的手段
2. 线性回归代价函数J最小化的梯度下降法
Outline:
- 给定θ0,θ1\theta_0, \theta_1θ0,θ1
- 持续改变θ0,θ1\theta_0, \theta_1θ0,θ1的值去减小J(θ0,θ1)J(\theta_0, \theta_1)J(θ0,θ1),直到找到JJJ的最小值或者局部最小值
算法描述:
repeat until convergence{
θj:=θj−α∂∂θjJ(θ0,θ1)\theta_j:=\theta_j-\alpha\frac{\partial}{\partial\theta_j}J(\theta_0,\theta_1)θj:=θj−α∂θj∂J(θ0,θ1) (for j = 0 and j = 1)
}
即
repeat until convergence{
θ0:=θ0−α1m∑i=1m(hθ(x(i))−y(i))\theta_0:=\theta_0-\alpha\frac{1}{m} \sum\limits_{i=1}^m(h_\theta(x^{(i)}) - y^{(i)})θ0:=θ0−αm1i=1∑m(hθ(x(i))−y(i))
θ1:=θ1−α1m∑i=1m(hθ(x(i))−y(i))⋅x(i)\theta_1:=\theta_1-\alpha\frac{1}{m} \sum\limits_{i=1}^m(h_\theta(x^{(i)}) - y^{(i)})·x^{(i)}θ1:=θ1−αm1i=1∑m(hθ(x(i))−y(i))⋅x(i)
}
α\alphaα为学习率(learning rate),用来控制梯度下降速度,α\alphaα越大速度越快。
∂∂θjJ(θ0,θ1)\frac{\partial}{\partial\theta_j}J(\theta_0,\theta_1)∂θj∂J(θ0,θ1)为一个导数项
Correct:Simultaneous update
temp0:=θ0−α∂∂θ0J(θ0,θ1)temp0:=\theta_0-\alpha\frac{\partial}{\partial\theta_0}J(\theta_0,\theta_1)temp0:=θ0−α∂θ0∂J(θ0,θ1)
temp1:=θ1−α∂∂θ1J(θ0,θ1)temp1:=\theta_1-\alpha\frac{\partial}{\partial\theta_1}J(\theta_0,\theta_1)temp1:=θ1−α∂θ1∂J(θ0,θ1)
θ0:=temp0\theta_0:=temp0θ0:=temp0
θ1:=temp1\theta_1:=temp1θ1:=temp1
"Batch"梯度下降算法
以上梯度下降算法也叫"Batch"梯度下降算法,每一步梯度下降都遍历了数据集的全部样本。
当然也有其他梯度下降算法每次没有全览整个训练集,每次只关注小子集。