回答:
拡張の概念、つまり、何らかの理由でデータセットを大きくすることに関しては、トレーニングセットのみを拡張する傾向があります。検証セットに対するさまざまな拡張アプローチの結果を評価します。
ただし、@ŁukaszGradが指摘しているように、トレーニングセットで行ったのと同様の手順をテストセットに対して実行する必要がある場合があります。これは通常、テストセットからの入力データがトレーニングセットのデータに可能な限り類似するようにするためです。たとえば、@ŁukaszGradは、画像トリミングの例を示しています。ここでは、テスト画像もトリミングする必要があるため、トレーニング画像と同じサイズです。ただし、トレーニング画像の場合、各トレーニング画像を複数回使用して、クロップを異なる場所/オフセットに配置することがあります。テスト時には、単一の中心のクロップを行うか、ランダムなクロップを行って平均を取る可能性があります。
テストデータに対して拡張手順を実行することは、テストデータをより大きく/より正確にすることではなく、テストセットからの入力データをトレーニングセットからの入力データに類似させることで、同じネットにフィードできるようにします(例えば同じ寸法)。補強手順を適用することで、テストセットが何らかの点で「より良い」とは決して考えません。少なくとも、それは私が今まで見たものではありません。
一方、トレーニングセットの場合、補強のポイントは、トレーニング中の過剰適合を減らすことです。そして、訓練されたモデルを多かれ少なかれ固定されたテスト/検証セットに対して実行することにより、拡張の品質を評価します。
通常、畳み込みニューラルネットワークをトレーニングするためのデータ拡張は、トレーニングセットに対してのみ行われます。テストデータの値は主にモデルの選択と評価のためであり、これらの量の測定にノイズを追加しているため、テストデータを増強することでどのようなメリットが得られるかわかりません。
回答を補足して、テスト時のデータ拡張に関する2セントを追加します。
データの拡張は、分散を減らすことを目的として、テスト時に実行することもできます。これは、入力画像の修正バージョンの予測の平均を取ることで実行できます。
データセットの拡張は、トレーニングセットのみを前処理する方法と見なすことができます。データセット拡張は、ほとんどのコンピュータービジョンモデルの一般化エラーを削減する優れた方法です。テスト時に適用できる関連アイデアは、同じ入力の多くの異なるバージョン(たとえば、同じ画像がわずかに異なる場所でトリミングされている)をモデルに表示し、モデル投票の異なるインスタンス化を行って出力を決定することです。この後者のアイデアは、アンサンブルアプローチとして解釈でき、汎化エラーを減らすのに役立ちます。(ディープラーニングブック、第12章)。
テスト時の拡張を適用することは非常に一般的な方法です。AlexNetとResNetは、10クロップテクニック(元の画像の四隅と中央からパッチを取り、それらをミラーリングする)でそれを行います。Inceptionはさらに進んで、10だけではなく144のパッチを生成します。Kaggleや他のコンテストをチェックすると、ほとんどの勝者もテスト時の拡張を適用します。
私は、皮膚病変分類(低データタスク)のためにトレーニングを行ってテストを行い、データの増大(コード)に関する論文の著者です。場合によっては、トレーニングのみで強力なデータ拡張を使用する方が、データ拡張を使用しない場合よりもわずかに優れていますが、トレーニングおよびテスト拡張を使用すると、モデルのパフォーマンスが大幅に向上します。