机器学习——代价函数

今天学习了机器学习中的代价函数,在这里做个总结。

假设有一组数据,现给出某一数据,预测最具有可能性的对应数据。

假设函数模型为$h(x)=θ_1+θ_2x$
使函数模型与实际数据尽可能拟合
代价函数为

h(x)为预测数据,y为实际数据,i是第几组实验数据,m是实验数据总数
在这个函数中,需要使预测值与实际值差的平方$\sum_{i=1}^m{\left( h\left( x^i \right) -y^i \right)}^2$尽量小
为减小误差,取平均值。$\frac{1}{2m}\sum_{i=1}^m{\left( h\left( x^i \right) -y^i \right)}^2$。1/2是为后续便于求导。
通过调整$θ_1θ_2$,使函数J($θ_1,θ_2$)的数值最小化。
用一组数据对函数进行拟合,不断更改$θ_1$和$θ_2$的数值,将会得到一个近似下图的图像
1
so,可以从图中直观的看到函数J的最低点即为J的最小值,那么,如何获得最低点对应的数值呢

梯度下降法

注意:对于这个方程,应同时更新$θ_1,θ_2$。
即在程序中应为

而非

符号:=表示赋值运算符,ɑ表示学习率,$\frac{dJ\left( \theta _1,\theta _2 \right)}{d\theta _1}$为导数项,ɑ$\frac{dJ\left( \theta _1,\theta _2 \right)}{d\theta _1}$为步长,即进行一次梯度下降θ的改变量。
推导化简

即最后更新$θ_1,θ_2$的公式为

在一个只有一个θ为变量的代价函数的图像中,导数项$\frac{dJ\left( \theta _1,\theta _2 \right)}{d\theta _1}$意为在某一点的斜率。
当该点不位于局部最小值或全局最优值时,θ值更新,θ减去步长ɑ$\frac{dJ\left( \theta _1,\theta _2 \right)}{d\theta _1}$,更新后的点更靠近最小值,点所处的斜率变小,即$\frac{dJ\left( \theta _1,\theta _2 \right)}{d\theta _1}$变小,这会使步长减小,从而避免因步长过大导致找不到最小值。

以上就是我学到的第一个机器学习的算法,它很简单,很有意义。

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2021-2024 lucky_dog
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信