IRLS(迭代加权最小二乘)详解:基于 Huber Loss 的鲁棒回归

IRLS(迭代加权最小二乘)详解:基于 Huber Loss 的鲁棒回归

一、问题背景

在数据拟合中,最常见的方法是最小二乘法:

min⁡∑i=1n(yi−f(xi))2 \min \sum_{i=1}^n (y_i - f(x_i))^2 mini=1∑n(yi−f(xi))2

这种方法的核心问题是:

对异常值非常敏感


二、异常值带来的问题

考虑如下数据:

(1,1),(2,2),(3,3),(4,4),(5,100) (1,1), (2,2), (3,3), (4,4), (5,100) (1,1),(2,2),(3,3),(4,4),(5,100)

最后一个点明显是异常值。

最小二乘会平方放大误差:

(100−5)2=9025 (100 - 5)^2 = 9025 (100−5)2=9025

导致模型严重偏移。


三、Huber Loss:鲁棒损失函数

Huber Loss 结合了 L2 和 L1 的优点:

ρ(r)={12r2∣r∣≤δδ(∣r∣−12δ)∣r∣>δ \rho(r) = \begin{cases} \frac{1}{2}r^2 & |r| \le \delta \\ \delta(|r| - \frac{1}{2}\delta) & |r| > \delta \end{cases} ρ(r)={21r2δ(∣r∣−21δ)∣r∣≤δ∣r∣>δ

解释:

  • 小误差:使用平方损失(精确拟合)
  • 大误差:线性增长(降低异常点影响)

四、IRLS 的核心思想

目标函数:

min⁡∑ρ(ri) \min \sum \rho(r_i) min∑ρ(ri)

其中:

ri=yi−f(xi) r_i = y_i - f(x_i) ri=yi−f(xi)

通过推导可得权重更新公式:

wi=ψ(ri)ri w_i = \frac{\psi(r_i)}{r_i} wi=riψ(ri)

其中:

ψ(r)=dρdr \psi(r) = \frac{d\rho}{dr} ψ(r)=drdρ


五、Huber Loss 对应权重

wi={1∣ri∣≤δδ∣ri∣∣ri∣>δ w_i = \begin{cases} 1 & |r_i| \le \delta \\ \frac{\delta}{|r_i|} & |r_i| > \delta \end{cases} wi={1∣ri∣δ∣ri∣≤δ∣ri∣>δ

含义:

  • 小误差:权重为 1
  • 大误差:权重减小

六、IRLS 算法流程

步骤如下:

  1. 初始化权重:

wi=1 w_i = 1 wi=1

  1. 求解加权最小二乘:

β=(XTWX)−1XTWy \beta = (X^T W X)^{-1} X^T W y β=(XTWX)−1XTWy

  1. 计算残差:

r=y−Xβ r = y - X\beta r=y−Xβ

  1. 更新权重:

wi=ψ(ri)ri w_i = \frac{\psi(r_i)}{r_i} wi=riψ(ri)

  1. 重复直到收敛

七、直观理解

IRLS 可以理解为:

不断降低异常点的影响

过程如下:

  • 第一轮:所有点一样重要
  • 第二轮:发现异常点,降低其权重
  • 后续:逐步忽略异常点

八、Python 示例代码

python 复制代码
import numpy as np

def huber_weights(r, delta):
    w = np.ones_like(r)
    mask = np.abs(r) > delta
    w[mask] = delta / np.abs(r[mask])
    return w

def irls(X, y, delta=1.0, max_iter=20):
    n, d = X.shape
    w = np.ones(n)

    for _ in range(max_iter):
        W = np.diag(w)
        beta = np.linalg.inv(X.T @ W @ X) @ (X.T @ W @ y)
        r = y - X @ beta
        w = huber_weights(r, delta)

    return beta

九、应用场景

IRLS 常用于:

  • 鲁棒回归
  • Logistic 回归
  • 信号处理
  • 计算机视觉

十、总结

IRLS 的本质是:

将复杂的鲁棒优化问题,转化为一系列加权最小二乘问题

结合 Huber Loss,可以有效降低异常值影响,提高模型稳定性。

相关推荐
大郭鹏宇19 小时前
适老化农村电商平台实战(上):睿邻AI乡镇商城项目概览与架构设计
人工智能
ctlover19 小时前
数据分析案例源码级教程:TMDB-TOP100电影数据统计分析
信息可视化·数据挖掘·数据分析
长三角活动观察19 小时前
苏州独石传媒项目SOP拆解:从“金鸡湖直播”到“创客中国”,大型活动人流管控与动线设计全流程节点控制方案
大数据·人工智能·传媒
DataScope19 小时前
去哪里找行业数据?亿欧数据靠谱吗实用吗
大数据·人工智能
江屿风19 小时前
【STM32基础篇】【嵌入式生态问题及历史追溯】流食般投喂
大数据·开发语言·人工智能·笔记·stm32·嵌入式硬件
智塑未来19 小时前
高端仿真软件落地的隐藏壁垒:底层适配与专业服务商格局重构
人工智能·重构
mmsx19 小时前
我明明调用了 zoomToBounds,地图却总是停在别处?延迟加到 5 秒也没用,真相只有一个
android·人工智能·bug·地图
PNP机器人19 小时前
康奈尔联合Kinova研发自适应触感护理机械臂
人工智能·力控机器人
六年码农19 小时前
2026最新开源 屏译ScreenTranslator 0.4.4 开源 全屏实时翻译教程
运维·人工智能·flutter·开源
尚可签19 小时前
基于 Spring Boot + Vue 的 AI 智能在线订餐系统
vue.js·人工智能·spring boot