您好、欢迎来到现金彩票网!
当前位置:刘伯温论坛 > 图像分类 >

Kaggle 冰山图像分类大赛近日落幕看冠军团队方案有何亮点

发布时间:2019-06-16 13:11 来源:未知 编辑:admin

  雷锋网 AI 研习社按,在日前结束的 Kaggle「Statoil/C-CORE Iceberg Classifier Challenge」(冰山图像分类大赛)中,由 David Austin 和 Weimin Wang 组成的队伍一举拔得头筹,获得 25000 美元奖金。据介绍,他们的解决方案能有效应用于实际生活,保证舰船在危险的水域更加安全地航行,降低船和货物的损伤,避免人员伤亡。

  据 Kaggle 官网介绍,这次冰川图像分类大赛是 Kaggle 上最火的图像分类竞赛——拥有史上最多参赛队伍。而在所有数据竞赛中,本次比赛热度位列第 7。

  不久前,外媒对 David Austin 进行了一次深入采访,在采访中,他们讨论了以下问题:

  图 1:Kaggle 冰山分类挑战赛的任务目标是建立一个图像分类器,将输入卫星图像划分为冰山或者船

  问:你好,David,十分感谢你能接受我的采访,也恭喜你们在冰山图像分类挑战赛中取得第一名的好成绩。你是如何对计算机视觉和深度学习产生兴趣的呢?

  答:在过去两年里,我对深度学习的兴趣与日俱增。因为我看到人们利用它从数据中获得了难以置信的结果。我对深度学习领域的前沿研究和实际应用都很感兴趣,我认为 Kaggle 是一个非常棒的平台。通过比赛,我能保持对前沿技术的掌控能力,可以在合适的场景下尝试新的技术。

  问:你在参加这次比赛之前,在计算机视觉和机器学习领域的学术背景如何?你之前参加过其他 Kaggle 竞赛吗?

  答:大概十年前,我首次接触机器学习,那时我开始学习梯度提升树和随机森林相关知识并将其应用到分类问题中。近几年,我开始更广泛地关注深度学习和计算机视觉。不到一年前,我开始参加 Kaggle 竞赛,这是提升技能的一种方式,本次比赛是我第三次参加 Kaggle 竞赛。

  答:冰山分类挑战赛是一个图像二分类问题,这个比赛要求参赛者在卫星图像中将船和冰山区分开来。这项工作在能源勘探领域尤为重要,它让我们能够识别并且避开类似浮冰这样的威胁。

  要让人类仅凭肉眼准确地区分图片类别十分困难。我认为这是一个很好的契机——测试深度学习和计算机视觉能够做到人类做不到的事情。

  问:接下来,让我们讨论稍微技术性一些的问题。能介绍一下你们优胜策略中所使用的数据处理方法、算法和相关技术吗?

  答:好的,总体上我们的数据处理方法和大多数传统的计算机视觉问题中所使用的方法很相似。我们都会事先花费一些时间去理解数据。

  使用无监督学习方法是一种我最喜欢的技术,通过学习这些模式,我们可以决定接下来将要使用什么样的深度学习方法。

  在这个任务中,标准的 KNN(K 最近邻算法)就能够识别出帮助定义模型结构的关键信号。我们使用了一个十分庞大的卷积神经网络结构,包含超过 100 个改造过的卷积神经网络和类似于 VGG 的结构,然后我们使用 greedy blending 策略和两层结合了其他的图像特征的集成学习算法将模型结果融合起来。

  这听起来是个很复杂的方法。但是请记住!这里的目标函数是要最小化对数损失误差。在这个任务中,我们仅仅像这样加入了一些模型,因为它们能够在不发生过拟合的情况下减小对数损失。所以,这又是一个很好的例子,说明了将许多弱机器学习模型集成之后的威力。

  我们最后再次训练了许多和之前一样的卷积神经网络结构,但是这里我们仅仅是使用了一开始通过无监督学习挑选出的原始数据的子集作为输入,这同样也提高了我们模型的性能。

  说实话,这个数据集对于图像分类问题来说是相当小的,所以我们担心过拟合会是一个很大的问题。为此,得确保所有的模型都要经过4折交叉验证,尽管这会增加计算开销,但是却能降低过拟合的风险。尤其是在处理像对数损失这样非常严格的损失函数时,需要时刻注意过拟合问题。

  答:尽管我们选用的卷积神经网络规模巨大,并且在所有的模型训练过程中都使用了4折交叉验证,训练过程仅仅花费了一到两天。没有交叉验证的单个模型可以在几分钟内完成训练。

  问:如果要你选出一项本次比赛中你所使用的最重要的技术或者小窍门,你会选什么呢?

  答:毫无疑问,最重要的步骤当属预先进行的探索性分析,从而对数据有更好的了解。

  探索性分析的结果表明,有一个图像数据之外的特征中非常重要,它能够帮助消除数据中大量的噪声。

  在我看来,我们在计算机视觉或者深度学习问题中最容易忽视的步骤之一,就是需要事先理解数据,并且利用这些知识帮助我们做出最佳设计选择。

  现成的算法如今更加易于获得和引用,我们往往会不假思索、简单粗暴地将这些算法应用于待解决的问题上。然而我们却没有真正想清楚这些算法是不是这一任务的最佳选择,或者没有想清楚在训练之前或之后是否需要对数据进行一些适当的处理工作。

  答:就我个人而言,我认为 TensorFlow 和 Keras 是最好用的,因此在处理深度学习问题时,我会倾向于选择它们。

  至于 stacking 和 boosting 两种集成学习方法,我使用 XGBoost 去实现,这也是因为我对它很熟悉以及它已经被证实有好的运算结果。

  比赛中,我使用了我的 dl4cv 虚拟环境(这是计算机视觉深度神经网络中用到的 Python 虚拟环境),并且将 XGBoost 加入其中。

  社区中有很多供选手进行讨论的论坛,也有各种各样讨论的方式。如果参赛选手愿意,他们可以将自己的代码分享出来。当你试着学习通用的方法并将代码应用于具体问题上时,这将十分有帮助。

  当我第一次参加 Kaggle 比赛时,我花了几个小时仔细阅读了论坛中的文章以及其它高质量的代码,我发现这是学习的最佳途径之一。

  答:目前我手头上有很多项目要去做,因此我将会忙上一段时间。还有一些 Kaggle 比赛看上去十分有趣,所以之后我很有可能再回来参与到其中。

  答:最好方式的话,在我的 LinkedIn 用户资料中有写到。大家同样可以通过 LinkedIn 联系 Weimin Wang。同时,我会参加 PyImageConf2018,如果大家想要和我当面交流,那时候可以来找我。

http://airgomusic.com/tuxiangfenlei/319.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有