【机器学习笔记Ⅰ】3 代价函数

代价函数(Cost Function)

代价函数 (也称为损失函数,Loss Function )是机器学习中用于量化模型预测误差的函数。它衡量模型预测值(( \hat{y} ))与真实值(( y ))之间的差异,并通过优化算法(如梯度下降)调整模型参数(如权重 ( w ) 和偏置 ( b )),以最小化这种差异。


核心作用

  1. 评估模型性能:代价函数的值越小,说明模型预测越准确。
  2. 指导参数优化:为梯度下降等算法提供方向(如何调整参数以降低误差)。

常见代价函数

1. 均方误差(Mean Squared Error, MSE)
  • 用于回归问题(预测连续值,如房价、温度)。

  • 公式:

    • ( N ):样本数量。
    • ( y^{(i)} ):第 ( i ) 个样本的真实值。
    • ( \hat{y}^{(i)} ):第 ( i ) 个样本的预测值。
  • 特点

    • 对异常值敏感(平方放大大误差)。
    • 可导,适合梯度下降。

示例

  • 真实值 ( y = [2, 4, 6] ),预测值 ( \hat{y} = [1, 5, 6] )。
2. 交叉熵损失(Cross-Entropy Loss)
  • 用于分类问题(如二分类、多分类)。

  • 公式(二分类):

    • ( \hat{y}^{(i)} ) 是模型预测的概率(如逻辑回归输出)。
  • 特点

    • 惩罚预测概率与真实标签的偏差。
    • 与Softmax激活函数配合用于多分类。
3. 平均绝对误差(Mean Absolute Error, MAE)
  • 公式:

  • 特点

    • 对异常值鲁棒(误差线性增长)。
    • 不可导(优化时需特殊处理)。

为什么需要代价函数?

  • 参数学习的指南针

    例如,在线性回归中,通过最小化MSE找到最佳拟合直线。

  • 模型对比:不同模型可通过同一代价函数评估优劣。


代价函数 vs 损失函数

  • 损失函数(Loss Function):计算单个样本的误差。
  • 代价函数(Cost Function) :通常是所有样本损失的平均值(如MSE)。
    (实际使用时两者常混用。)

代码示例(MSE实现)

python 复制代码
import numpy as np

def mean_squared_error(y_true, y_pred):
    return np.mean((y_true - y_pred) ** 2)

# 示例
y_true = np.array([3, 5, 7])
y_pred = np.array([2.5, 5.1, 7.8])
print("MSE:", mean_squared_error(y_true, y_pred))  # 输出: 0.23

如何选择代价函数?

问题类型 代价函数 原因
回归(连续值预测) 均方误差(MSE) 对误差敏感,易优化。
分类(概率输出) 交叉熵损失(Cross-Entropy) 匹配概率分布,梯度稳定。
鲁棒性需求高 平均绝对误差(MAE) 减少异常值影响。

关键点总结

  1. 代价函数是模型优化的核心目标。
  2. 不同任务需选择不同代价函数(如回归用MSE,分类用交叉熵)。
  3. 梯度下降等算法通过计算代价函数的梯度来更新参数。
相关推荐
KaneLogger3 小时前
【Agent】openclaw + opencode 打造助手 安装篇
人工智能·google·程序员
知识浅谈4 小时前
一步步带你把 OpenClaw 玩宕机(附云服务器避坑部署教程)
人工智能
冬奇Lab4 小时前
OpenClaw 深度解析(四):插件 SDK 与扩展开发机制
人工智能·开源·源码阅读
IT_陈寒5 小时前
SpringBoot实战:5个让你的API性能翻倍的隐藏技巧
前端·人工智能·后端
机器之心6 小时前
让AI自我进化?斯坦福华人博士答辩视频火了,庞若鸣参与评审
人工智能·openai
iceiceiceice6 小时前
iOS PDF阅读器段评实现:如何从 PDFSelection 精准还原一个自然段
前端·人工智能·ios
AI攻城狮7 小时前
RAG Chunking 为什么这么难?5 大挑战 + 最佳实践指南
人工智能·云原生·aigc
yiyu07167 小时前
3分钟搞懂深度学习AI:梯度下降:迷雾中的下山路
人工智能·深度学习
掘金安东尼7 小时前
玩转龙虾🦞,openclaw 核心命令行收藏(持续更新)v2026.3.2
人工智能