Skip to content

淘天 Problem 2:蜜蜂亚种与健康分类

  • 来源:noai-mis/淘天/Problem 2
  • 类型:CV
  • 原始资料:baseline.ipynbNOAI竞赛实战课程大纲最终版.pdf
  • 题面完整性:无独立 statement;baseline notebook 描述较清楚
  • 解法资料完整性:有完整 baseline

题面大意

构建神经网络/CNN 模型完成蜜蜂健康状态识别,并可扩展到蜜蜂亚种分类。课程大纲将本题定位为“深度学习入门与 CNN 可视化”:既要训练模型,也要通过 loss 曲线、Early Stopping、Dropout 和卷积核/特征图可视化理解 CNN。

数据特点

输入是蜜蜂图像,标签包括亚种和健康/疾病状态。类别分布可能不均衡,notebook 中专门对亚种数据做平衡和数据增强。图像分类目标依赖蜜蜂外观、颜色、纹理和可能的背景信息。

考点

核心考点是基础深度学习训练闭环,而不只是得到一个分类器。需要理解 Keras Sequential API、激活函数、训练/验证 loss 曲线、Early Stopping、Dropout 正则化,以及 CNN 浅层卷积核学习边缘/纹理、深层响应抽象图案的可解释性。

涉及知识点

  • Keras/TensorFlow CNN。
  • ImageDataGenerator 增强。
  • 类别平衡与上采样。
  • Conv2D/MaxPool/Dropout/BatchNorm。
  • 混淆矩阵与分类指标。

解法思路

按课程大纲,本题建议分三步做。第一步先搭建一个 Keras 全连接网络或浅层模型作为深度学习入门 baseline,对比使用和不使用 Early Stopping 时验证集表现的差异,学习如何从 loss 曲线判断过拟合。第二步使用 Keras Sequential 搭建 CNN:Conv2D -> ReLU -> MaxPool -> Dropout -> Dense,图像 resize 后输入网络,并在训练集上做轻量增强和类别平衡。第三步提取 Conv2D 层权重和中间 feature maps,可视化蜜蜂图片在不同层产生的响应,理解浅层边缘/纹理与深层局部图案。

如果要完成更接近竞赛的解法,可以把健康状态和亚种分类分开训练,也可以共享 CNN backbone 做多任务输出;但课程重点仍是通过 Early Stopping、Dropout 和可视化建立 CNN 训练直觉。大纲还要求用同一份数据比较随机森林与 Keras 网络,用这个实验说明树模型和深度网络在图像/非结构化数据上的适用边界。

可选/多种解法

全连接网络 baseline:用于观察 Early Stopping 和 Dropout 的作用。

从头 CNN:课程主线,便于可视化卷积核和特征图。

随机森林对比:可用展平/手工特征做对照,说明传统模型的局限。

多任务学习:共享 backbone,同时输出亚种和健康状态,适合进阶实验。

特殊技巧

Early Stopping 要监控 validation loss 或 validation accuracy,而不是训练集指标。Dropout 过小可能压不住过拟合,过大可能欠拟合;课程大纲建议对比 0.20.5。卷积核可视化时应区分“权重可视化”和“输入图片激活特征图”,二者解释含义不同。

调参优化

大纲明确要求比较 Early Stopping 和 Dropout,因此调参应先围绕训练稳定性:固定验证集后,对比无 Early Stopping、Early Stopping patience 不同取值,以及 Dropout 0.2/0.5 的验证曲线。随后再调图像尺寸、旋转/平移/缩放范围、CNN 通道数、学习率、batch size、epoch 和类别权重。若做健康状态与亚种两个任务,可分别训练,也可调多任务 loss 权重;如果一个任务明显拖累另一个,分开训练更稳。数据平衡只在训练集内做,调参时应看 macro F1 或各类召回,避免多数类 accuracy 掩盖少数类问题。

注意事项

该目录只有 baseline notebook,没有正式评分说明;本文按 notebook 目标整理。若作为竞赛题使用,需要确认提交格式和指标。

推广意义

这是入门级图像分类教学题,适合学习从数据探索、增强到 CNN 训练的完整流程。