损失函数 Loss Function用来衡量模型“错的有多离谱”损失函数 模型预测值 vs 真实标签之间的差距训练目标找到一组权重让损失函数的值最小化- 损失越大 预测越差需要优化- 损失越小 预测越好接近目标常见的损失函数函数名中文名用途MSE均方误差回归任务预测房价、温度等连续值Cross-Entropy交叉熵分类任务猫狗识别、手写数字等BCE二分类交叉熵二分类任务专用(1)均方误差数学公式MSC1n∗∑(ypred,i−ytrue,i)2 MSC \cfrac 1n * \sum (y_{pred,i} -y_{true,i})^2MSCn1​∗∑(ypred,i​−ytrue,i​)2**特点**对离群值敏感误差被平方放大**用途**房价预测 、股票预测、温度预测代码实现defmse_loss(y_pred,y_true):returnnp.mean((y_pred-y_true)**2)MSE对预测值的梯度求导得∂L∂ypred2n(ypred−ytrue) \frac{\partial L}{\partial y_{\text{pred}}} \frac{2}{n} (y_{\text{pred}} - y_{\text{true}})∂ypred​∂L​n2​(ypred​−ytrue​)代码实现defmse_gradient(y_pred,y_true):nlen(y_pred)return2*(y_pred-y_true)/n(2)交叉熵数学公式L−1n∑i1nlog⁡(pi,ytrue,i) L -\frac{1}{n} \sum_{i1}^n \log(p_{i, y_{\text{true}, i}})L−n1​i1∑n​log(pi,ytrue,i​​)其中pi,ytrue,ip_{i, y_{\text{true}, i}}pi,ytrue,i​​是第iii个样本正确类别的预测概率特点对错误分类惩罚呈指数级增长如果模型对正确类别给出高概率如 0.99损失很小≈0.01如果模型对正确类别给出低概率如 0.01损失很大≈4.6模型越不自信惩罚越重用途图像分类、文本分类、多类别识别任务代码实现defcross_entropy_loss(probs,y_true_idx):nlen(probs)correct_probsprobs[np.arange(n),y_true_idx]correct_probsnp.clip(correct_probs,1e-12,1.0)# 防止 log(0)return-np.mean(np.log(correct_probs))defsoftmax(x):x_shiftedx-np.max(x,axis-1,keepdimsTrue)exp_xnp.exp(x_shifted)returnexp_x/np.sum(exp_x,axis-1,keepdimsTrue)(3)二分类交叉熵数学公式L−1n∑i1n[yilog⁡(pi)(1−yi)log⁡(1−pi)] L -\frac{1}{n} \sum_{i1}^{n} \left[ y_i \log(p_i) (1 - y_i) \log(1 - p_i) \right]L−n1​i1∑n​[yi​log(pi​)(1−yi​)log(1−pi​)]其中pip_ipi​是预测为正类的概率yi∈{0,1}y_i \in \{0, 1\}yi​∈{0,1}是真实标签特点专门用于二分类问题是/否、真/假、正例/负例当预测正确且自信时损失接近 0当预测错误时损失迅速增大用途垃圾邮件检测、欺诈检测、疾病筛查、点击率预测代码实现defbinary_cross_entropy(y_pred,y_true): 二分类交叉熵 (Binary Cross Entropy) 公式: L -[y*log(p) (1-y)*log(1-p)] epsilon1e-12y_prednp.clip(y_pred,epsilon,1-epsilon)return-np.mean(y_true*np.log(y_pred)(1-y_true)*np.log(1-y_pred))