小编前几天一直在学习机器学习的知识,突然有一天,女朋友经过我电脑前,指着屏幕上的字说:“损失函数”是啥意思呀。本着我对她的了解,就算小编跟她说:“损失函数是一种可以吃的东西,很多人喜欢吃”。她也会回答好厉害的样子。
那天之后,小编观察了许多涉及损失函数的内容,都不外乎一大堆的公式,对一些数学和抽象思维还是有一定门槛的,于是小编不严谨的总结了一套说辞,用来给女朋友科普啥叫损失函数,如果你女朋友也问到你同样的问题,你除了回答“说了你也不懂”之外,也可以试试这样解释?
首先,我们先来回顾一下机器学习模型。
机器学习模型:就是总结样本中的”经验”,学习出来的一个模型,通过这个模型,可以对具有特征的样本进行预测,得到一个具体的预测值(回归)或者类别(分类)。
而机器学习的“学习”过程就是最小化损失函数的过程。
拿机器学习分类任务来说,分类任务的目的是要将不同类别的样本尽量划分的更加准确,那么我们这时就可以来定义一个标准,如果有一个模型,它预测样本的分类与样本的实际分类一致的话,得一分。如果预测样本的分类与样本实际的分类不一致的话则不得分。
那么同时10个模型参加比赛,得分高的模型自然是更优的模型。这个计算得分的机制,就是损失函数,只不过损失函数是相反的,即预测样本的类别与实际样本类别一致的话,损失为0。预测样本与实际样本类别不一致,损失将比较大。
也就是说,在同一标准下,损失越小,模型越精确。这也是为什么机器学习的过程是将损失函数优化到最小的过程。
可能从概念上同学们还是有些许不明白,下面咱们通过一个实际例子来了解一下。
我们有以下数据(鸡鸭分类)
接下来我们要选择一个适合的模型,来对数据进行分类。现在有两个模型,模型A分类规则是,只有是有两只脚的就判定为鸡、模型B分类规则是有两只脚且嘴巴是尖的并且颜色是黄色的动物是鸡,其余的是鸭。那么通过两种模型对现有样本进行预测,可以发现模型A预测对3个,预测错4个。模型B预测准确6个,预测错误1个。那么这次较量中,模型A的损失(误差)为4,模型B损失(误差)为0。毫无疑问模型B是更好的模型。
损失函数其实就是上述例子中模型所表现的误差,那么机器学习中最优化损失函数的过程其实是通过损失函数反过来优化模型参数,例如上述例子中模型B,可以计算出损失函数为1,那么分析一下为什么会出现这一个损失(误差),是因为模型的分类规则导致,那么我要避免这个损失的出现,我就反过来调整一下规则,将规则修改为:所有两只脚、嘴巴是尖的、颜色是黄色或者红色的动物是鸡。
调整完规则之后,我们再计算一次损失,发现损失降为了0,这样我们就成功的优化了模型,而机器学习实际上就是自动的完成了这个优化过程。
实际机器学习算法中有许许多多各式各样的损失函数,如逻辑回归的交叉熵损失、线性回归的均方根误差等,理解了损失函数对理解机器学习有非常重要的帮助,你理解了吗? |