データ増強と訓練検証分割の方法


14

機械学習を使用して画像分類を行っています。

トレーニングデータ(画像)があり、そのデータをトレーニングセットと検証セットに分割するとします。また、ランダムな回転とノイズ注入によってデータを増強します(元の画像から新しい画像を生成します)。拡張はオフラインで行われます。

データ増強を行う正しい方法はどれですか?

  1. 最初にデータをトレーニングセットと検証セットに分割し、次にトレーニングセットと検証セットの両方でデータ拡張を行います。

  2. 最初にデータをトレーニングセットと検証セットに分割してから、トレーニングセットでのみデータの拡張を行います。

  3. 最初にデータのデータ増強を行い、次にデータをトレーニングと検証セットに分割します。


1
「データ拡張」には複数の意味があります。質問を編集してどちらが自分のものかを明確にするか、単に例を挙げてください。
Scortchi-モニカの復職

TTAを実行する予定の場合は、テストセットに関する検証セットに拡張機能を適用する必要があります。
アビーヨーカー

回答:


18

最初にデータをトレーニングセットと検証セットに分割してから、トレーニングセットでデータの増強を行います。

検証セットを使用して、メソッドが実際のデータでどのように機能するかを推定しようとするため、実際のデータのみを含める必要があります。拡張データを追加しても、検証の精度は向上しません。あなたのメソッドがデータ増大にどれほどよく反応するかについて、せいぜい何かを言って、最悪の場合、検証結果と解釈可能性を台無しにします。


あなたの答えに何か興味があります。CNNのトレーニングを停止するための基準が検証の損失を減らしている場合、検証データのデータ増強が適切な選択だと思いますか?
マッド

1
いいえ、検証データを拡張すると、検証精度は新しい未表示データの精度の優れたプロキシではなくなるため、「検証結果と解釈可能性を損なう」と考えています。
-burk

検証およびテストデータにデータ増強を適用する必要はまったくありませんか?
Aadnan Farooq A

@AadnanFarooqAいいえ。通常、モデルを予測に使用するときに、テストデータと検証データに対して、見えないデータに対して行う操作と同じ操作を行う必要があります。
バーク

1
@AadnanFarooqA通常、分割後、トレーニングデータに増強を適用するだけです。
バーク

4

漏れが発生するため、3は絶対に行わないでください。たとえば、拡張が左に1ピクセルシフトしていると仮定します。分割が拡張を認識しない場合、トレーニングと検証の両方で非常に類似したデータサンプルを取得できます。


0

データ拡張とは、分析中の既存のデータに外部データ/情報を追加することです。

そのため、拡張データ全体が機械学習に使用されるため、次のプロセスの方が適しています。

データ拡張を行う->データの分割


返信いただきありがとうございます。サンプルと元のサンプルに非常に似ている拡張されたサンプルが異なるセットに広がっていても大丈夫ですか?
-yangjie

既存のデータをトレーニングセットとして、拡張データを検証セットとして意味しますか?その後、NO
Dawny33

分割はランダムなので、データの拡張を行ってからデータを分割すると、既存のデータ(すべてではない)がトレーニングセットに分割され、拡張されたデータが検証セットに送られる可能性があります。
ヤンジー

増強とは、追加することを意味しますか?拡張データは、すべてのポイントで現在のデータをサポートするデータです。したがって、分割がランダムである場合、分割により、既存のデータと同じ量の両方のセットの拡張データが生成されます
-Dawny33

これに関する論文の参照はありますか?
Aadnan Farooq A
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.