mix的中文是什么_mix是最小的意思吗

mix的中文是什么_mix是最小的意思吗《mixup:BEYONDEMPIRICALRISKMINIMIZATION》2017(ICLR2018),HongyiZhangetal.Mixup,MIT和FAIRQ:为什么dataaugmentation是理解为控制模型复杂度?A:准确地说,我觉得dataaugmentation既不能简单地理解为增加trainingdata,也不能简单地理解为控制模型复杂度,而是两种效果兼而有之。考虑图像识别里常用的改变aspectratio做dataaugmentation的


Jetbrains全系列IDE稳定放心使用

《mixup:BEYOND EMPIRICAL RISK MINIMIZATION》

  • 2017(ICLR2018),Hongyi Zhang et al. Mixup ,MIT和FAIR

Q: 为什么data augmentation是理解为控制模型复杂度?

A: 准确地说,我觉得data augmentation既不能简单地理解为增加training data,也不能简单地理解为控制模型复杂度,而是两种效果兼而有之。考虑图像识别里常用的改变aspect ratio做data augmentation的方法,生成的图像虽然和真实图像相似,但是并不是来自于data distribution,更不是它的i.i.d.抽样。而经典的supervised learning以及统计学习理论的基本假设就是训练集和测试集都是data distribution的i.i.d.抽样,所以这并不是经典意义上的增加training data。这些合成的training data的作用,流行的解释是“增强模型对某种变换的invariance”。这句话反过来说,就是机器学习里经常提到的“减少模型估计的variance”,也就是控制了模型的复杂度。需要注意的是,L2正则化、dropout等等也都是在控制模型复杂度,只不过它们没有考虑数据本身的分布,而data augmentation属于更加机智的控制模型复杂度的方法。

其实反过来看,L2正则化和dropout也各自等价于某种data augmentation。参考Vicinal Risk Minimization 和 [1506.08700] Dropout as data augmentation

Q: label线性加权后,不是得到了这两个样本中间的类别了吗?

A: label用的是one-hot vector编码,可以理解为对k个类别的每个类给出样本属于该类的概率。加权以后就变成了”two-hot”,也就是认为样本同时属于混合前的两个类别。

另一种视角是不混合label,而是用加权的输入在两个label上分别计算cross-entropy loss,最后把两个loss加权作为最终的loss。由于cross-entropy loss的性质,这种做法和把label线性加权是等价的,大家可以自行思考一下。

 

mix的中文是什么_mix是最小的意思吗

import numpy as np
import torch

def mixup_data(x, y, alpha=1.0, use_cuda=True):
 
    '''Compute the mixup data. Return mixed inputs, pairs of targets, and lambda'''
    if alpha > 0.:
        lam = np.random.beta(alpha, alpha)
    else:
        lam = 1.
    batch_size = x.size()[0]
    if use_cuda:
        index = torch.randperm(batch_size).cuda()
    else:
        index = torch.randperm(batch_size)
 
    mixed_x = lam * x + (1 - lam) * x[index,:] # 自己和打乱的自己进行叠加
    y_a, y_b = y, y[index]
    return mixed_x, y_a, y_b, lam
 
def mixup_criterion(y_a, y_b, lam):
    return lambda criterion, pred: lam * criterion(pred, y_a) + (1 - lam) * criterion(pred, y_b)
 

cutout:随机裁剪区域,填充0像素

cutmix:随机裁剪区域,填充其他图像到相应区域,代码可根据mixup来改写

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190027.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2022年0425 ICEM网格划分学习笔记[通俗易懂]

    2022年0425 ICEM网格划分学习笔记[通俗易懂]ICEM学习笔记

    2022年5月25日
  • Random之nextInt函数「建议收藏」

    Random之nextInt函数「建议收藏」1java中有一个类用于生成随机数字的:Random。该类的nextInt(intn)函数表示随机生成0~n之间的整数。如:intb=newRandom().nextInt(100);//0~参数之间,包括0,不包括参数本身System.out.println(b);2Random的nextInt(intn)生成的随机整数范围是0到n之间,不包括n。所以以后如果想要

    2022年7月22日
  • java之数组和链表的区别「建议收藏」

    java之数组和链表的区别「建议收藏」数组是有下标索引和data两部分组成链表是有data和指向下一个数据的指针地址两部分组成数组的特点 在内存中,数组是一块连续的区域。拿上面的看电影来说,这几个人在电影院必须坐在一起。 数组需要预留空间,在使用前要先申请占内存的大小,可能会浪费内存空间。比如看电影时,为了保证10个人能坐在一起,必须提前订好10个连续的位置。这样的好处就是能保证10个人可以在一起。但是这样的缺…

    2022年6月25日
  • 2020最新版Net加壳工具

    2020最新版Net加壳工具VirboxProtector发布最新版本Net加壳工具:VirboxProtector2.VirboxProtector为.NETFramework编写的软件做代码保护,防止代码被反编译,防止IL代码在内存被Dump。同时可配合授权产品实现软件的许可管理。加密技术VirboxProtector.NET版通过多种保护方式来防止反编译,加密后可让任何现有工具都无法反编译。JIT加密将.NET所有方法的IL指令经过加密,仅在.NET虚拟机进行J.

    2022年6月27日
  • 进程、线程、协程

    进程、线程、协程

    2021年10月14日
  • android toast 自定义时间,Android 自定义 Toast 显示时间「建议收藏」

    android toast 自定义时间,Android 自定义 Toast 显示时间「建议收藏」Android自定义Toast显示时间实现代码:packagecom.wm.realname.util;importandroid.content.Context;importandroid.os.Handler;importandroid.view.View;importandroid.widget.Toast;/***Toast自定义显示时间*使用方法*1.先初始化类M…

    2022年9月3日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号