常见的损失函数有哪些?(这里的损失函数严格来讲是目标函数,通常都称呼为损失函数)算法
具体见:app
https://blog.csdn.net/iqqiqqiqqiqq/article/details/77413541机器学习
1)0-1损失函数函数
记录分类错误的次数。学习
2)绝对值损失函数优化
一般用于回归中spa
3)平方损失函数.net
即真实值与预测值之差的平方和。一般用于线性模型中,如线性回归模型。之因此采用平方的形式,而非绝对值或三次方的形式,是由于最大似然估计(求损失函数的极小值)与最小化平方损失是等价的。blog
4)对数损失数学
5)指数损失函数
经常使用的优化方法有哪些?
对损失函数的优化:
当咱们对分类的Loss进行改进的时候,咱们要经过梯度降低,每次优化一个step大小的梯度,这个时候咱们就要求Loss对每一个权重矩阵的偏导,而后应用链式法则。
最小二乘法(主要是说线性回归中的优化算法)梯度降低法、牛顿法、拟牛顿法、共轭梯度法
详细说一下梯度降低法
在求解机器学习算法的模型参数,即无约束优化问题时,梯度降低(Gradient Descent)是最常采用的方法之一,梯度降低不必定可以找到全局的最优解,有多是一个局部最优解。固然,若是损失函数是凸函数,梯度降低法获得的解就必定是全局最优解。
1)梯度
在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。
那么这个梯度向量求出来有什么意义呢?他的意义从几何意义上讲,就是函数变化增长最快的地方。或者说,沿着梯度向量的方向,更加容易找到函数的最大值。反过来讲,沿着梯度向量相反的方向,也就是 -(∂f/∂x0, ∂f/∂y0)T的方向,梯度减小最快,也就是更加容易找到函数的最小值。
2)梯度降低与梯度上升
在机器学习算法中,在最小化损失函数时,能够经过梯度降低法来一步步的迭代求解,经过启发式的方式一步步迭代求解函数的最小值,获得最小化的损失函数,和模型参数值。反过来,若是咱们须要求解损失函数的最大值,这时就须要用梯度上升法来迭代了。
梯度降低法和梯度上升法是能够互相转化的。好比咱们须要求解损失函数f(θ)的最小值,这时咱们须要用梯度降低法来迭代求解。可是实际上,咱们能够反过来求解损失函数 -f(θ)的最大值,这时梯度上升法就派上用场了。
3)梯度降低的算法调优
在使用梯度降低时,须要进行调优。
第1、算法的步长选择。在前面的算法描述中,我提到取步长为1,可是实际上取值取决于数据样本,能够多取一些值,从大到小,分别运行算法,看看迭代效果,若是损失函数的值在变小,说明取值有效,不然要增大步长。前面说了。步长太大,会致使迭代过快,甚至有可能错过最优解。步长过小,迭代速度太慢,很长时间算法都不能结束。因此算法的步长须要屡次运行后才能获得一个较为优的值。
第2、算法参数的初始值选择。初始值不一样,得到的最小值也有可能不一样,所以梯度降低求得的只是局部最小值;固然若是损失函数是凸函数则必定是最优解。因为有局部最优解的风险,须要屡次用不一样初始值运行算法,观测损失函数的最小值,选择损失函数最小化的初值。
第3、归一化。因为样本不一样特征的取值范围不同,可能致使迭代很慢,为了减小特征取值的影响,能够对特征数据归一化,也就是对于每一个特征x,求出它的指望x¯和标准差std(x),而后转化为x−x¯¯¯std(x)x−x¯std(x)
这样特征的新指望为0,新方差为1,迭代次数能够大大加快。
4)梯度降低的种类
第1、批量梯度降低法。每次对参数的更新都须要用到整个训练数据集,可以获得全局最优解,可是当数据量很大时训练速度会很慢。
第2、随机梯度降低法。他是每次 只选用一个样本进行迭代,训练速度当然获得很大提高,可是准确度降低了,获得的极可能不是最优解。容易陷入到局部最优解中。一直不会收敛,只是在最小值附近波动
第3、小批量(部分)梯度降低法,它是以上二者的结合。
对于损失函数与模型训练的理解
损失函数(loss function)是用来估量你模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,一般使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好。损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分。模型的结构风险函数包括了经验风险项和正则项,一般能够表示成以下式子:
一般损失函数(严格来讲是目标函数)由上面公式的两部分组成,前部分就是计算算法预测的值和训练样本真实标签之间的距离,不一样的距离计算方式表明了不一样的计算损失函数的方法。第二部分J(f)表明了正则化选项,当训练的出函数过于复杂时,可能会致使训练的参数过拟合了,这时须要引入正则化因子来控制模型的复杂度。防止过拟合的产生。
介绍完损失函数咱们介绍一下参数学习的方式,
ωj = ωj - λ ∂L(ωj) / ∂ωj
经过计算损失函数关于w参数的梯度来逐步调整w参数,使损失函数愈来愈小,完成模型的训练,参数达到收敛。