文章目录
1.1-2.5 机器学习
机器学习是让计算机像人类一样学习和行动的科学,通过以观察和现实世界互动的形式向他们提供数据和信息,以自主的方式改善他们的学习。
机器学习算法分为监督学习(Supervised learning)和无监督学习(unsupervised learning)
监督学习(Supervised learning)
主要是学习X到Y或输入到输出的映射
监督学习的两种类型:回归(Regression)和分类(Classification)
回归(Regression)
回归预测的值无限,即给定X值,Y的值有无限可能,例如根据房子信息预测房子的价格
分类(Classification)
分类预测的是类型(category),即给定X值,Y的值有限,例如根据图片信息预测图中的动物是狗还是猫。
无监督学习(Unsupervised learning)
无监督学习获取没有标签的数据并尝试自动将它们分组到集群。
监督学习从有标签的数据中学习正确的答案,无监督学习在无标签的数据中找一个组或集群
例如:聚类算法(Clustering)、异常检测(Anomaly detection)、降维(Dimensionality reduction)
聚类算法(Clustering)
需要在没有监督的情况下计算出组或集群
3. 1- 3.2 线性回归模型
线性回归模型(Linear Regression Model)是监督学习模型的一个例子,也是**回归模型(Regression Model)**的一个例子。
Question:如果你是售卖房子的中介,目前你要帮顾客估计Ta的1250平方英尺的房子可以转卖多少钱
Answer:建立一个来自该数据集的回归模型,模型将与数据拟合一条直线,根据拟合的直线可以计算出1250平方英尺的房子大概可以卖多少钱。
符号声明(Notation)
数据集(traing set)中:
x:输入变量|特征(feature)
y \it{y} y :目标变量|输出变量
m:训练样本的总数
(x,y):单个训练样本
(x(i),y(i)):特定训练样本,即第i个训练样本
f:函数
y ^ \widehat{y} y :预测值
w:模型的参数
b:模型参数、系数、权重
线性回归模型训练流程
要训练模型,需要输入训练集,生成学习算法,将训练集输入算法后得到目标变量,如下图:
学习算法之f的表示
令f是一条直线,f可以表示为
fw,b(x)=w x \it{x} x +b或f(x)=w x \it{x} x +b,
这是一个变量的线性回归, 即单变量线性回归
f与 y ^ \widehat{y} y 、w、b、xi的关系
3.3 代价函数公式(cost function)公式
为了实现线性回归模型,我们需要定义成本函数(cost function)来衡量一条直线与训练数据的拟合程度。
J(w.b):成本函数|代价函数。计算的是平方差,但是除以2m是为了后面的一些计算。
3.4 可视化简化线性模型的代价函数
线性模型的代价函数
eg:学习算法f、算法参数w,b、代价函数J(w,b)、目标如下图所示:
简化线性模型的代价函数
为了更好可视化J,这里令b=0,因此fw( x \it{x} x)=w x \it{x} x
代价函数如下所示:
绘制简化线性模型的代价函数图像
fw(x)是关于x的函数,J(w)是关于w的函数
w=1
w=0.5
w=0
最终绘制的代价函数图像如图:
因此要实现最小化成本函数的目标,看图可知我们选择w=1的时候,所需要的代价最小。
可视化简化线性模型的代价函数总结
线性回归的目标是找到令成本函数J最小的参数w,b
3.5-3.6 可视化线性模型的代价函数
此时b!=0
则代价函数如图所示
此时代价函数是关于w,b的二元函数,图像是3D的碗状图形,如下图:
4.1 梯度下降
梯度下降(gradient descent)是一种可以用来尝试最小化任何函数的算法,能够找到局部最小值(这里的局部最小值指的是代价函数有多个局部最小值的情况)
梯度下降即可用于得到代价函数的最小值,如下图:
实际上代价函数可能会有多余1个的最小值,具体实例如下图:
梯度下降类比于下山就是,站在山顶每迈出一步就向最陡峭的地方迈出下一步,这样就能快速下山。
梯度下降总结
梯度下降的实质其实是每迈出一步就在这一步选择梯度最高的方向然后迈出下一步。
4.2 梯度下降的实现
梯度下降算法其实就是不断调整w与b的值使得J(w,b)取得w,b收敛。
α \alpha α :学习率,0~1之间, α \alpha α 大/小说明下坡时步子大/小
σ σ w { \sigma \over \sigma w } σwσJ(w,b):代价函数J关于w的偏导数, σ σ w { \sigma \over \sigma w } σwσJ(w,b)用来表面该朝哪个方向迈出步子
因此需要同时(Simulatneously update)更新w,b更新程序如下图
left:同时更新w,b,即从同一个起点决定下一步的方向和步子大小
right:更新w后更新b,此时不是在原来的起点决定下一步的方向,会有细微差别
4.3 理解梯度下降
理解线性模型梯度下降
J(w)只有一个最小值
讨论b=0时,代价函数是J(w),此时w的更新表达式为
w=w- σ σ w { \sigma \over \sigma w } σwσJ(w)
起始点1
从该点开始更新w,J(w)关于w的导数为正,因此w向变小的方向移动。
起始点2
从该点开始更新w,J(w)关于w的导数为负,因此w向变大的方向移动。
理解非线性模型梯度下降
J(w)会有多个局部最小值,其余与线性模型梯度下降一致
4.4 学习率
学习率过小:虽然能使得w收敛但是速度会很慢
学习率过大:会导致过冲,即永远达不到J(w)的最小值,w不会收敛甚至发散
当靠近局部最小值时,导数会变得越小,更新的步子也就越小
4.5 用于线性回归的梯度下降
线性回归模型、代价函数、相关的梯度下降算法如下图所示:
代价函数J(w,b)图像如下所示,是个向下凸的凸函数。
最终w与b会收敛(converge),并且找到代价函数J(w)的全局最小值(线性回归模型的代价函数只会有一个全局最小值没有其他的局部最小值)