算法基础知识-梯度,损失函数,目标函数

1.梯度

梯度是一个向量(矢量),它的数学含义是函数f(x,y)在可导处的变化速率,梯度越小,表示函数越趋近与某个最小极值。所以在机器学习算法中,通过梯度下降算法来对函数进行调优。

2.损失函数-Loss-Function

损失函数是衡量样本平均误差相关的函数,损失函数的数学意义是衡量模型输入与输出之间的误差值大小的函数。模型训练的目标就是求出使得损失函数取值最小的时候的模型参数。

损失函数是用来评价模型预测结果与真实结果之间的一致程度的。模型训练的过程就是通过损失函数更新模型参数使得损失函数的值下降到预期目标(收敛)或者达到最大训练次数。

损失函数可以自定义,但是一般每种算法都有比较推荐的或者合适的损失函数。

损失函数的种类有很多,不同的算法也会选择不同的损失函数。从衡量误差的方法上,一般分为三类:

1)0-1损失函数,0表示预测值和实际值相等,1表示不相等,可以看出这种损失函数直接衡量结果与实际值之间是否相等。但是这样做有时候会过于严格,所以我们可以定义损失函数当误差小于多少的时候算相等,大于多少的时候算不相等。网上说在感知机算法中常用这种损失函数。

2)绝对值损失函数,直接计算预测值和实际值的差值。

3)平方损失函数square-loss

预测值与实际值的差值的平方,一般用于线性回归

4)对数损失函数log-loss,预测值和实际值符合高斯分布,然后用极大似然估计法计算误差出现的概率的最大值。不知道这里的符合高斯分布是实际问题符合这个分布还是说当模型的结果符合这个分布的时候才算是一个好模型?

对数损失函数的数学意义是 当样本为X时,预测值为Y的最大概率,一般用于逻辑回归等分类场景(回归问题一般使用绝对值损失函数和平方损失函数)

5)指数损失函数

        显而易见这是指数形式的损失函数,说是在boosting算法中使用

6)铰链损失函数

        在SVM中使用,y是预测值,在-1到+1之间,t为目标值(-1或+1)。其含义为,y的值在-1和+1之间就可以了,并不鼓励|y|>1|y|>1,即并不鼓励分类器过度自信,让某个正确分类的样本的距离分割线超过1并不会有任何奖励,从而使分类器可以更专注于整体的分类误差

7)回归任务中的损失函数

MSE-均方误差,即误差的平方和的均值。

L2-误差的平方和的开方,欧几里得距离。

MAE-误差绝对值之和的均值。

L1-误差绝对值之和。

3.损失函数与准确率

在分类任务中,准确率更加直观的反映了模型的效果,更加直观,可解释,其实准确率就是0-1损失函数。

但是对于回归任务,准确率不适用。而且准确率是不可微分的,在训练过程中,为了调整参数,还是需要通过损失函数来计算误差的梯度。

4.目标函数

模型其实可以看做是一个函数表达,表达了输入样本特征与预测值之间的函数关系,前面提到的损失函数可以用于衡量模型预测结果与实际结果之间的平均误差大小,损失函数代表着模型的拟合效果,但是并不是说损失函数越小,模型的效果就一定好,因为会存在过拟合的问题。所以训练中使用的优化函数,其实是包含了经验损失函数+结构风险函数的,结构风险函数是为了防止函数结构过于复杂而出现过拟合的问题,常见的L1,L2正则化就是为了解决这个问题。这两个部分组合起来的函数就是目标函数,也是我们要优化的函数。

你可能感兴趣的:(算法,推荐算法,机器学习)