【机器学习笔记Ⅰ】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. 梯度下降等算法通过计算代价函数的梯度来更新参数。
相关推荐
老师用之于民4 分钟前
【DAY21】Linux软件编程基础&Shell 命令、脚本及系统管理实操
linux·运维·chrome·经验分享·笔记·ubuntu
iFeng的小屋8 分钟前
【2026年新版】Python根据小红书关键词爬取所有笔记数据
笔记·爬虫·python
HAREWORK_FFF9 分钟前
近几年,非技术岗转向AI岗位的现实可能性
人工智能
weixin_6689 分钟前
深度分析:多模态、全模态、VLM、ASR、TTS、STT、OCR- AI分析分享
人工智能
LeonDL16810 分钟前
基于YOLO11深度学习的衣物识别系统【Python源码+Pyqt5界面+数据集+安装使用教程+训练代码】【附下载链接】
人工智能·python·pyqt5·yolo数据集·yolo11数据集·yolo11深度学习·衣物识别系统
山岚的运维笔记13 分钟前
SQL Server笔记 -- 第14章:CASE语句
数据库·笔记·sql·microsoft·sqlserver
犀思云14 分钟前
企业总部网络全球化扩张:利用FusionWAN NaaS 破解“网络成本瓶颈”
网络·人工智能·机器人·智能仓储·专线
宵时待雨15 分钟前
STM32笔记归纳8:时钟
笔记·stm32·单片机·嵌入式硬件
Data_Journal19 分钟前
如何使用 Python 解析 JSON 数据
大数据·开发语言·前端·数据库·人工智能·php
陈天伟教授19 分钟前
人工智能应用- 语言理解:09.大语言模型
人工智能·语言模型·自然语言处理