353. Kannada MNIST | Kannada-MNIST
恭喜所有参赛者。我在本次比赛中的主要目标是探索有效使用新优化器的方法,例如 RAdam 和 Over9000。尽管相关研究承诺这些优化器的效果远好于 Adam,但我对这些优化器的初步测试结果却相当令人失望:RAdam 的结果与 Adam 大致相同,而 Over9000 的效果则差得多。在我参加的上一次云分割比赛中,观察到了一个有趣的现象:如果使用 RAdam,余弦退火中不应包含 warm-up(预热)。正如 这里 所预期的那样,Over9000 配合这种调度器的效果甚至比 RAdam 还要好。在 fast.ai 中,可以通过以下附加参数实现:learn.fit_one_cycle(36, max_lr=slice(0.2e-2,1e-2), pct_start=0.0, div_factor=100)。因此,本次比赛提供的小数据集和快速训练周期非常适合进行优化器和调度器的实验。
在本次比赛中,我使用了 3 个模型:
在所有模型中,ReLU 被 Mish 替代。模型头与 fast.ai 默认使用的类似:拼接池化 + Mish + BN + Dropout(0.5) + Linear + Mish + BN + Dropout(0.5) + Linear。
get_transforms(do_flip=False,max_zoom=1.2)关于训练/测试数据不匹配的问题:我推测每个人都提供了几个手写数字。当同一个人书写的数字被分割到训练集和验证集时,就会发生泄露。我试图假设每个人提供一个或多个(固定数量)数字实例。这对我来说没有奏效,因为很可能人们提供的手写样本数量不同,一切仍然混杂在一起。
可以通过此 实用脚本 将 RAdam 和 Over9000 添加到你的内核中。