相信不少开发者已经或多或少对百度EasyDL有所耳闻或有所尝试,作为零算法基础实现图像分类和物体检测的”神器”,支持使用少量训练数据,使用通用算法训练,就能很快得到一个图像分类模型。最近百度EasyDL又增加了新的算法AutoDL Transfer (高精度算法)。AutoDL Transfer是百度研发的AutoDL技术之一,结合模型网络结构搜索、迁移学习技术、并针对用户数据进行自动优化的模型,与通用算法相比,训练时间稍长,但更适用于图像的细分类场景,例如,通用算法可适用于区分猫和狗,但如果要区分不同品种的猫,则AutoDL效果会更好。下面我们通过实例来看下这两种算法的应用场景。
不知道大家平时养不养狗,现在大街上狗的品种是真的多,很多都是看着眼熟,如果想准确的叫出名字还真不太容易。笔者利用手里的一些狗的数据来进行训练,看看高精度算法和通用算法的区别。
第一步,登录百度EasyDL,ai.baidu.com/easydl。里面有使用的步骤,还是挺清楚的;
第二步,创建模型、创建数据集。相信使用过EasyDL的朋友对如何创建已经了解了,本文就不详细介绍操作步骤了;
第三步,训练模型,笔者先只添加2个分类共400多张图像(单个分类数据量较丰富)作为训练数据,分别是萨摩耶和博美,在笔者看来这两种犬类从外观特征来看差异很小(忽略体型大小),经常会分不清。
算法上选择通用算法,训练方式默认,然后点击训练。因为数据量较少,不出1个小时,模型就训练好了,我们来看看效果。
Top1的准确率达到了98.49%,通用算法的表现非常不错。那使用AutoDL高精度算法会不会表现得更好呢。接下来我们使用AutoDL算法进行训练看看。
选择百度AutoDL Transfer算法,点击训练。原以为AutoDL会慢一些,结果还是不出一小时就很快完成了训练,我们来看一下效果是不是更好。
结果让笔者很意外,Top1准确率是87.94%,比通用算法的准确率要低一点了。
笔者决定再通过增加分类数量来检验一下两种算法的效果。这次的分类数量提高到了100多种,包含了上万张图像。我们分别用通用算法和百度AutoDL高精度算法进行了训练,因为数据量比较大,这次训练的时间稍微有些长。
采用通用算法的模型准确率是84.25%,而采用百度AutoDL高精度算法的模型准确率是86.88%,这次从准确率来看,高精度算法效果更好。
百度AutoDL算法是以迁移学习为基础的,而迁移学习是机器学习的明天,相比深度学习可以用少量的数据训练出适合的模型。
笔者从网上搜了一张全新的博美狗图像,然后分别用通用和高精度算法来检验模型效果,结果发现采用高精度算法两个训练版本(V2&V4)要比采用通用算法两个版本(V1&V3)准确度更高,这说明 AutoDL高精度算法的分类效果还是非常出色的。
在区分猫和狗这样差异较大的样本时,通用算法性价比更高。而在区分狗的品种这样有大量分类且样本差异更小的场景下,通用算法“举一反三”的能力就相对较弱了,这时候百度AutoDL高精度算法的效果更出色。
作者:郭晶