宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

原文:Abhishek Sharma

栗子野编

由qubit |微信官方账号QbitAI制作

100个野生动物中国野生动物有哪些-风君子博客

最近,一场由HackerEarth举办的初学者深度学习挑战赛结束了。

比赛的内容是鉴别野生动物

来自印度的本科生阿比舍克夏尔马获得了冠军。

100个野生动物中国野生动物有哪些-风君子博客

于是,他写下了自己的经历,送给朋友们参考:

怎样的挑战

比赛数据集中有19000张图片,包括30种不同的野生动物。

100个野生动物中国野生动物有哪些-风君子博客

来自竞赛数据集

动物的照片都是在真实场景下拍摄的,姿势不同,背景复杂,光线、天气条件、视角、遮挡都不一样。

与这些令人困惑的因素相比,一些不同的物种看起来并没有那么不同。

哪个类别的预测概率最高,图像就会分发给哪个物种。

评价指标:分类器对数损失。

00-1010,拿到任务后,首先要做的就是看看过去有没有类似的问题,之前的方法是否可以借鉴。

青少年发现竞赛数据集和ImageNet有很多交集。

100个野生动物中国野生动物有哪些-风君子博客

ImageNet数据集中的一些栗子

那么,如何利用它们之间的异同来改进现有的方法呢?

首先,这个任务中的未知与ImageNet非常相似。

因此,我们可以使用迁移学习、CNN作为初始化或固定特征提取器。

转移研究论文:

https://arxiv.org/abs/1411.1792

一个区别是图像大小。ImageNet中的图像都是224 x 224像素,但在动物识别任务中,图像更大。

因此,应该改进算法来处理大图像。

熟悉问题后,首先构建一个简单的管道:从加载数据集到训练和验证。可以迭代几次。

怎样上手

100个野生动物中国野生动物有哪些-风君子博客

可爱的过装

在19000幅图像中,13000幅属于训练集,其余6000幅属于测试集。

数据集不是很大。为了避免过度试衣,青少年做了以下尝试:

00-1010是通过旋转、翻转、裁剪等简单操作将一张图片变成多张图片。

这里,transform _ side _ on用于随机旋转、翻转和调暗灯光。

数据放大论文:

http://cs231n.stanford.edu/reports/2017/pdfs/300.pdf

怎样防止过拟合

深度学习网络中,最重要的超参数是学习率。

100个野生动物中国野生动物有哪些-风君子博客

程利用fastai库中提供的lr_find方法来寻找最优值。

这种方法是由已故的酸奶史密斯提出的:在训练开始时,学习率被设置得很低,然后每个批次的学习率呈指数级增长。

史密斯的论文在这里:

https://arxiv.org/abs/1506.01186

用于训练的图像大小为324 x 324,因为这些图像在验证集中表现良好。

青少年也尝试了不同的批量大小,到了32的时候,GPU存储达到了上限。然后,他相应地调整了学习速度。

学习率与批量:

3359幽默的Tree-Data-sc.github.io/2017-11-05-first/

00-1010用小图训练几个时代后,可以换大图450 x 450)继续训练几个时代。

这也是一个很好的方法来防止过度拟合,在青少年对数损失。

身上,产生了明显疗效。

100个野生动物中国野生动物有哪些-风君子博客

各种模型合起来

少年训练了各种模型,比如resnet50,resnext101_64,inception_4,restnet152以及restnext101。然后,把它们给出的结果用加权平均整合到一起,就获得了榜首的高分。

哪些做法没有用

一是,受到下面这个Kaggle内核的启发,程序猿做了些图像相关的统计数据 Image Related Statistics) 。

但是,在把各种网络结合在一起的时候,这些统计就减分了。

Kaggle Kernel传送门:

https://www.kaggle.com/greenmtn/xgb-starter-lb-0-88232/code

二是,在瓶颈特征 Bottleneck Features)上训练逻辑回归 Logistic Regression) 。瓶颈特征,是进入全连接层之前,卷积层输出的最后结果。

这个方法,在Kaggle自信的大炮品种识别挑战赛里,效果很好,但在这里就不太行。

100个野生动物中国野生动物有哪些-风君子博客

印度少年说,大家一定要尝试从各种不同的角度来看问题,不要放弃。

虽然奖金没多少……

HackerEarth是一个编程技能的线上评测系统,也举办过许多编程比赛。

100个野生动物中国野生动物有哪些-风君子博客

虽然,有些比赛奖金并不丰厚。不过,据说比赛成绩好的选手可能获得名企的推荐资格。

野生动物识别挑战赛传送门:

https://www.hackerearth.com/en-us/challenge/competitive/deep-learning-beginner-challenge/

第一名的GitHub传送门:

https://github.com/numb3r33/identify_the_animal

— 完 —

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ’ᴗ’ ի 追踪AI技术和产品新动态