损失函数:计算的是一个样本的误差
代价函数:是整个训练集上所有样本误差的平均
目标函数:代价函数 + 正则化项
本人在阅读了很多资料后,发现很多博客都在介绍损失函数,梯度下降等方法,但是很多文章没有把二者的关系讲解清楚,本文试着阐述二者关系,希望对大家有帮助
损失函数(Loss function)是用来估量你模型的预测值 f(x)f(x) 与真实值 YY 的不一致程度,它是一个非负实值函数,通常用 L(Y,f(x))L(Y,f(x)) 来表示。损失函数越小,模型的鲁棒性就越好,常用的最小二乘法,大家可以参考该文章https://blog.csdn.net/u010976453/article/details/78488279,这里已经介绍了损失函数的定义以及损失函数的种类,因为本文重点在于阐述损失函数跟梯度下降的关系,所以仅仅本文仅仅平方损失函数为例,其他损失函数大家连接中的内容即可。
梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以), 梯度下降 法大家可以参考 https://www.jianshu.com/p/c7e642877b0e 本文不在细说
梯度下降和损失函数的关系是:梯度下降是求解损失函数的一种最优化算法,
下面开始论述两者关系,以最小二乘法也叫平方损失为例:
假设目标函数定义为:
使用平方损失函数损失函数的形式如下:
我们的目的是求解损失函数的最小值:
MIN
求解一个函数的最小值就要求解一个函数的极小值,极小值为梯度为0的点,如果我们知道函数方程的所有,那么此方程就很好解了,但是在机器学习中,所知道只有训练集合中的值(X,Y),并不知道
值,所以求解方法最小值问题转化为求解
问题,这时需要引入梯度下降法:
梯度下降求解的表达式为:其中a为学习率表达式如下:
展开后:
如果利用梯度下降法计算,那么这个方程中已知的只有(X,Y),其他都不知道,那么如何求解,解法为:
给所有的赋予一个随机初始值,然后不断根据训练数据,迭代获得最终的
值,这样的话所有的参数都是已知,利用梯度下降就可以求解所有参数
Repeat until convergence 收敛的条件可以是设置固定的训练轮数,比如1000轮,或者是当梯度接近0的值,比如梯度已经达到0.00001等