ModelArts-lab 第二期扩展— 调整参数,提高猫狗识别精度

举报
tengyun 发表于 2019/07/21 23:46:36 2019/07/21
【摘要】 ModelArts-lab 第二期实战中,通过使用数据智能标注、模型训练和模型部署,端到端模拟真实AI开发场景,构建一个图像分类应用。根据案例提供的训练脚本,训练得到的模型的精度大概在82%左右,识别的效果并不是特别的好,而且还不太稳定,具有有一定的波动性。经常将哈士奇误认为猫,那有什么方法可以优化模型的精度呢? 接下来我们尝试通过改变不同的参数,来提高猫狗的识...

        ModelArts-lab 第二期实战中,通过使用数据智能标注、模型训练和模型部署,端到端模拟真实AI开发场景,构建一个图像分类应用。

根据案例提供的训练脚本,训练得到的模型的精度大概在82%左右,识别的效果并不是特别的好,而且还不太稳定,具有有一定的波动性。

经常将哈士奇误认为猫,那有什么方法可以优化模型的精度呢?

        接下来我们尝试通过改变不同的参数,来提高猫狗的识别准确率。可以从两个方面来调整:

一、网络结构

激活函数:选择合适的函数防止梯度消失/爆炸的情况,如果出现这些情况,你的模型得不到更新,这个网络相当于是死的网络,对与训练来说是非常不利的。

损失函数:更好的拟合预测与真实的值

优化器的选择:也就是梯度下降的方式,尽可能快的去优化目标函数达到全局最小值。提高训练速度,找到最优的解。

学习率(learning rate或作lr)是指在优化算法中更新网络权重的幅度大小。学习率可以是恒定的、逐渐降低的,基于动量的或者是自适应的。不同的优化算法决定不同的学习率。当学习率过大则可能导致模型不收敛,损失loss不断上下震荡;学习率过小则导致模型收敛速度偏慢,需要更长的时间训练。通常lr取值为[0.01,0.001,0.0001]

正则化项:防止过拟合的一个参数。

在深度学习里,除了可以在目标函数里加L1,L2的正则化,一般来说,我们在构架网络模型的时候,可以在两层网络之间,加一层dropout层,通过这一层之后,可以让上一层的神经元部分失活,随机让某一部分的神经元进入到下一部分的神经元进行计算,所以我们在构建相对比较深的网络的时候,可以去加一些dropout层。

二、训练过程

1、batch_size:就是每次我们放多少图片进行训练,在卷积神经网络中,大批次通常可使网络更快收敛,但由于内存资源的限制,批次过大可能会导致内存不够用或程序内核崩溃。bath_size通常取值为[16,32,64,128]

2、epoch:迭代次数是指整个训练集输入到神经网络进行训练的次数,当测试错误率和训练错误率相差较小时,可认为当前迭代次数合适;当测试错误率先变小后变大时则说明迭代次数过大了,需要减小迭代次数,否则容易出现过拟合。

3、Train_test_split:划分训练集和测试集的比例,验证泛化性能。这个比例合适的时候,我们就可以通过训练得到模型,去验证集上去验证它的表现好不好,如果表现好的话,就可以拿到测试集上去测试它的泛化性能,一般训练和测试的比例是7:3,在训练里面还可以分为训练集和验证集,这都属于在训练的过程,验证集只是在训练过程中把它作为训练集的测试,如果整个数据集按10份的话,训练集、验证集、测试集的比例一般是6:2:2,或者是6:1:3,前面两个部分,训练和验证都是为了测试模型的效果好不好,通过在训练集上的训练,我们可以得到这个模型,之后我们拿到验证集上去验证,如果说这个验证的效果还可以,就可以把这个模型放到测试集上去测试,看真实的数据效果怎么样,

还有一些其他的参数也会影响我们模型的结果,譬如权重初始化,

下面我们重点调整以下三个参数,

1、学习率

2、批次大小 batch_size

3、epoch

下面我们就手动地去修改一下上面的参数,看对模型的影响,精度是提高了还是降低了。

点击训练作业,打开之前训练好的作业,

1.jpg

点击右上角的修改:

2.jpg

找到运行参数进行修改

通过不断调整,不断实践,还是精度比较容易上84%,但是要想更进一步,就比较困难了,本案例中使用的VGG16神经网络结构可能不是最适合的,我们会在下一阶段尝试使用其他的开源神经网络结构(比如ResNet50、Inception)等来进一步提升精度。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。