浅谈AI落地之-关于数据增广的思考

 前言

曾在游戏世界挥洒创意,也曾在前端和后端的浪潮间穿梭,如今,而立的我仰望AI的璀璨星空,心潮澎湃,步履不停!愿你我皆乘风破浪,逐梦星辰!

数据增广中的mixup(Mixup Augmentation)

简单的来说,Mixup 是一种 数据增强(Data Augmentation) 技术,通过线性插值混合两张图片及其标签,使模型学习到更平滑的决策边界,提高泛化能力。

1. 具体流程

  • 随机选取两张图片 x1,x2​ 及其标签 y1,y2​
  • 使用 Mixup 公式计算新的图像和标签: x′=λx1+(1−λ)x,​ y′=λy1+(1−λ)y,​ 其中,λ是从 Beta 分布中采样的权重: λ∼Beta(α,α)
  • 通常 α\alphaα 设为 0.2 ~ 0.4

2. 示例(输入 & 输出)

输入

两张 32×32 的图片(假设是 CIFAR-10 数据集),分别属于「猫(类别 3)」和「狗(类别 5)」。

  • x1x_1x1​:猫图片
  • y1=[0,0,0,1,0,0,0,0,0,0]
  • x2x_2x2​:狗图片
  • y2=[0,0,0,0,0,1,0,0,0,0]
  • 设 λ=0.7
Mixup 计算

1. 计算新的图片

x′=0.7×x1+0.3×x2

新图片 x′ 是70% 猫 + 30% 狗 的混合图像。

2. 计算新的标签

y′=0.7×y1+0.3×y2,y′=[0,0,0,0.7,0,0.3,0,0,0,0]

新的标签表示「70% 猫 + 30% 狗」。

输出
    • 新的混合图片(视觉上类似半透明的猫+狗)。
    • 新的标签:猫 70%,狗 30%(软标签)。

3. Mixup 的 Python 代码

import numpy as np
import torch

def mixup_data(x1, y1, x2, y2, alpha=0.4):
    """Mixup 数据增强"""
    lam = np.random.beta(alpha, alpha)  # 采样 λ
    x_mixed = lam * x1 + (1 - lam) * x2
    y_mixed = lam * y1 + (1 - lam) * y2
    return x_mixed, y_mixed

# 假设 x1, x2 是两张图片(PyTorch Tensor),y1, y2 是 one-hot 标签
x1 = torch.rand(3, 32, 32)  # 假设 RGB 图片
x2 = torch.rand(3, 32, 32)
y1 = torch.tensor([0, 0, 0, 1, 0, 0, 0, 0, 0, 0])  # 类别 3(猫)
y2 = torch.tensor([0, 0, 0, 0, 0, 1, 0, 0, 0, 0])  # 类别 5(狗)

x_mixed, y_mixed = mixup_data(x1, y1, x2, y2)

print(y_mixed) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值