机器学习算法的数学解析与python实现—1.4机器学习的基本概念
1.常用函数
1.1假设函数(Hypothesis Function)
用H(x)表示,类似于泰坦尼克号上的锅炉,数据就是源源不断填入锅炉的燃料,锅炉带动机器运行使整个轮船前进。
1.2损失函数(Loss Function)
用L(x)表示,在机器学习中不是运行一次就能得到最终结果,而是一个不断逼近目标结果的迭代过程,损失函数就是用来衡量距离目标结果的远近。函数返回值越大,表明结果偏差就越大。
1.3成本函数(Cost Function)
用J(x)表示,成本函数与损失函数概念相近,只不过损失函数针对的是单个样本,而成本函数针对的是整个数据集,损失函数求得的总和就是成本函数,是一种包含关系。
1.4三个函数之间的关系
第一步,使用损失函数对每个样本计算它们的损失值,损失值之和为成本函数的损失值;
第二步,成本函数的损失值作为进一步优化的参考,完成对假设函数的参数调整;
第三步,参数调整完之后,重复第一步计算新的损失值,再重复第二步,依次循环直到求得最优解。
2.机器学习基本模式图2 假设函数产生的偏差驱动着机器学习模型不断优化
3.优化方法
优化方法是损失函数和假设函数之间的媒介,损失函数将损失值告诉优化方法,优化方法再告诉假设函数下一步调参策略。其中梯度下降算法是一种很好的优化方法。
梯度下降算法
梯度的意义:
- 在单变量的函数中,梯度就是函数的微分,即函数在某个点的切线的斜率;
- 在多变量函数中,梯度是一个向量,向量有方向,梯度的方向就指出了函数在某个点处上升最快的方向;
那么,梯度的反方向就是函数在某个点处下降最快的方向,如果想要求最低点,一直沿着梯度的反方向走即可
梯度下降算法公式:
Θ1:下一个位置。
Θ0:当前所处的位置。
α:学习率或者步长,可以通过α来控制每一步走的距离,α不能太大也不能太小,太小的话,可能导致迟迟走不到最低点,太大的话,会导致错过最低点。
J是关于Θ的一个函数。
梯度前面要加一个负号表示反方向。
梯度下降算法代码
定义数据集和学习率
以矩阵向量的形式定义代价函数和代价函数的梯度
梯度下降迭代计算
运行结果:
拟合直线如图所示:
参考资料
[1]: https://www.jianshu.com/p/c7e642877b0e
[2]:https://weread.qq.com/web/reader/2c632ef071a486a92c60226kc9f326d018c9f0f895fb5e4