知识点
- 了解什么是机器学习,什么是监督学习/无监督学习,回归算法/分类算法/聚类算法各适用于什么类型的机器学习
- 知道假设函数、代价函数、梯度下降公式代表什么意思,以及它们的参数、自变量与因变量的意思
- 熟悉向量的基本运算
分析
监督学习回归问题求解过程如下:
1. 获取训练数据
2. 根据训练数据设一个假设函数(模型)
3. 根据模型与训练数据之间的建模误差得到代价函数
4. 求出代价函数的偏导函数
5. 根据代价函数与偏导函数求出代价函数的最小值
6. 模型训练完成
以课程中给出的房屋出售数据为例:
假设函数:
hθ(x)=θ0x0+θ1x1
代价函数:
J(θ0,θ1)=12m∑mi=1(hθ(x(i))−y(i))2
代价函数偏导数:
∂∂θjJ(θ)=(hθ(x)−y)xj
目标:得到一组值
[θ0,θ1]
使
J(θ0,θ1)
数值最小,然后将
θ0θ1
代入假设函数中预测非训练数据。
学习(迭代)过程:
Repeat {
θ0:=θ0−α∂∂θ0J(θ0,θ1)
θ1:=θ1−α∂∂θ1J(θ0,θ1)
}
说明:
1. 代价函数中的m为训练数据的个数
2. 迭代式中的
α
为学习速率,
α
越小迭代次数越多找到(局部)最优解越准确,但是代价是计算量越大,如果
α
的数值过大,有可能找不到(局部)最优解。
3. 往往让
x0
的数值为1,
θ0=0,θ1=0
4. 迭代时,
θ0
与
θ1
要同时更新(simultaneous update),课程上只要是说的梯度下降算法都要同时更新参数,没说为什么。
对于上面的那个Repeat过程想下一个一元二次方程求最小/大值就容易理解了。
如有方程
y=x2+6x−10
如何找出x*使得y的值最小。
随便设一个值,如x* = 0和一个步距值
Δ=1
,知道y = -10
第一次尝试,令x1 =
x∗+1
或 x1= x*-1可知:
x1=x∗+Δ=1,y=-2
x1=x∗−Δ=−1,y=−14
更新x* = -1
第二次尝试,令x2= x* + 1 或 x2= x*-1可知:
x2=x∗+Δ=0,y=−10
x2=x∗−Δ=−2,y=−18
更新x* = -2
第三次尝试。。。一直尝试下去就能找到一个较小值,可以发现这里每次尝试都会重复上一次尝试中的运算,做了无用功。通过画出这个一元二次方程的曲线发现可以根据x点的切线的斜率自动调整
Δ
是正数还是负数,如
设x* = 0, 可知在x=0处切线的斜率为正数,将
Δ
设为负数
第一次尝试
x1=x∗−Δ=−1,y=−14
更新x* = -1
方程曲线在x=-1时的切线斜率为正数,将
Δ
设为负数
第二次尝试
x2=x∗−Δ=−2,y=−18
更新x* = -2
方程曲线在x=-2时的切线斜率为正数,将
Δ
设为负数。。。这样明显快多了,但是不能一直用眼睛观察曲线的斜率啊,这时就轮到导数出场了,根据导数可以直接得出x点在曲线上的斜率。就可以将上面重复的步骤写成程序了。
Repeat{
x* := x* -
Δ∗y′(x∗)
}
这里的x就是梯度下降中的
θ
,
Δ
就是梯度下降中的
α
, y’相当于
∂∂θiJ(θ)
简单矩阵运算法则
Am,n∗Bn,m=Cm,m 如下:
[a00a10a01a11a02a12]∗⎡⎣⎢b00b10b20b01b11b21⎤⎦⎥=[c00c10c01c11]
其中:
c00=a00∗b00+a01∗b10+a02∗b20
c01=a00∗b01+a01∗b11+a02∗b21
c10=a10∗b00+a11∗b10+a12∗b20
c11=a10∗b01+a11∗b11+a12∗b21
术语以及个人的理解
- Machine learning is the field of study that gives computers the ability to learn without being explicitly programmed.
- Machine learning(机器学习):一个程序被认为能从经验E中学习,解决任务T,达到性能度量值P,当且仅当,有了经验E后,经过P评判,程序在处理T时的性能有所提升。
- supervised learning(监督学习):给定一批有“正确答案”或标签的数据集,根据这些数据训练出一个合适的模型,再根据这个模型预测其他不知道答案的数据的答案。回归问题与分类问题都属于监督学习。
- unsupervised learning(无监督学习):给定一批没有什么标签的数据(没有“答案”),算法根据这些数据的结构将其分为不同的聚集簇。聚类算法属于无监督学习。
- regression(回归):是统计学中的一个概念,指根据之前的数据预测出一个准确的输出值。比如,根据一组数据拟合出一个线形模型,其它数据画到模型上发现所有的点都在该线附近,称数据回归了,即回归到模型。这里是百度百科里的解释。
- gradient descent(梯度下降)算法:使用迭代的思想求参的过程。
- model(模型):是一种表达方式,其实就是假设函数,比如 hθ(x)=θ0+θ1x 为一种模型, [θ0θ1] 为模型参数。
- modeling error(建模误差):模型所预测的值与训练集中的实际值之间的差距。
- cost function(代价函数):也叫平方误差函数,是所有建模误差的平方和。