迁移学习现在被广泛应用于各种不同的任务,如图像分类、文本分类、文本生成等。在本文中,我们将重点介绍使用迁移学习的图像分类(Fast.ai)。很多时候,我们对预先训练的模型进行微调,以对一组非常不同的类进行分类。我们将使用迁移学习对一组相似的图像(原声吉他、四弦琴、电吉他和低音吉他)进行微调和分类。为实验选择的许多超参数都是我从fast.ai速成书中学到的。数据增强的威力-我们手动调整转换以适应自定义数据集-可以在此实验中看到。此外,我设立了一个投票组合,看看一组模型是否能给出更好的结果。
数据集
我使用Azure中的Bing API创建了可以在这里找到的数据集。数据集包含课程的吉他图像:原声吉他、电吉他、4弦低音吉他和四弦琴。此数据已分发到3个文件夹中。其中一个包含用于培训和验证的数据。另外两个测试文件夹用于测试训练好的模型。here
数据集的分层拆分。
型号
我们使用在ImageNet上预先训练的resnet18模型。
培训和实验设置:
上面给出的超参数选择用于运行实验,以查看哪种网络变量最适合对这种类型的数据集进行分类。
结果
正如我们所看到的,当使用尺寸为336x336px时,该模型给出了很好的结果。趋势在这个规模达到顶峰。我们可以看到,增加输入图像的大小有助于模型提供更好的结果。最小变焦级别也有类似的趋势。在强制模型从在1.1x到1.3x之间裁剪和放大的图像中学习时,我们可以看到这个特定数据集的结果超过96%。
系综模型
在我们使用多个这样的模型的情况下,看到它们通常一起执行总是很好的。在这里,我们使用一个简单的投票组合,我们选择前3名最佳模特,并根据他们的预测计算他们的选票。在这种情况下,我们得到的准确率为95%,低于最佳模型性能。
代码
参考文献
原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/07/10/%e7%9b%b8%e4%bc%bc%e5%9b%be%e5%83%8f%e5%88%86%e7%b1%bb%e5%99%a8/