我想比较一下 CNN 的分类性能(测试精度)根据数据集的大小而变化的程度。为此,我想使用像 MNIST 或 Fashion MNIST 这样的数据集。
我想首先训练一个只有大约 1000 个图像的子集 ob 的 CNN,然后是一个大约 5000 个图像的子集 ob 的 CNN,然后是大约 10000 个图像的子集等。
对于每个这些数据集,应该生成一个优化的 CNN。
我目前的计划如下:
- 创建一个简单的基础模型,它只有 1 个 Conv 层(带有 32 个过滤器)、MaxPooling2D、Dropout (0.5) 和一个包含大约 100 个神经元的 Dense Layer。
- 使用这个基本模型,我将使用 GridSearchCV 搜索最小的数据集(包含 1000 张图像)作为批量大小,并使用优化器搜索所有其他数据集。
然后我将为每个数据集执行以下操作:
使用 GridSearchCV 搜索网络的最佳架构(Conv 层数、过滤器数、密集层数、密集层中的神经元数)(此时 RandomizedSearchCV 可能不太适合)
搜索学习率、权重衰减、辍学率等(使用 GridSearch 或 RandomizedSearch)。
也许我可以只对一个或另一个不太重要的参数使用默认设置,然后将它们从搜索中排除。
我不确定我的方法是否真的值得推荐。
我也倾向于使用 RandomizedSearchCV 同时确定每个数据集的所有超参数。
非常感谢您的意见和建议。