[]機械学習は、アンバランスなデータの問題を解決するために

        実際、機械学習では、我々は多くの場合、データ・スキューとして知られている実際のデータ、の正および負のサンプルの状況アンバランス率が発生しました。選択されたアルゴリズムは、不適切な不適切または評価である場合、データスキューの場合には、その後、実際のアプリケーションのラインの効果のためにしばしば不十分であるため、不均衡の問題を解決する方法を、実際の生産データは非常に一般的かつ重要な問題です。


 

カテゴリ不均衡とは何ですか

  それは機械学習では、通常、その上、このような迷惑メールの分類として、正と負のサンプルに非常に不均一な状況が発生し、正と負のサンプルのどのような割合、決定するために、通常、バイナリ分類問題であるならば、我々は、データのコピーを取得すると、中にターゲット検出にSSDは、多くの場合、データの不均衡が発生し、検出器は、各画像における10000から100000の候補位置を評価する必要があるが、実際に対象物を含むわずか数点。これは、低効率とモデルの性能低下を通じて負のサンプル問題を引き起こすの簡単なトレーニングにつながります。

 


 

不均衡の問題を解決する方法

データの観点から、1。

    • イニシアチブへの取得:サンプルデータの少量の以上を取得

      サンプルデータの少量のために、あなたは、データの多様性を豊かにするために彼らのユニークな特徴を増加させることができる、または、可能な限りこれらの小さなサンプルデータセットの拡張に行くことができます。プロジェクトは、感情分析である場合、例えば、我々は、データ比率の分析のサンプル陰性サンプル(ネガティブな感情)の小さな数は、我々は、サイト内のサンプルの数としてより負集めることができることを見出しました。

    • サンプリングアルゴリズム:サンプリング、ダウンサンプリングは、合成されたデータを生成します

      • ADASYNのサンプリング方法:

        ADASYNは、小さなサンプルサイズベースに対して生成合成データを学習することが容易と学ぶことがより困難その生成されたデータサンプルと比較して、。基本的な考え方は異なる少数クラスのサンプルの重み分布を使用して、さまざまな学習の難易度に基づいています。ここで入力することを学ぶことが容易にそれらのいくつかのサンプルよりも、生成される合成データのいくつかのクラスを学ぶためにサンプルが難しいです。データの分布を学習する方法を改善すること、ADASYN二つの方法:(1)によるカテゴリに不均衡によって生じるずれを低減する、分類適応決定境界困難例の(2)移転。

      • 打ったのサンプリング方法

        そのベースを高めるために、いくつかの合成ポイントの新しいクラスを作成します。しかし撃っアルゴリズムはまた、いくつかの制限があります。一つは周辺に選択されている特定の2は、特定の失明がある、があります。アルゴリズムの実行中には、特定の実験データに対処し、自分自身をテストする必要性に基づいて、いくつかの近くの隣人を選択し、K値を決定する必要があります。第二に、データ配布アルゴリズムは、疎外の分布の問題になりやすいアンバランスなデータセットの問題を克服することはできません。サンプルは符号を決定することができないように、近隣周辺の陰性サンプルおよびサンプルタイプは、エッジに生成されることにより、試料の陰性クラスベースの負のエッジである場合、試料の陰性クラス分布は、あるいはその隣人を決定するため分類境界クラス。図はデータ拡張の場合のサンプリングの様々な方法を行うには、プロジェクトのアプリケーションを実行するために使用されています。(リトル効果は、元のデータの偶然の分布があまりにも明白なので、視覚的な効果を発揮することは容易ではありません)

生データ

 

サンプリング結果の下で

 

サンプリング結果

 

  • データ拡張:モデルの堅牢性を強化するためにノイズを追加し、異なる性質のデータは、異なる増強を行うことができます

  • 体重変化:正と負のサンプルは、のようなLIBSVMエントリアルゴリズムで設定ペナルティ重み係数を、設定されています。実際には、また、より少ないサンプルのカテゴリーを加重することができ、この多様なカテゴリを罰します 

  注意:無効トレーニングモデルで見つかった、あなたがしている場合、実際のデータは、データアンバランスで、サンプリング儀式を選択する際に問題に注意が必要なので、サンプリングデータのバランスの取れた割合を取る訓練のために来て、その後、試験データに行きます予測、今回それがバイアスされているかどうかのアルゴリズムの効果を?この時点で、あなたのディストリビューションおよび試験サンプルの学習サンプルの分布が変化しているが、これは悪い影響を持っているでしょう。実際には、我々は、サンプルとテストトレーニングの確率分布が一致している可能な限り維持する必要があるとしても、私たちの手を得るために、できるだけ試験サンプルの分布がアンバランスであれば、その後、訓練サンプルは試験サンプルの分布と一致しています、バランスデータが既に行われ、前処理後の洗浄されます。興味のための具体的な理由は、慎重に考えることができます。

評価の観点から、2。

  • 谨慎选择AUC作为评价指标:对于数据极端不平衡时,可以观察观察不同算法在同一份数据下的训练结果的precision和recall,这样做有两个好处,一是可以了解不同算法对于数据的敏感程度,二是可以明确采取哪种评价指标更合适。针对机器学习中的数据不平衡问题,建议更多PR(Precision-Recall曲线),而非ROC曲线,具体原因画图即可得知,如果采用ROC曲线来作为评价指标,很容易因为AUC值高而忽略实际对少两样本的效果其实并不理想的情况。

  • 不要只看Accuracy:Accuracy可以说是最模糊的一个指标了,因为这个指标高可能压根就不能代表业务的效果好,在实际生产中,我们可能更关注precision/recall/mAP等具体的指标,具体侧重那个指标,得结合实际情况看。

3.从算法角度

  • 选择对数据倾斜相对不敏感的算法。如树模型等。

  • 集成学习(Ensemble集成算法)。首先从多数类中独立随机抽取出若干子集,将每个子集与少数类数据联合起来训练生成多个基分类器,再加权组成新的分类器,如加法模型、Adaboost、随机森林等。

  • 将任务转换成异常检测问题。譬如有这样一个项目,需要从高压线的航拍图片中,将松动的螺丝/零件判断为待检测站点,即负样本,其他作为正样本,这样来看,数据倾斜是非常严重的,而且在图像质量一般的情况下小物体检测的难度较大,所以不如将其转换为无监督的异常检测算法,不用过多的去考虑将数据转换为平衡问题来解决。

 


 

 

目标检测中的不平衡问题的进展

1.GHM_Detection

论文:https://arvix.org/pdf/1811.05181.pdf
github:https://github.com/libuyu/GHM_Detection

        本文是香港中文大学发表于 AAAI 2019 的工作,文章从梯度的角度解决样本中常见的正负样本不均衡的问题。从梯度的角度给计算 loss 的样本加权,相比与 OHEM 的硬截断,这种思路和 Focal Loss 一样属于软截断。

        文章设计的思路不仅可以用于分类 loss 改进,对回归 loss 也很容易进行嵌入。不需要考虑 Focal Loss 的超参设计问题,同时文章提出的方法效果比 Focal Loss 更好。创新点相当于 FL 的下一步方案,给出了解决 class-imbalance 的另一种思路,开了一条路,估计下一步会有很多这方面的 paper 出现。

2.Focal Loss for Dense Object Detection

论文:

Focal Loss:https://arxiv.org/abs/1708.02002

RetinaNet:https://github.com/unsky/RetinaNet

github:https://github.com/unsky/focal-loss

         本文通过重塑标准交叉熵损失来解决这一类不平衡问题。他们的想法是降低简单的负面样本所占的权重,所以他们提出的焦点损失(Focal Loss)方法将训练集中在一系列难点上,并且防止了大量的简单负面例子在训练过程中阻碍探测器学习。如上图,参数 γ 的值选择得越大,模型就会对已经得到了很好的分类的样本忽略得越多,越专注于难的样本的学习。这样的机制就让他们的检测器在密集对象检测这样的真实正面样本比例很低的情况下取得了很高的准确率。对于应对样本不平衡问题的关键方法“焦距损失”,作者们在论文中还提出了两种不同的表现形式,都起到了很好的效果.

3.在线困难样例挖掘(online hard example mining, OHEM)

        目标检测的另一个问题是类别不平衡,图像中大部分的区域是不包含目标的,而只有小部分区域包含目标。此外,不同目标的检测难度也有很大差异,绝大部分的目标很容易被检测到,而有一小部分目标却十分困难。OHEM和Boosting的思路类似,其根据损失值将所有候选区域进行排序,并选择损失值最高的一部分候选区域进行优化,使网络更关注于图像中更困难的目标。此外,为了避免选到相互重叠很大的候选区域,OHEM对候选区域根据损失值进行NMS。

 

        总之,针对数据不平衡问题,有多重解决方式,但是不能为了解决这个问题就去改变数据的真实分布来得到更好的结果,可以从算法、loss function的设计等等多种角度来选择解决数据不平衡的方法。

 

 参考:

 1.https://www.cnblogs.com/charlotte77/p/10455900.html

 

 

 

 

 


 

おすすめ

転載: www.cnblogs.com/zhangchao162/p/11417592.html