我有一个小数据集,我想通过使用数据增强来训练 CNN。由于 CNN 由于数据集小而过拟合,我想优化一些超参数。但是,由于我想为此使用 Scikit-Learn 的 GridSearchCV,因此由于减少了计算时间,我只想优化 3 个超参数。这里出现的问题是我应该使用哪种超参数组合进行网格搜索?
我目前的方法是优化学习率、dropout 层率和 epoch 数。
我选择学习率是因为 Goodfellow 的《深度学习》一书建议始终优化学习率。但我不确定我的调优超参数组合是否真的很好。
你会推荐什么组合?非常感谢每一个提示
我以前的架构师如下:
model = Sequential()
model.add(Conv2D(32,(3,3))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Conv2D(32,(3,3))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2))
model.add(Dropout(0.2))
model.add(Conv2D(64, (3,3))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Conv2D(64,(3,3))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2))
model.add(Dropout(0.2))
model.add(Flatten())
model.add(Dense(512))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Dropout(0.4))
model.add(Dense(10))
model.add(Activation('softmax'))
作为优化器,我使用 Adam。