qq群 神经网络与机器学习 什么是泊松分布

神经网络与机器学习
从数学转到计算机机器学习领域,已经快大半年了,到目前为止虽然看了一些关于数据挖掘与机器学习的东西,但每次看完都忘得只剩枝节,好几次看完一本书过段时间回过头来什么也没留下。我一直在反思,是因为我实际根本没有理解我所看的东西吗,为什么学完之后忘得这么快?可是自认为数学功底还马马虎虎,对数据挖掘机器学习这类还不是很抽象的东西理解起来也不是很吃力,那是什么原因呢。。。思来想去是否因为我只是一直在看,很少与人探讨、动手实践,也很少做一些笔记什么的。虽然以前有做笔记的习惯,但自从学了计算机,天天对着电脑屏幕,已经习惯了看电子档的东西,也因此丢掉了以前拿个本子记笔记的习惯。因此,我希望通过写一些博客来总结自己所看的东西,加深理解,以此和大家多多交流,改变可能进入的学习方式恶性循环。
最近正好在看《神经网络与机器学习(第三版)》,因此希望从现在开始通过写博客总结书上的内容,供自己理解,大家交流。要看完整本书并总结下来估计不是一件短期就能完成的事,希望自己能坚持下来。本人纯理科出身,文字功底不好,还望能一起交流的大神菜鸟们见谅。废话不多说了,首先供上电子版下载地址,然后开始我的学习之旅吧!
为了便于以后的学习,我还是稳扎稳打一步一步从基本概念和基本理论开始吧。(不喜欢的求勿喷。。。)
一、从人脑神经网络到人工神经网络
脑:高度复杂的、非线性的和并行的计算机器(信息处理系统)。
人工神经网络:由简单处理单元构成的大规模并行分布式处理器,天然的具有存储经验知识和使之可用的特性(即一种自适应机器)。
两方面与大脑相似:1、神经网络是通过学习过程从外界环境中获取知识的;
2、互连神经元的连接强度,即突触权值,用于用于存取获取的知识。
注:用于完成学习过程的程序称为学习算法,其功能是以有序的方式改变网络的突触权值以获得想要的设计目标。(对突触权值的修改是神经网络设计的传统方法)
二、神经网络的优点
神经网络的计算能力体现在两点:
第一、神经网络的大规模并行分布式结构;
第二、神经网络的学习能力以及由此而来的泛化能力。
神经网络的性质和优点:
1、非线性:人工神经元可以是线性或者非线性的。
2、输入输出映射:监督学习,使用带标号的训练样例对神经网络的突触权值进行修改。
3、自适应性:神经网络具有调整自身突触权值以适应外界环境变化的固有能力。(自适应性不一定总能导致鲁棒性)
4、证据响应:神经网络需要提供选择特定模式的信息和关于决策的置信度的信息。
5、上下文信息:网络中神经元受其他所有神经元全局活动的影响,故神经网络能处理上下文信息。
6、容错性:网络信息存储的分布特性,在网络总体影响严重恶化前神经元的损坏是分散的,故其性能缓慢恶化而不是灾难性失败。
7、VLSI实现:神经网络的大规模并行性使其适合超大规模集成技术(VLSI)来实现。
8、分析和设计的一致性:神经网络作为信息处理器具有通用性。
9、神经生物类比:神经网络设计由与人脑的类比引发。
三、神经元模型
1、神经元模型的三种基本要素:
- 突触或连接链集
- 加法器(线性组合器)
- 激活函数
单个神经元结构图()
其等价形式()
2、激活函数的类型
两种基本的激活函数:
- 阈值函数:
- sigmoid函数:
3、神经元的统计模型
在一些神经网络的应用中,基于随机神经模型的分析更符合需要。使用一些解析处理方法,McCullochPitts模型的激活函数用概率分布来实现。即一个神经元允许有两种可能的状态{+1,-1},如下图所示
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:290次
排名:千里之外1723人阅读
机器学习(81)
神经网络与深度学习(83)
39 条精选讨论(选自165条原始评论和转发)
&机器学习那些事儿&&&
工业界机器学习典型问题: 正负样本分布极不均匀(通常&1:10000),有什么较好的方案构造训练集的正负样本分布?构造后如何解决训练数据与预测的分布不一致?请大牛帮忙解释下@老师木&@李沐M&@星空下的巫师@徐盈辉_仁基
北冥乘海生&转发于&
这个跟模型的形式和估计方法都有关,有些情况下正负例不均衡时估计有偏,可以校正一下。
小兔子大坏坏&评论于
上采样、下采样、代价敏感,没什么好办法
特级飞行员舒克&转发于&&回复 @phunter_lau
回复@phunter_lau:mark,sampling
范涛_中科大&评论于
17:40 &回复&
这个之前调研过,主要分重采样和欠采样!这种不平衡是因为比率的不平衡给一些学习方法带来问题。但是在某些领域,比如反欺诈和安全,不仅是比率极不平衡,而且是正样本样本绝对数很小。需要扩散正样本方法!
特级飞行员舒克&转发于&
聚类然后从负样本中找和正样本比较紧邻的作为正样本怎么样?@phunter_lau&@范涛_中科大&@winsty
范涛_中科大&转发于&
回复@特级飞行员舒克: Synthetic Minority Over-sampling Technique 我试过这个方法,解决部分问题,主要还是需要增加样本在特征空间的覆盖! 工程上光靠算法也解决不了问题,有的还是需要加入下经验知识来做。
睡眼惺忪的小叶先森&转发于&&回复&
我也说说。抛砖引玉:1,比例是一个关键的参数,据我们的经验,1:14是一个常见的“好”比例。[哈哈] 2,stratified sampling,也就是根据特征来采样,尽量使样本都覆盖特征空间。3,训练的时候,这个正负样本的“出场”顺序也很关键,不然可能还没遇到正(负)样本模型就已经收敛了。
梁斌penny&转发于&&回复&
这就是一种伪标注方法,是可行的。当然最后还是需要验证一下效果,来证明这个方法对这类数据是solid的
孙明明_SmarterChina&转发于&&回复&
这问题太笼统了。正负样本不平衡只是个表象,处理方法要根据本质原因来定。
齐浩亮&转发于&&回复&
用排序思想构造所谓的序对,
宋云涛&转发于&
如果1:10算是均匀的话,可以将多数类分割成为1000份。然后将每一份跟少数类的样本组合进行训练得到分类器。而后将这1000个分类器用assemble的方法组合位一个分类器。记得读到的论文可行,但没有验证过
宋云涛&评论于
采样的话要么损失信息要么影响数据分布,基本的序对的话也会引起信息的损失~
特级飞行员舒克&转发于&&回复&
回复@Juggernaut_One:我认为有些场景下正负样本之间并没有严格明显的界线,是可以互相转换的。
特级飞行员舒克&转发于&&回复&
回复@Juggernaut_One:在百度实习做广告点击率预估时,曾经想过在模型训练时不用0/1作为label,而是根据特征情况给一个float值(在[0,1]区间周围),或者更简单一些分别对目标&#做一些扰动,后来由于某些原因没做成。
wb王传鹏&转发于&
@刘尚堃&你说过有不少技巧[哈哈]
离家出走的托尔斯泰&转发于&
这在机器学习里面被称类别不平衡问题,可以参考Haibo, H. and E. A. Garcia (2009). &Learning from Imbalanced Data.& Knowledge and Data Engineering, IEEE Transactions on& 的survey.已有很多方法提出
phunter_lau&转发于&&回复&
或者试试看Transductive SVM (TSVM) 用当前训练的模型标注新的sample,差不多类似的想法但是我也是听同事说的
小吴COKE&转发于&&回复&
聚类本身不是已经默认了相似度测定了么。。。。[汗]
cswhjiang&转发于&&回复&
Transductive 是指要求 label 的数据在training 一个model的时候已经确定了,相对于inductive 而言。训练数据和测试数据分布不同是domain adaptation、sample bias、data shift。但是他原先的问题其实是imblance problem,google下能找到方法,比如&
思奇吞象&评论于
标准解决方法:设计objective function的时候给不同misclassification的情况不同的relative weights。也就是说给从小数量的样本被分成大数量的样本更大的penalty
anch3or&转发于&&回复&
@phunter_lau:或者试试看Transductive SVM (TSVM) 用当前训练的模型标注新的sample,差不多类似的想法
孙明明_SmarterChina&转发于&&回复 @好东西传送门
训练数据与预测数据分布不一致,有专门研究的课题,sample selection bias,主要方法是各种reweighting
机器学习那些事儿&转发于&&回复&
这应该和半监督的间谍算法类似吧,不过这只能解决抽样问题,没法较好的确定正负样本之间的比例吧?
老师木&转发于&&回复&
我以前搞过一个support cluster machine,类似的想法,很久以前的工作了,仅可以参考一下。
vinW&评论于
按理是跟你的目标有关。如果你的目标是 预测的分布 跟训练的分布一致,那就加大对分布不一致的惩罚系数就是。
Jason_wbw&转发于&&回复 @特级飞行员舒克
我理解那么多的负样本的情况下,其实负样本已经并不是真正的`负样本`了,顺带扔个之前被推荐的paper
王小科科科&转发于&
我的处理方式挺简单的,将负样本取样数量减少,然后在计算预测概率的时候,调整常数因子。
晴阴雨雪天各种读书&转发于&&回复 @岩间花树GT
早几年kdd有篇paper解决这个的,其实原理都差不多
微笑刺客4067&转发于&
关注。。伪标注有时间试一试!
夏睿&转发于&&回复&
Sample selection bias 可以解决一部分预测与训练数据分布不一致(还包括迁移学习、领域适应问题),不过好像没见过直接用它解决类别不平衡
昊奋&转发于&
抛砖引玉,这个倒是可以参考positive only learning等半监督学习中如早期的spy算法等来构造合适的负例来解决正负例不平衡的问题。在只有正例的学习问题中,负例千差万别,且数量也远超正例,符合楼主的问题描述
AixinSG&转发于&&回复&
这个建议看起来比上采样下采样或者调权重更靠谱
小飞鱼_露&转发于&
这个看起来像 one-class recommendation 问题,不知是否可以考虑转化成 learning to rank 问题,如果不是为了拟合一个分布的话 (PS: 字数不够了...)&@AixinSG&@昊奋
NeoLScarlet&转发于&&回复 @算文解字
貌似生成不平衡那边的样本效果最好。
复旦李斌&转发于&&回复&
于是大家搜出来的都是我的那篇。。。[衰][衰]
离家出走的托尔斯泰&评论于
个人觉得在类别不平衡条件下,Transductive SVM (TSVM)应该对于的active learning 来标注,可能结果更好。
昊奋&转发于&
learning to rank对于训练数据量的要求较高,同时要确定用于learning to rank的pair,还是需要找到负例,从而将正例和负例形成偏序配对。所以learning to rank是一种方法,但个人认为这会将简单问题复杂化,且本质还是需要去找负例。
开机就好ing&转发于&&回复&
用单类分类算法如svdd也可以
杲a杲&评论于
感觉都没扯到点子上啊,最经典的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那篇文章选取训练样本的方法)
Tackling Class Imbalance with Deep Convolutional Neural Networks
这个和深度学习没关系,类别不平衡是机器学习一个常见问题 ,有一下几个思路可以参考
1 :数据采样的时候,可以把数量少的类别重复采样,而把数量多的类别只采样一部分
2:调整损失函数,对样本多的类别进行惩罚
实际工程上,正负样本比或者惩罚系数,需要进行调参
首先: 分清 face recognition/ identification /verification,媒体经常统一用face recognition
“已注册样本一般都只有一张” 感觉是在说 “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做神经网络的最终输出的)等大多数分类器 正负例 的样本均等为好;此外在语音识别中 神经网络的训练样本是极为不均衡的;在图像任务中 也可以考虑利用下 类别的先验概率
首先你要确定为什么需要balance,balance不一定就是好的,我们需要的是同分布,而不是神马balance。
改变分布就有很多科学的方法了。
sample的话,比如MCMC。
还可以生造数据,嗯,就是很火的reinforce。
我试着答一下 如有错误请大家指正
问题主要矛盾指不平衡数据处理 结论是分两种处理 算法修正和数据修正
然后是正文
数据不平衡是一个很正常的现象 在神经网络领域之外已经有很多相关研究了 尤其在svm上(笑)
机器学习算法中通常两种方法解决 一种是算法上的 用算法计算不同输入数据的距离 将距离纳入算法训练 或者说将距离纳入惩罚函数 有很多相关研究 手机打没文献 搜索imbalance会有很多 基于不平衡度和基于图是我知道的两种很好的算法
在深度学习上 不平衡的算法处理没有单独拿出来讲的 因为随着时代发展 这个被视为解决问题中很小的一环 更多的是处理transfer learning
深度迁移学习网络基本是深度网络中会涉及不平衡的最重要 或者说效果最好的一类 但是正如前文所说 不平衡的解决只是顺带的
迁移网络解决不平衡最好的例子是deep transfer metric learning,这篇文献类似考虑距离惩罚 并且将惩罚纳入了能量函数 在根据能量函数做梯度递减迭代时候发挥作用 类似的想法肯定可以解决 但是似乎有些不合适 毕竟transfer learning 解决的是更麻烦一点的问题
代码 很少 但是theano只改下update函数 caffe改一下能量函数式 训练依旧是反向传播 可以有预训练 不用改
前述麻烦 所以有数据采样方法解决数据不平衡
采样解决不平衡分欠采样和过采样两种
但是说在前面 数据采样上解决 实际是数据预处理的一步了 和深度不深度没关系 这部分代码很好写 因为只操作数据
欠采样就是有的数据不采用 过采样就是少数的信息重复采样或者差值拟合出新的少数类信 著名的是SMOTE算法
这些方法和信号采样那些很像 但是也有一些新的方法和些微不同 相关文献看得不多 临时想不到
具体用到的时候 看你问题定义了 不一定要用到这些东西 深度网络拟合能力很好 不平衡的丢过去很可能只有过拟合问题 而不需要特殊处理
文献资料什么的想不起来 但是搜索很好搜 百度就行 因为实验室前辈有做过imbalance data 我也跟过一段时间
数据不平衡是机器学习里面的常见的现象,通常是根据数据类别的分布对损失函数进行加权处理,即正负两类出现误判的惩罚是不同的,比如,样本量小的那一类惩罚会更大,或者也可以在迭代的时候增加样本小的那一类被选中来进行优化的概率,相当于将样本小的那一类的数据人为复制。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:718614次
积分:11071
积分:11071
排名:第1224名
原创:263篇
转载:777篇
评论:125条
文章:18篇
阅读:21299
文章:50篇
阅读:95011
文章:24篇
阅读:57454
文章:47篇
阅读:73678【机器学习】【神经网络与深度学习】不均匀正负样本分布下的机器学习 《讨论集》
39 条精选讨论(选自165条原始评论和转发)
机器学习那些事儿&&&
工业界机器学习典型问题: 正负样本分布极不均匀(通常&1:10000),有什么较好的方案构造训练集的正负样本分布?构造后如何解决训练数据与预测的分布不一致?请大牛帮忙解释下
@星空下的巫师
@徐盈辉_仁基
北冥乘海生&
这个跟模型的形式和估计方法都有关,有些情况下正负例不均衡时估计有偏,可以校正一下。
小兔子大坏坏&
上采样、下采样、代价敏感,没什么好办法
特级飞行员舒克&
转发于&&回复 @phunter_lau
@phunter_lau:mark,sampling
范涛_中科大&
17:40 &回复&
这个之前调研过,主要分重采样和欠采样!这种不平衡是因为比率的不平衡给一些学习方法带来问题。但是在某些领域,比如反欺诈和安全,不仅是比率极不平衡,而且是正样本样本绝对数很小。需要扩散正样本方法!
特级飞行员舒克&
聚类然后从负样本中找和正样本比较紧邻的作为正样本怎么样?
@phunter_lau&
@范涛_中科大&
范涛_中科大&
@特级飞行员舒克: Synthetic Minority Over-sampling Technique 我试过这个方法,解决部分问题,主要还是需要增加样本在特征空间的覆盖! 工程上光靠算法也解决不了问题,有的还是需要加入下经验知识来做。
睡眼惺忪的小叶先森&
转发于&&回复&
我也说说。抛砖引玉:1,比例是一个关键的参数,据我们的经验,1:14是一个常见的“好”比例。[哈哈] 2,stratified sampling,也就是根据特征来采样,尽量使样本都覆盖特征空间。3,训练的时候,这个正负样本的“出场”顺序也很关键,不然可能还没遇到正(负)样本模型就已经收敛了。
梁斌penny&
转发于&&回复&
这就是一种伪标注方法,是可行的。当然最后还是需要验证一下效果,来证明这个方法对这类数据是solid的
孙明明_SmarterChina&
转发于&&回复&
这问题太笼统了。正负样本不平衡只是个表象,处理方法要根据本质原因来定。
转发于&&回复&
用排序思想构造所谓的序对,
如果1:10算是均匀的话,可以将多数类分割成为1000份。然后将每一份跟少数类的样本组合进行训练得到分类器。而后将这1000个分类器用assemble的方法组合位一个分类器。记得读到的论文可行,但没有验证过
采样的话要么损失信息要么影响数据分布,基本的序对的话也会引起信息的损失~
特级飞行员舒克&
转发于&&回复&
@Juggernaut_One:我认为有些场景下正负样本之间并没有严格明显的界线,是可以互相转换的。
特级飞行员舒克&
转发于&&回复&
@Juggernaut_One:在百度实习做广告点击率预估时,曾经想过在模型训练时不用0/1作为label,而是根据特征情况给一个float值(在[0,1]区间周围),或者更简单一些分别对目标值0/1做一些扰动,后来由于某些原因没做成。
@刘尚堃&你说过有不少技巧[哈哈]
离家出走的托尔斯泰&
这在机器学习里面被称类别不平衡问题,可以参考Haibo, H. and E. A. Garcia (2009). "Learning from Imbalanced Data." Knowledge and Data Engineering, IEEE Transactions on" 的survey.已有很多方法提出
phunter_lau&
转发于&&回复&
或者试试看Transductive SVM (TSVM) 用当前训练的模型标注新的sample,差不多类似的想法但是我也是听同事说的
转发于&&回复&
聚类本身不是已经默认了相似度测定了么。。。。[汗]
cswhjiang&
转发于&&回复&
Transductive 是指要求 label 的数据在training 一个model的时候已经确定了,相对于inductive 而言。训练数据和测试数据分布不同是domain adaptation、sample bias、data shift。但是他原先的问题其实是imblance problem,google下能找到方法,比如&
标准解决方法:设计objective function的时候给不同misclassification的情况不同的relative weights。也就是说给从小数量的样本被分成大数量的样本更大的penalty
转发于&&回复&
@phunter_lau:或者试试看Transductive SVM (TSVM) 用当前训练的模型标注新的sample,差不多类似的想法
孙明明_SmarterChina&
转发于&&回复 @好东西传送门
训练数据与预测数据分布不一致,有专门研究的课题,sample selection bias,主要方法是各种reweighting
机器学习那些事儿&
转发于&&回复&
这应该和半监督的间谍算法类似吧,不过这只能解决抽样问题,没法较好的确定正负样本之间的比例吧?
转发于&&回复&
我以前搞过一个support cluster machine,类似的想法,很久以前的工作了,仅可以参考一下。
按理是跟你的目标有关。如果你的目标是 预测的分布 跟训练的分布一致,那就加大对分布不一致的惩罚系数就是。
Jason_wbw&
转发于&&回复 @特级飞行员舒克
我理解那么多的负样本的情况下,其实负样本已经并不是真正的`负样本`了,顺带扔个之前被推荐的paper
王小科科科&
我的处理方式挺简单的,将负样本取样数量减少,然后在计算预测概率的时候,调整常数因子。
晴阴雨雪天各种读书&
转发于&&回复 @岩间花树GT
早几年kdd有篇paper解决这个的,其实原理都差不多
微笑刺客4067&
关注。。伪标注有时间试一试!
转发于&&回复&
Sample selection bias 可以解决一部分预测与训练数据分布不一致(还包括迁移学习、领域适应问题),不过好像没见过直接用它解决类别不平衡
抛砖引玉,这个倒是可以参考positive only learning等半监督学习中如早期的spy算法等来构造合适的负例来解决正负例不平衡的问题。在只有正例的学习问题中,负例千差万别,且数量也远超正例,符合楼主的问题描述
转发于&&回复&
这个建议看起来比上采样下采样或者调权重更靠谱
小飞鱼_露&
这个看起来像 one-class recommendation 问题,不知是否可以考虑转化成 learning to rank 问题,如果不是为了拟合一个分布的话 (PS: 字数不够了...)&
NeoLScarlet&
转发于&&回复 @算文解字
貌似生成不平衡那边的样本效果最好。
转发于&&回复&
于是大家搜出来的都是我的那篇。。。[衰][衰]
离家出走的托尔斯泰&
个人觉得在类别不平衡条件下,Transductive SVM (TSVM)应该对于的active learning 来标注,可能结果更好。
learning to rank对于训练数据量的要求较高,同时要确定用于learning to rank的pair,还是需要找到负例,从而将正例和负例形成偏序配对。所以learning to rank是一种方法,但个人认为这会将简单问题复杂化,且本质还是需要去找负例。
开机就好ing&
转发于&&回复&
用单类分类算法如svdd也可以
感觉都没扯到点子上啊,最经典的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那篇文章选取训练样本的方法)
Tackling Class Imbalance with Deep Convolutional Neural Networks
这个和深度学习没关系,类别不平衡是机器学习一个常见问题 ,有一下几个思路可以参考
1 :数据采样的时候,可以把数量少的类别重复采样,而把数量多的类别只采样一部分
2:调整损失函数,对样本多的类别进行惩罚
实际工程上,正负样本比或者惩罚系数,需要进行调参
首先: 分清 face recognition/ identification /verification,媒体经常统一用face recognition
“已注册样本一般都只有一张” 感觉是在说 “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做神经网络的最终输出的)等大多数分类器 正负例 的样本均等为好;此外在语音识别中 神经网络的训练样本是极为不均衡的;在图像任务中 也可以考虑利用下 类别的先验概率
首先你要确定为什么需要balance,balance不一定就是好的,我们需要的是同分布,而不是神马balance。 改变分布就有很多科学的方法了。 sample的话,比如MCMC。 还可以生造数据,嗯,就是很火的reinforce。
我试着答一下 如有错误请大家指正
问题主要矛盾指不平衡数据处理 结论是分两种处理
算法修正和数据修正
然后是正文
数据不平衡是一个很正常的现象 在神经网络领域之外已经有很多相关研究了 尤其在svm上(笑)
机器学习算法中通常两种方法解决 一种是算法上的 用算法计算不同输入数据的距离 将距离纳入算法训练 或者说将距离纳入惩罚函数 有很多相关研究 手机打没文献 搜索imbalance会有很多 基于不平衡度和基于图是我知道的两种很好的算法
在深度学习上 不平衡的算法处理没有单独拿出来讲的 因为随着时代发展 这个被视为解决问题中很小的一环 更多的是处理transfer learning
深度迁移学习网络基本是深度网络中会涉及不平衡的最重要 或者说效果最好的一类 但是正如前文所说 不平衡的解决只是顺带的
迁移网络解决不平衡最好的例子是deep transfer metric learning,这篇文献类似考虑距离惩罚 并且将惩罚纳入了能量函数 在根据能量函数做梯度递减迭代时候发挥作用 类似的想法肯定可以解决 但是似乎有些不合适 毕竟transfer learning 解决的是更麻烦一点的问题
代码 很少 但是theano只改下update函数 caffe改一下能量函数式 训练依旧是反向传播 可以有预训练 不用改
前述麻烦 所以有数据采样方法解决数据不平衡
采样解决不平衡分欠采样和过采样两种
但是说在前面 数据采样上解决 实际是数据预处理的一步了 和深度不深度没关系 这部分代码很好写 因为只操作数据
欠采样就是有的数据不采用 过采样就是少数的信息重复采样或者差值拟合出新的少数类信 著名的是SMOTE算法
这些方法和信号采样那些很像 但是也有一些新的方法和些微不同 相关文献看得不多 临时想不到
具体用到的时候 看你问题定义了 不一定要用到这些东西 深度网络拟合能力很好 不平衡的丢过去很可能只有过拟合问题 而不需要特殊处理
文献资料什么的想不起来 但是搜索很好搜 百度就行 因为实验室前辈有做过imbalance data 我也跟过一段时间
数据不平衡是机器学习里面的常见的现象,通常是根据数据类别的分布对损失函数进行加权处理,即正负两类出现误判的惩罚是不同的,比如,样本量小的那一类惩罚会更大,或者也可以在迭代的时候增加样本小的那一类被选中来进行优化的概率,相当于将样本小的那一类的数据人为复制。
本文转载自 LG的专栏 , 原文链接: , 转载请保留本声明!
每一个你不满意的现在,都有一个你没有努力的曾经。
Copyright (C) 2015&&
&&Powered by&

我要回帖

 

随机推荐