【机器学习】【神经网络与深度学习】不均匀正负样本分布下的机器学习 《讨论集》
39 条精选讨论(选自165条原始评论和转发)
感觉都没扯到点子上啊,最经典的imbalanced的方法,cascade learning,详见viola的face detection paper.
在face recognition问题中,每个人的已注册样本一般都只有一张,在one-by-n的recognition时候,如果n较大,则一般positive pairs的数量会远远小于negative pairs的数量。这种情况下,一般如何去balance用于训练的pos 和neg pairs? 有没有现成的code去处理类似问题? 比如做bootsrap等等。(具体可以参考google的FaceNet那篇文章选取训练样本的方法)
https://www.academia.edu/8472416/Tackling_Class_Imbalance_with_Deep_Convolutional_Neural_Networks
这个和深度学习没关系,类别不平衡是机器学习一个常见问题 ,有一下几个思路可以参考
1 :数据采样的时候,可以把数量少的类别重复采样,而把数量多的类别只采样一部分
2:调整损失函数,对样本多的类别进行惩罚
实际工程上,正负样本比或者惩罚系数,需要进行调参
“已注册样本一般都只有一张” 感觉是在说 “face identification /verification"(这两略有不同,我更喜欢混为一谈)
- identification /verification:这不是recognition,不需要去训练一个分类器 一个注册样本也是可以的,无非是注册的特征不够robust,效果可能差一些,并不存在所谓的“balance pos neg pairs”(如果每一个注册的face都希望有一个特有的threshold的话 那是需要一部分pos neg来计算这个threshold)
- recognition:问题就变为“如何提升unbalance数据集上的准确率”,这个问题的研究就比较多了 可以Google下;negative sample可以 生成、“伪造”的;softmax(one vs all)不需要negative sample;sigmoid(对于部分分类任务 如:多标签分类,其实蛮适合用sigmoid做神经网络的最终输出的)等大多数分类器 正负例 的样本均等为好;此外在语音识别中 神经网络的训练样本是极为不均衡的;在图像任务中 也可以考虑利用下 类别的先验概率
改变分布就有很多科学的方法了。
sample的话,比如MCMC。
还可以生造数据,嗯,就是很火的reinforce。
问题主要矛盾指不平衡数据处理 结论是分两种处理 算法修正和数据修正
然后是正文
数据不平衡是一个很正常的现象 在神经网络领域之外已经有很多相关研究了 尤其在svm上(笑)
机器学习算法中通常两种方法解决 一种是算法上的 用算法计算不同输入数据的距离 将距离纳入算法训练 或者说将距离纳入惩罚函数 有很多相关研究 手机打没文献 搜索imbalance会有很多 基于不平衡度和基于图是我知道的两种很好的算法
在深度学习上 不平衡的算法处理没有单独拿出来讲的 因为随着时代发展 这个被视为解决问题中很小的一环 更多的是处理transfer learning
深度迁移学习网络基本是深度网络中会涉及不平衡的最重要 或者说效果最好的一类 但是正如前文所说 不平衡的解决只是顺带的
迁移网络解决不平衡最好的例子是deep transfer metric learning,这篇文献类似考虑距离惩罚 并且将惩罚纳入了能量函数 在根据能量函数做梯度递减迭代时候发挥作用 类似的想法肯定可以解决 但是似乎有些不合适 毕竟transfer learning 解决的是更麻烦一点的问题
代码 很少 但是theano只改下update函数 caffe改一下能量函数式 训练依旧是反向传播 可以有预训练 不用改
前述麻烦 所以有数据采样方法解决数据不平衡
采样解决不平衡分欠采样和过采样两种
但是说在前面 数据采样上解决 实际是数据预处理的一步了 和深度不深度没关系 这部分代码很好写 因为只操作数据
欠采样就是有的数据不采用 过采样就是少数的信息重复采样或者差值拟合出新的少数类信 著名的是SMOTE算法
这些方法和信号采样那些很像 但是也有一些新的方法和些微不同 相关文献看得不多 临时想不到
具体用到的时候 看你问题定义了 不一定要用到这些东西 深度网络拟合能力很好 不平衡的丢过去很可能只有过拟合问题 而不需要特殊处理
文献资料什么的想不起来 但是搜索很好搜 百度就行 因为实验室前辈有做过imbalance data 我也跟过一段时间
【机器学习】【神经网络与深度学习】不均匀正负样本分布下的机器学习 《讨论集》相关推荐
- 【机器学习】【神经网络与深度学习】不均匀正负样本分布下的机器学习 《讨论集》...
39 条精选讨论(选自165条原始评论和转发) 机器学习那些事儿 2014-11-15 17:48 工业界机器学习典型问题: 正负样本分布极不均匀(通常<1:10000),有什么较好的方案 ...
- 不均匀正负样本分布下的机器学习
工业界机器学习典型问题: 正负样本分布极不均匀(通常<1:10000),有什么较好的方案构造训练集的正负样本分布?构造后如何解决训练数据与预测的分布不一致? 上采样.下采样.代价敏感,没什么好办 ...
- 机器学习——神经网络、深度学习 知识点总结 及 面试题汇总
1.反向传播思想: 计算出输出与标签间的损失函数值,然后计算其相对于每个神经元的梯度,根据梯度方向更新权值. (1)将训练集数据输入到ANN的输入层,经过隐藏层,最后达到输出层并输出结果,这是ANN的 ...
- 神经网络和深度学习(5)-- 逻辑回归
神经网络和深度学习 上一篇 主目录 下一篇 文章结构 1.逻辑回归 [前言] 逻辑回归学习算法,该算法适用于二分类问题,本节将主要 介绍逻辑回归的 Hypothesis Function(假设函数) ...
- (转)机器学习(Machine Learning)深度学习(Deep Learning)资料
原文链接:https://github.com/ty4z2008/Qix/blob/master/dl.md 机器学习(Machine Learning)&深度学习(Deep Learning ...
- 神经网络和深度学习(4)--符号约定
神经网络和深度学习 上一篇 主目录 下一篇 [前言] 这里会使用到很多的符号,各种符号代表不同的含义.为了方便查询,将符号的含义整理在这里. 注:X.shape可以查看矩阵X的维度 符号 含义 x 表 ...
- 【深度学习】基于Torch的Python开源机器学习库PyTorch卷积神经网络
[深度学习]基于Torch的Python开源机器学习库PyTorch卷积神经网络 文章目录 1 CNN概述 2 PyTorch实现步骤2.1 加载数据2.2 CNN模型2.3 训练2.4 可视化训练 ...
- 机器学习笔记——神经网络与深度学习
机器学习笔记--神经网络与深度学习 一.神经网络引言 二.神经元模型与激活函数 2.1 神经元模型 2.2 激活函数 2.2.1 sigmoid & tanh 2.2.2 ReLU激活函数 2 ...
- 神经网络与深度学习(一)——机器学习基础
神经网络与深度学习 (一)--机器学习基础 1.人工智能基础概念 2. 机器学习 2.1 基本概念 2.2 机器学习的三个基本要素 2.2.1 模型 2.2.2 学习准则 2.2.2.1 损失函数 L ...
最新文章
- Docker+Jenkins+Nginx+Spring Boot 自动化部署项目
- Android数据存储五种方式总结
- WPF 获取屏幕分辨率(获取最大宽高)等
- vue中如何进行Excel文件的下载
- Javascript刷新当前页
- 知识图谱:刻画事物关系,沉淀领域知识!
- 全国主要省份城市的DNS服务器地址
- javascript java map_javascript实现java的map对象,js实现new map()
- 【HNOI2003】【BZOJ1216】操作系统(模拟,优先队列)
- (一)Linux下C++ OpenCV开发环境搭建
- addEventListener 简析
- 用R语言做单方程的误差修正模型(ECM)
- go语言编程前景怎么样?国内Go语言布道师许式伟这样说
- 客户信息管理系统类毕业论文文献有哪些?
- 解决javaWeb图片加载不出来问题的方案
- Json字符串的标准写法
- Hibernate: null java.sql.SQLException: 要执行的 SQL 语句不得为空白或空值
- [转载]前端代码规范 及 最佳实践
- 基于移动终端的汉语手语识别技术研究
- java 音频转换_java实现音频转换