监督学习应用与梯度下降
分类问题:离散变量
回归问题:连续变量
回归方法
问题
有一个房屋销售的数据:
是否可以根据这样的数据预测未来的房价?
plot:
m:训练样本数目
x:输入变量(特征)
y:输出变量(目标变量)
(x,y):样本
i(th):第i个训练样本
(x(i),y(i)):训练样本中的第i行,第i列
监督学习过程(模型)
1、先找到一个训练集合(training set)
2、传给一个学习算法(Learning algorithm)
3、产生一个输出函数(h),称之为假设
4、向h传入一个输入特征x,。得到映射的一个y。
线性回归
线性回归假设特征和结果满足线性关系。
用x1,x2,...xn描述特征里面的分量。
x1:表示房间的面积
x2:表示房间的数量
根据以上,可以得到一个估计函数:
令x0=1,向量表示即
Theta's are called parameters.
该怎样来选取theta的值,来让假设h对所有房屋做出准确的预测呢?
在给定的训练集合里区域训练得出h,在训练数据上尽可能准确。
给定一些特征x,以及一些正确的价格y,希望取得预测和实际价格的平方差尽可能的小。
为了以上,用预测值减去实际值,得到一个better的结果,。
该函数是对x(i)的估计值与真实值y(i)差的平方和,1/2
是为了在求导时方便计算。
调整theta使得j(theta)取得最小值。则该问题归结为求极小值问题。
可用的方法:最小平方回归、最小二乘。
梯度下降法(下山速度最快问题)
(上学期的工程优化刚学过。。。)
1、先对theta随机赋值,也可以是0向量。
2、改变theta的值,使得j(theta)按梯度下降的方向进行减少。
梯度方向由j(theta)对jtheta的偏导数确定,由于求的是极小值,因此梯度方向是偏导数的反方向。
结果为:
矩阵计算:
迭代更新的方式有 两种,一种是批梯度下降,也就是对全部的训练数据求得误差后再对theta进行更新,另外一种是增量梯度下降,每扫描一步都要对theta进行更新。前一种能够不断收敛,后一种方法结果可能不断在收敛处徘徊。
一般来说,梯度下降法收敛速度还是比较慢的,。
另一种直接计算结果的方法是最小二乘法。