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

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。