ML 教程 2 - 假设函数和损失函数在实际问题中的定义

作者: LiuHDme | 来源:发表于2017-07-20 12:43 被阅读108次

上一篇文章讲了假设函数和损失函数的基本定义,这篇文章讲讲它们在实际问题中到底是怎么样的。

假设函数

虽说是实际问题,但为了方便理解,还是把具体问题简化了。

首先,在实际问题中,数据不可能只有寥寥几条,肯定会有很多条数据。还是举预测房价这个例子,肯定会有很多的房屋大小,来预测很多的房屋价格,最后利用这些对应的数据,可以在二维坐标系上作出图像。这就涉及到了一个概念 —— 数据集(dataset),每个数据集都会有很多数据,这个“很多”少说成百上千条,多则千万条。

其次,在上一篇文章中,我写了

h(x) = ax

这在实际问题中也是不太可能的,拿房价来说,可能当房子大小由比较小到比较大的时候,价格上升的比较快,但当房子已经很大的时候,即使房子大小的增长速率和之前一样,它的价格增长速率也会比之前要低许多,这就不是一个线性关系了。而且,决定房子价格的因素有很多,比如卧室数量,地理位置等等,很多因素一起决定了价格,这就导致 y 并不是简答的等于 ax,而是等于

ax1 + bx2 + cx3 ···

损失函数

首先,上一篇文章中我写道

J = | y - y_ |

这个其实没什么大问题,但由于我们的数据是一个数据集,所以这里的 J,y,y_ 都有很多组,所以最后的损失函数应该是这个数据集中所有损失函数的平均损失函数。

其次,由于损失函数刻画了预测结果和实际结果的差别,所以我们当然希望损失函数越小越好。对于一个数据集的所有数据,实际结果的平均值是确定的,如果预测结果 h(x) 的平均值也是确定的,那么损失函数的平均值就是确定的,只有改变 h(x) 中的参数,才能改变最终的损失函数,因此,我们的目标就变成了改变参数的大小来减小损失函数的大小。所以,损失函数 J 的自变量是 h(x) 中的参数 a,b,c ··· 。所以有

J(a,b,c···) = | y - y_ |

小结

很多理论都是这样,要考在虑实际问题中的应用,慢慢完善,理论也就变得越来越复杂了,但其实如果仔细根据实际问题慢慢思考,是很容易明白理论的每一步的推导过程的。这篇文章其实只是把假设函数和损失函数在实际问题中的应用抽象的讲了一下,具体的内容会在下一篇文章讲。

相关文章

  • ML 教程 2 - 假设函数和损失函数在实际问题中的定义

    上一篇文章讲了假设函数和损失函数的基本定义,这篇文章讲讲它们在实际问题中到底是怎么样的。 假设函数 虽说是实际问题...

  • ML 教程 3 - 假设函数和损失函数的公式表达

    上一篇文章大致写了假设函数和损失函数在实际问题中的抽象定义,这篇文章我会用几个公式来表达完整的假设函数和损失函数。...

  • ML 教程 1 - 假设函数和损失函数的基本定义

    最近在实验室真的没什么忙的,项目早已进入尾声,自己也没兴趣看 Android,索性一心一意学起了 Machine ...

  • 【学习tensorflow2】损失函数

    使用tensorflow2定义模型时, 损失函数可以使用keras模块提供的损失函数, 也可以自定义损失函数. 以...

  • 机器学习随笔

    1 模型的函数表达式,如逻辑回归函数 2 定义损失函数,最小二乘损失,0/1损失,交叉熵。 3 目标函数,损失函数...

  • tensorflow:损失函数和优化器

    1. 损失函数是在graph中定义的经过operation的tensor。 2.损失函数最终要带入到优化器的min...

  • spark xgboost损失函数和评价函数的修改

    spark xgboost自定义损失函数和评价函数 一、spark xgboost自定义损失函数 xgboost定...

  • 损失函数

    损失函数定义: 在深度学习中, 损失函数是用来衡量一组参数的质量的函数, 衡量的方式是比较网络输出和真实输出的差异...

  • Typescript之函数

    定义一个函数 定义函数有2种方式, 分别是函数声明和函数表达式 js中定义函数 ts中定义函数在ts中, 我们需要...

  • 2019-04-13

    目录 假设函数概念 线性假设类损失函数 梯度下降和随机梯度下降 矩阵迹的倒数 正规方程法解线性假设函数最优参数 1...

网友评论

    本文标题:ML 教程 2 - 假设函数和损失函数在实际问题中的定义

    本文链接:https://www.haomeiwen.com/subject/bfvdkxtx.html