U-Net图像语义分割中梯度下降的直观解释

1. 图像语义分割的原理

图像语义分割任务的目标是:逐像素分类。也就是说,对输入图像中的每一个像素都预测其所属类别(例如前景/背景或多类别场景)。

  • 输入:一张图片

  • 输出:同尺寸的 mask,每个像素属于某个类别(例如:前景/背景,或者多类分割)。

行人语义分割 任务中:

  • 类别 1:行人(前景)

  • 类别 0:背景

⚠️ 注意:这里讨论的是 语义分割,即对所有像素赋予类别标签;并不区分图像中不同个体的行人实例。

U-Net 采用 编码器-解码器结构

  • 编码器逐步下采样,提取语义特征。

  • 解码器逐步上采样,恢复空间分辨率。

  • 跳跃连接 (skip connection) 把低层细节特征与高层语义特征融合,使输出既有语义信息又保留边缘细节


2. 损失函数:以二分类交叉熵 (BCE) 为例

为了训练模型,需要定义损失函数,衡量预测结果与真实标签的差距。

BCE 损失函数:

  • N:像素总数

  • yi:真实标签(0=背景,1=行人)

  • pi:模型预测的属于行人的概率

例子

假设某个像素真实是行人 (y=1),模型预测概率为 p=0.9。

代入公式:

数值结果:

说明预测很好,损失较小。

如果预测错误,例如 p=0.1:

损失大得多,模型会受到强烈惩罚。


3. 梯度的计算

要优化模型,需要计算损失对参数的梯度。

对预测概率 pi求导:

这就是反馈信号:

  • 如果真实 yi=1,梯度是 −1/pi
    → 当 pi​ (预测错,模型信心不足),梯度大 → 强烈惩罚,推动模型增大 pi。

  • 如果真实 yi=0,梯度是 1/(1−pi)
    → 当 pi (预测错,把负类当正类),梯度大 → 强烈惩罚,推动模型减小 pi。


4. 梯度下降:约束模型

梯度表示损失函数在当前点对参数的变化趋势,它指向损失函数增长最快的方向。要让损失变小,必须沿着 梯度的反方向 更新,也就是减去梯度

参数更新公式:

  • θ:模型参数(卷积核权重等)

  • η:学习率

  • ∇θL:损失函数对参数的梯度

直观理解:

  • 预测正确 → 损失小,梯度小 → 参数更新幅度小。

  • 预测错误 → 损失大,梯度大 → 参数快速调整。

通过反复迭代,模型逐渐学会让行人像素概率接近 1,背景像素概率接近 0,从而完成分割任务。


5. 总结

  • 分割原理逐像素分类,U-Net 编码+解码+跳跃连接。

  • 损失函数:BCE 衡量预测概率与真实标签的差异。

  • 梯度:通过对损失函数求导,得到反馈信号,指示模型参数该往哪个方向更新。

  • 梯度下降:不断沿损失下降方向更新参数,最终让模型学会正确分割图像。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值