机器学习之损失函数(四大常见的损失函数学习)
机器学习之损失函数四大常见的损失函数学习核心说明损失函数用于衡量模型预测值与真实值的偏差偏差越小模型效果越好。以下是四种常用损失函数的关键要点适配快速回顾。一、0-1损失函数0-1 Loss Function1. 定义最朴素的损失函数仅判断预测值与真实值是否一致一致则损失为0不一致则损失为1。2. 公式设真实值为yyy预测值为y^\hat{y}y^取值均为0或1适用于分类任务L(y,y^){0,yy^1,y≠y^L(y, \hat{y}) \begin{cases} 0, y \hat{y} \\ 1, y \neq \hat{y} \end{cases}L(y,y^){0,1,yy^yy^3. 特点优点简单直观直接反映预测对错计算成本极低。缺点不连续、不可导无法用于梯度下降优化梯度下降要求损失函数可导未区分错误预测的严重程度如预测错误的概率0.9和0.6损失均为1。4. 适用场景仅用于简单的分类任务评估如初步判断模型预测准确率不用于模型训练。具体例子假设用模型判断邮件是否为垃圾邮件分类任务y1为垃圾邮件y0为正常邮件。若某封垃圾邮件y1被预测为正常邮件ŷ0损失为1若被正确预测为垃圾邮件ŷ1损失为0无论预测错误的概率是0.1几乎判断为正常还是0.4接近判断为垃圾损失均为1无法区分错误程度。二、平方损失函数Squared Loss Function1. 定义又称均方误差MSE计算预测值与真实值差值的平方放大较大偏差的损失。2. 公式设真实值为yyy预测值为y^\hat{y}y^适用于回归任务取值为连续值L(y,y^)(y−y^)2L(y, \hat{y}) (y - \hat{y})^2L(y,y^)(y−y^)2批量样本损失均方误差MSE1n∑i1n(yi−y^i)2MSE \frac{1}{n}\sum_{i1}^{n}(y_i - \hat{y}_i)^2MSEn1i1∑n(yi−y^i)2n为样本数3. 特点优点连续、可导便于使用梯度下降优化计算简单对小偏差敏感。缺点对异常值离群点极度敏感异常值会导致损失急剧增大影响模型参数优化。4. 适用场景适用于无异常值、数据分布均匀的回归任务如房价预测、销量预测无极端异常数据。具体例子预测某小区房价回归任务真实值y为实际房价。假设3个样本的真实房价分别为100万、120万、110万模型预测值分别为102万、118万、112万计算单个样本损失(100-102)²4、(120-118)²4、(110-112)²4损失均匀若出现异常值如真实房价100万预测值150万损失为(100-150)²2500会被急剧放大严重影响模型参数。三、绝对损失函数Absolute Loss Function1. 定义又称平均绝对误差MAE计算预测值与真实值差值的绝对值对偏差的惩罚是线性的不放大异常值。2. 公式设真实值为yyy预测值为y^\hat{y}y^适用于回归任务L(y,y^)∣y−y^∣L(y, \hat{y}) |y - \hat{y}|L(y,y^)∣y−y^∣批量样本损失平均绝对误差MAE1n∑i1n∣yi−y^i∣MAE \frac{1}{n}\sum_{i1}^{n}|y_i - \hat{y}_i|MAEn1i1∑n∣yi−y^i∣3. 特点优点对异常值鲁棒性强异常值的损失不会被放大直观反映预测偏差的平均水平。缺点在yy^y \hat{y}yy^处不可导绝对值函数拐点可能影响梯度下降的收敛速度。4. 适用场景适用于存在异常值的回归任务如收入预测、股价预测易出现极端值。具体例子预测某行业从业者月收入回归任务真实值y为实际收入。3个样本真实收入为8000元、10000元、12000元模型预测值为8500元、9500元、12500元单个样本损失分别为500、500、500损失均匀若出现异常值真实收入8000元预测值18000元损失为|8000-18000|10000不会像平方损失那样被放大对模型影响较小。四、对数似然损失函数Log-Likelihood Loss Function1. 定义基于概率似然思想衡量模型预测概率与真实标签的匹配度核心用于分类任务二分类、多分类常被称为交叉熵损失二分类场景下对数似然损失与交叉熵损失等价。2. 公式分场景1二分类场景真实标签y∈{0,1}预测概率p^P(y1∣y^)\hat{p} P(y1|\hat{y})p^P(y1∣y^)L(y,p^)−[ylogp^(1−y)log(1−p^)]L(y, \hat{p}) -[y\log\hat{p} (1-y)\log(1-\hat{p})]L(y,p^)−[ylogp^(1−y)log(1−p^)]2多分类场景真实标签为独热编码yky_kyk为第k类的真实值p^k\hat{p}_kp^k为预测第k类的概率L(y,p^)−∑k1Kyklogp^kL(y, \hat{p}) -\sum_{k1}^{K}y_k\log\hat{p}_kL(y,p^)−k1∑Kyklogp^kK为类别数3. 特点优点可导适合梯度下降优化对预测概率的偏差敏感能有效区分“预测错误的严重程度”如预测正类概率0.1和0.4损失不同。缺点当预测概率为0或1时会出现log(0)的无意义情况需加入微小值如1e-10避免计算错误对类别不平衡数据敏感需结合权重调整。4. 适用场景核心用于分类任务如垃圾邮件识别、图像分类、疾病诊断是深度学习分类模型如CNN、Transformer的常用损失函数。具体例子1. 二分类疾病诊断真实标签y1患病模型预测患病概率p̂0.9损失为-[1×log0.9 0×log0.1]≈0.105若预测概率p̂0.4损失为-[1×log0.4 0×log0.6]≈0.916能明显区分两种错误的严重程度。2. 多分类图像分类真实标签为“猫”独热编码y₁1y₂0y₃0模型预测“猫”的概率p̂₁0.8“狗”p̂₂0.1“兔”p̂₃0.1损失为-(1×log0.8 0×log0.1 0×log0.1)≈0.223匹配度越高损失越小。补充核心对比快速区分分类任务首选对数似然损失交叉熵简单评估用0-1损失。回归任务无异常值用平方损失有异常值用绝对损失。可导用于训练平方损失、对数似然损失不可导仅用于评估0-1损失、绝对损失拐点处不可导。综上四种损失函数各有优劣核心是根据任务类型分类/回归、数据特点有无异常值、类别是否平衡选择适配的函数。实际应用中需结合数据情况灵活取舍必要时可对损失函数进行调整如给对数似然损失增加类别权重以提升模型性能。