Contents
- 1 关于Kaggle竞赛
- 1.1 比赛奖牌规则如下:
- 2 图像识别竞赛流程
- 3 数据准备
- 3.1 模型设计
- 3.2 迭代训练
- 3.3 模型测试
- 4 总结
关于Kaggle竞赛
Kaggle是一个数据分析的竞赛平台,网址:https://www.kaggle.com/,网站主页面如下:
kaggle上的竞赛主要分为A类赛和B类赛。
- A类赛主要适合用传统的机器学习算法做,偏向与文本数据处理,比如房价预测,文本分类等;
- B类赛则几乎都是用神经深度学习算法做,偏向于图像识别/目标检测等方向,比如基础的猫狗识别、cifar10图像分类、蛋白质识别等。根据我的亲身体验,真的需要配置好的服务器做基础才行啊!
我现阶段专注于图像识别,所以我参加了三个kaggle竞赛都是CV领域的,下面是我总结的Kaggle的CV类竞赛的流程。
- 数据准备(包括下载、分析数据后,再读取数据并做预处理,数据量过小的话做数据增强)
- 模型设计(CNN网络选择,基础CNN,或者state-of-art模型,如ResNet,VGGNet等,模型)
- 迭代训练(迭代训练模型)
- 模型验证(在测试集上测试训练得到的模型)
比赛奖牌规则如下:
图像识别竞赛流程
图像识别竞赛,主要是对未知图像进行分类,然后在测试集上测试后,提交结果到Kaggle平台,查看分数和排名。主要流程如下:
- 数据准备
- 模型设计
- 迭代训练
- 模型验证
数据准备
包括下载、分析数据后,再读取数据并做预处理,数据量过小的话做数据增强。
模型设计
图像识别的比赛,基本都是CNN网络,所以这里可以选择基础的CNN网络,或者直接上state-of-art模型,如ResNet,VGGNet等模型,模型的设计需要注意的是一些超参数的调节,包括基础学习率、最大迭代训练次数、Batch批次大小等,这些都需要依靠经验和理论来去设置调节。
迭代训练
当数据准备和模型设计的工作完成以后,我们就可以对模型进行迭代训练,来获取模型最佳权重,在迭代次数完成后,记得保存模型。训练可使用K折交叉验证方法。
模型测试
迭代训练后的模型泛化性和效果如何,需要在测试集上测试之后才能知道,这也是Kaggle竞赛与网上乱七八糟的一些demo的不同之处,模型需要对较大的测试集进行测试,并将图像分类的测试结果写入csv文件提交到官网上去。为了得到好的测试结果,我们需要做验证比较多个模型、调节超参数、做数据增强、防止过拟合等工作。
总结
因为图像识别不想文本处理类的比赛所需数据量较小,所以它前期的数据准备工作很是繁琐,对硬件要求很高,所以建议准备一个好的服务器平台。