4116 224x224x3 (RGB) の航空写真を含む不均衡で小さなデータセットがあります。データセットが十分に大きくないため、過剰適合の問題が発生する可能性が非常に高くなります。以下で説明するように、画像の前処理とデータ拡張は、この問題に取り組むのに役立ちます。
「オーバーフィッティングは、学習するサンプルが少なすぎるために発生し、新しいデータに一般化できるモデルをトレーニングできなくなります。無限のデータが与えられると、モデルは手元のデータ分布のあらゆる可能な側面にさらされます:決してオーバーフィット データ拡張は、信頼できる画像を生成する多数のランダム変換を介してサンプルを拡張することにより、既存のトレーニング サンプルからより多くのトレーニング データを生成するアプローチを採用しています。」
Deep Learning with Python by François Chollet、ページ 138-139、5.2.5 データ拡張の使用。
Medium - Image Data Preprocessing for Neural Networksを読み、Stanford のCS230 - Data Preprocessingおよび CS231 - Data Preprocessingコースを調べました。SO questionでもう一度強調されており、「すべてに適合する」ソリューションがないことを理解しています。これが私にこの質問をさせた理由です:
「高い空間解像度を達成したいので、翻訳の増強は使用されませんでした。」
参考:Researchgate - 深層畳み込みニューラル ネットワークを使用した都市リモート センシング画像における小さなオブジェクトのセマンティック セグメンテーションと不確実性のモデリング
Keras - ImageDataGenerator Class
を使用することはわかっていますが、小さなオブジェクト タスクのセマンティック セグメンテーションに使用する手法とパラメーターがわかりません。誰かが私を啓発できますか?前もって感謝します。:)
from keras.preprocessing.image import ImageDataGenerator
datagen = ImageDataGenerator(
rotation_range=20, # is a value in degrees (0–180)
width_shift_range=0.2, # is a range within which to randomly translate pictures horizontally.
height_shift_range=0.2, # is a range within which to randomly translate pictures vertically.
shear_range=0.2, # is for randomly applying shearing transformations.
zoom_range=0.2, # is for randomly zooming inside pictures.
horizontal_flip=True, # is for randomly flipping half the images horizontally
fill_mode='nearest', # is the strategy used for filling in newly created pixels, which can appear after a rotation or a width/height shift
featurewise_center=True,
featurewise_std_normalization=True)
datagen.fit(X_train)