CNNを使って画像分類器を作りたいです。データセットには、男性と女性の 2 種類の画像があります。合計で 2300 枚の画像があり、そのうちの 20% を検証に使用しました。問題は、オーバーフィッティングのためにモデルがまったく良くないことです(それが問題だと思います)が、なぜ私のモデルがひどくオーバーフィットするのかわかりません(下のグラフのリンクを開いてください.yの最大値は3.5です)これは、バイカテゴリ予測を行うために使用した keras モデルです
early_stopping = EarlyStopping(min_delta = 0.001, patience = 20, restore_best_weights = True)
model = tf.keras.Sequential()
model.add(tf.keras.layers.Conv2D(64, (3, 3), activation = 'relu'))
model.add(tf.keras.layers.MaxPooling2D((2, 2)))
model.add(tf.keras.layers.Conv2D(64, (3, 3), activation = 'relu'))
model.add(tf.keras.layers.MaxPooling2D((2, 2)))
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(32, activation = 'relu'))
model.add(tf.keras.layers.Dropout(0.25))
model.add(tf.keras.layers.Dense(32, activation = 'relu'))
model.add(tf.keras.layers.Dropout(0.25))
model.add(tf.keras.layers.Dense(2, activation = 'softmax'))
opt = keras.optimizers.Adam(learning_rate=0.01)
model.compile(optimizer = 'adam', loss = 'sparse_categorical_crossentropy', metrics = ['accuracy'])
history = model.fit(xtrain, ytrain, validation_data = (xval, yval), batch_size = 16, epochs = 100, callbacks = [early_stopping], verbose = 0)