您想知道的人工智能干货,第一时间送达
版权声明
转自闪客,版权属于原作者,用于学术分享,如有侵权留言删除 闪客:哟小宇,准时准点来啦,还记得上次《白话机器学习 | 找规律》我们聊到哪了么?
小宇:当然记得,我们要用一条线来拟合一堆点,上次说可以用每个点到这条线的偏离距离的总和来表示点与线的"贴合程度",这个数越小越好。然后你就给我来了个损失函数公式让我破防了。
闪客:哈哈没错,上次是我讲累了所以直接给你来了个公式把你吓了回去,那今天我们就专门来聊聊这个"损失函数"到底是个啥东西,为什么叫它"损失"。
小宇:是因为算出来的数特别让人"损失信心"吗?
闪客:哈哈哈,这个脑洞不错,但其实它的损失更像是"我们和完美结果之间的差距"。差距越大,损失就越大,差距越小,损失就越小。
小宇:哇,这个解释好理解!
闪客:来,我们先从直观的定义开始。假设某个点的真实值是 y,而我们的预测值是 ŷ 。你觉得两者的误差可以怎么表示?
小宇:很简单呀,直接用 y−ŷ 不就行了?
闪客:不错!这叫"误差"或"偏差"。但问题来了,你觉得要是我们把所有点的误差加起来,有啥问题?
小宇:嗯~正的误差和负的误差会互相抵消,最终看起来像没什么偏差?
闪客:没错,像刚刚的那几个 XY 的点,如果按这种算法来评估,就有可能找到一种驴唇不对马嘴的预测,但它的损失却是 0!
小宇:哈哈,确实离了大谱了,那可咋办呢?
闪客:为了不让误差"藏着掖着",我们可以给它取个绝对值,这样正负误差都成了正的:
小宇:哦,这样挺公平的呀。诶等等,这又有个新的数学公式,你得解释解释。
闪客:额,你是没上过初中么?这个符号就是求和符号,表示把所有的 y - ŷ 的值都累加起来。比如把等差数列写成求和符号的形式就是这样。
小宇:哦懂了,这好像确实是初中就学过的,嘿嘿。
闪客:回过头来看,这样确实很公平,但有个小问题,就是绝对值有"尖点",数学优化的时候不太友好,计算起来跟被卡在牙缝里一样麻烦。
小宇:嗯确实,做题的时候其实最讨厌碰到绝对值符号,还得分段讨论,有一种情况没想全就要扣分,最头疼了。
闪客:所以我们更喜欢"平方误差",就是把误差平方后再加起来:
小宇:哇!这的确是个绝妙的办法呀,平方之后,正负误差都成正的!而且大的误差更显眼,就像班里成绩特别差的同学会被老师特别关照一样。
闪客:哈哈哈,没错!我们再平均一下,去掉样本数量大小因素的影响,这就叫"均方误差"(Mean Squared Error, MSE),看起来是不是又简单又合理?
小宇:嗯,这次终于没有突然甩出高大上的东西,我的信心回来了一点。
闪客:好了,找到了损失函数,还记得我们要干啥不?
小宇:记得,让损失函数最小!
闪客:不错,这时候我们得把 ŷ 表示出来,我们可以假设预测的直线的方程是 y = wx + b,像下面这样。
不过我们可以先简化一点,认为这条直线穿过原点,这样就可以少个 b。
这个时候带入 MSE 中,就是
我们想要计算的就是,w 为多少的时候,这个损失函数的值最小。
小宇:完了完了,我已经头疼了,这里咋这么多字母,我已经晕了。
闪客:别急,这些字母里其实只有 w 是未知的,其他的都是已知数。我们举个简单的例子就明白了了。我们先不看上面那个复杂的例子,假设 x=[1,2,3,4] y=[1,2,3,4] 这样傻子都能看出来规律对吧,我们就用这个来举例。
小宇:哈哈这个简单,不用算也知道就是 y = x
闪客:没错,我们就用这个算一下,把这里的 x 和 y 的值都代入到刚刚的损失函数中。
接下来就是一个标准的求函数 L 的极小值点的过程,这种苦力活我怎么可能自己做呢,交给 AI 吧。
小宇:哈哈,你可真懒,不过这过程解释得真细致呀,要让你讲肯定不能这么有耐心。我再补个图吧,刚刚 w = 1 就表示预测直线的方程是 y = x,就像这样,确实损失最小呢!
闪客:没错,实际上刚刚的
画成图就是个抛物线,寻找最小值点就是寻找抛物线的最低点。
小宇:原来如此!诶?那如果回到最初,我们不简化预测函数的直线方程,直接是 y = wx + b 呢?这要怎么办?
闪客:一样的,这样最终代入到损失函数后,就是关于 w 和 b 两个未知变量的函数,求极值点如果画成图的话,就不再是抛物线了,而是三维坐标中的曲面。
小宇:原来如此!不过求二次方程的极值已经是我数学水平的极限了,这上升到三维想都不敢想呀,更何况如果是四维五维可咋整?
闪客:没错,理论上也是可以求出来的,但这样一步到位求出最小值会随着维度变高、函数形式变复杂而越来越困难,更何况有的时候还没法一步到位求出全局的最优解。
小宇:我的天呐,那该怎么办呀?
闪客:今天的知识点够密集啦,等下次来的时候我给你讲一个叫梯度下降的办法,不但可以简化问题的求解难度,而且还非常适合使用计算机来计算。
小宇:嗯今天确实已经够头大啦,期待下次哟!
闪客:是不是都听饿了,我听说楼下新开了家麻辣烫,一块去吃个饭吧。
小宇:哦今天思考得有点头疼,我回去休息一下,下次吧~
闪客:哦~