小数据集神经网络如何选择超参数和策略?
How to choose the hyperparameters and strategy for neural network witg small dataset?
我目前正在做语义分割,但是我的数据集非常小,
我只有大约 700 张带有数据增强的图像,例如,翻转可以
使其成为 2100 张图像。
不确定它是否足以完成我的任务(语义分割有四个
类).
我想使用批量归一化和小批量梯度下降
真正让我摸不着头脑的是,如果batch size太小,
批量归一化效果不佳,但批量较大时,
似乎相当于全批梯度下降
我想知道 #of samples 和 batch 之间是否有类似标准比率的东西
尺码?
让我先回答你问题的第二部分"strategy for neural network with small dataset"。您可能希望在较大的数据集上采用预训练网络,并使用较小的数据集微调该网络。例如,参见 this tutorial。
其次,你问的是batch的大小。事实上,较小的批次会使算法在经典随机梯度下降中徘徊在最佳值附近,其标志是损失的嘈杂波动。而对于更大的批量大小,通常会有更多 "smooth" 轨迹走向最佳。无论如何,我建议您使用具有动量的算法,例如 Adam。这将有助于您训练的收敛。
启发式地,批大小可以保持在您的 GPU 内存可以容纳的大小。如果 GPU 内存量不足,则减少批处理大小。
我目前正在做语义分割,但是我的数据集非常小,
我只有大约 700 张带有数据增强的图像,例如,翻转可以
使其成为 2100 张图像。
不确定它是否足以完成我的任务(语义分割有四个
类).
我想使用批量归一化和小批量梯度下降
真正让我摸不着头脑的是,如果batch size太小,
批量归一化效果不佳,但批量较大时,
似乎相当于全批梯度下降
我想知道 #of samples 和 batch 之间是否有类似标准比率的东西 尺码?
让我先回答你问题的第二部分"strategy for neural network with small dataset"。您可能希望在较大的数据集上采用预训练网络,并使用较小的数据集微调该网络。例如,参见 this tutorial。
其次,你问的是batch的大小。事实上,较小的批次会使算法在经典随机梯度下降中徘徊在最佳值附近,其标志是损失的嘈杂波动。而对于更大的批量大小,通常会有更多 "smooth" 轨迹走向最佳。无论如何,我建议您使用具有动量的算法,例如 Adam。这将有助于您训练的收敛。
启发式地,批大小可以保持在您的 GPU 内存可以容纳的大小。如果 GPU 内存量不足,则减少批处理大小。