系列文章目录
文章目录
前言
本文主要记录机器学习中代价函数和梯度下降的重点。
注:本文是基于吴恩达老师的机器学习课程所做的学习重点笔记摘录。
一、机器学习模型表示
机器学习模型的实现是使用训练集训练映射函数 h(x) 来预测输出值
以简单的只有一个变量X的线性回归为例子,该模型函数 h 可如下图表示:
二、代价函数(Cost Function)
通过训练集训练得出映射函数 h(x) 之后,需要使用一个指标来衡量映射函数的预测能力,指的就是代价函数(cost function)。
同样以一个变量的简单线性回归为例子,该模型的代价函数为:
注意代价函数J是关于所有参数θ的函数,这于映射函数h不同。
代价函数J的是基于“使通过映射函数h预测的值于实际值的差距最小”的目标构建的。
下图是关于θ0和θ1的代价函数J(θ0,θ1):
三、梯度下降(Gradient Descent)
有了代价函数后,找到最准确合适的映射函数这一目标(即合适的参数θ),就可以转换为找到最小的代价函数J的值。
为了找出代价函数J的最小值,提出了梯度下降的概念。
如果把代价函数的图型看作一座山,当我们最开始站在某一点(即随机初始化一点),选择比能到达低海拔点的路劲作为下山路径。
每走一步,就看一下,选择比当前点海拔低的点作为下一个点。
循环往复,直到到达最低点。
1、局部最优解
当初始化的点不同时,那么找到的最低点可能不同。
这样就出现了一个特殊的现象,即梯度下降找到的点很大可能是局部最低点。
当陷入局部最低点时,无法通过梯度下降原则达到别的地点。
所以,梯度下降的一个特点是找出的解是局部最优解,当到达局部最优时,会停止对参数的迭代。
2、参数同步更新
梯度下降的令一个特点是多个参数θ同步更新。
在使用梯度下降寻找代价函数最低点时,点的变化更新代表着参数θ0和θ1时同时变化的,即多个参数θ同步更新
3、学习速率α
梯度下降更新参数时通过参数α来控制参数θ迭代更新的幅度。
如果参数α太小,那么需要迭代很多次才有可能得到最优解;
如果参数α太大,那么可能永远也得不到最优解。
当越来越接近最优解的时候,代价函数J的在该点的切线斜率(即对J求导)越来越小。
这时,我们不需要更改α的值,就能使θ的迭代幅度越来越小。
4、将梯度下降应用于简单线性回归模型
下图为梯度下降和一元向量的线性回归模型:
带入后能得到更新参数θ的公式:
当代价函数J的值处于最低点时,映射函数h的你和效果最好。
5、批量梯度下降
批量梯度下降(Batch Gradient Descent) 指梯度下降的每一步都是建立在所有的训练样本上的,在有些机器学习模型中,梯度下降不会使用所有训练样本,而是使用其中的一部分。
总结
代价函数J是关于所有参数θ的函数,这于映射函数h不同。梯度下降是找打代价函数最低值的一个方法,该方法的特点有:
1. 局部最优解
2. 参数同步更新,参数α控制着参数θ更新的幅度
以及批量梯度下降的概念。
注:参考资料来自于吴恩达老师的课程,点击直达