【机器学习笔记Ⅰ】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. 梯度下降等算法通过计算代价函数的梯度来更新参数。
相关推荐
天远API10 分钟前
零信任架构实战:基于天远行驶OCR证识别构建自动化智能停车网关
运维·人工智能·架构·自动化
泡泡鱼(敲代码中)22 分钟前
Python语法技术学习笔记
开发语言·笔记·python·学习·pycharm
实名上网宋凯宣27 分钟前
【Codex-智能体】
人工智能·codex·skills
CTA终结者27 分钟前
量化实现难,先看交易想法有没有说清
人工智能·python
若丶相见40 分钟前
Codex、Claude Code、WorkBuddy + Tabbit CLI:让 AI 操控浏览器发文章
人工智能·浏览器
拼搏奋斗,无悔于青春44 分钟前
AI演示看着很厉害,一上线怎么就不行了?试驾的路,是销售挑好的
人工智能
昇腾知识体系1 小时前
昇腾 AscendC Tiling 设计实战:TilingFunc/TilingData 完整示例与 UB 容量预算
人工智能·华为·知识图谱
hqyjzsb1 小时前
Python 技术人转型 AI:CAIE Level I、Level II 对比怎么选
开发语言·人工智能·python·金融·数据挖掘·数据分析·aigc
3d打印专业号1 小时前
钣金小批量试制在东莞怎么选厂?从精度、交期到全工艺链的选型拆解
人工智能
数智前线1 小时前
机器人补上“最后一厘米”,触觉的战争打响了
人工智能