图像分类:从13个Kaggle竞赛中总结技巧

本文总结了13个Kaggle图像分类竞赛的最佳实践,涵盖数据预处理、模型构建、损失函数等方面。强调了数据增强、基准模型建立、模型正则化和损失函数选择的重要性。提供了各种技术,如EDA、数据增强、深度学习架构优化、超参数调优和正则化,以提高模型的泛化能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文:https://neptune.ai/blog/image-classification-tips-and-tricks-from-13-kaggle-competitions




任何领域的成功都可以总结成一组基本原则,当它们结合在一起时,就会产生巨大的成效。

机器学习和图像分类没有什么不同,工程师可以通过参加 Kaggle 这样的比赛来展示最佳实践。

本文将为您提供大量学习资源,重点介绍 13 个 Kaggle 竞赛的最佳核心程序——其中最突出的竞赛有:

将讨论深度学习解决方案的三个方面:

  • 数据
  • 模型
  • 损失函数




数据

图像预处理+探测性数据分析(EDA)


每个机器学习或深度学习解决方案都从数据开始,处理数据有两个基本步骤:

  1. 探索性数据分析(EDA),分析整个数据集并总结主要特征,如类分布、规模分布等,通常使用可视化来显示。
  2. 图像预处理,通过减少不需要的扭曲、调整大小、增强重要特征等手段,使数据更适合模型。

案例:



数据增强


数据增强,通过现有训练样本生成更多的训练数据。

新的样本是通过大量的随机变换生成的,这些变换不仅能产生可信的图像,还能反映真实的场景。

在数据样本太少的情况下,模型开始记住训练集,在从未见过的数据上表现很差,即不能泛化。

通常,当一个模型在训练集上表现很好,但在验证集上表现很差时,称为过拟合

为了解决这个问题,首先尝试获取更多数据,但做不到时,数据增强就可以解决问题。

一般建议使用数据增强技术,尽管有大数据集并且训练更耗时,但它有助于将模型暴露在更多的变化中,能达到更好的泛化效果。

数据增强能够反映真实场景,如猫狗分类,用水平翻转,裁剪,亮度,对比度,来匹配不同的拍照方式。

案例:




模型

开发一个基准模型(baseline)

案例

使用一个简单架构创建基本模型,没有任何正则化或 dropout ,看看能否超过基准模型 50% 准确率

虽然不能总是达到这个目标,但是如果在尝试了多个合理的架构后仍不能超过基准模型,那么输入数据可能不包含模型预测所需的信息

Jeremy Howard: 您应该在15分钟内使用50%或更少的数据集快速测试是否进入一个有前景的方向,如果不是,您必须重新考虑一切。



开发一个足够大的模型,使其能过拟合

案例

一旦基准模型有足够的能力超过基准模型,就可以增加基准模型的能力直到过拟合数据集,然后开始应用正则化。通过以下方法增加模型能力:

  • 添加更多层
  • 使用更好的架构
  • 更好的训练程序



架构

根据文献,以下架构提高了模型能力,但几乎没有改变计算复杂度:



训练程序



超参数调优


超参数在配置模型时指定,如学习率、迭代次数、隐藏单元的数量、批次大小等

与手动尝试配置不同,可以使用超参数调优库(如 Scikit learn Grid SearchKeras Tuner)自动化,这些库将尝试指定范围内的所有超参数组合,并将返回性能最佳的模型。

需要调优的超参数越多,过程就越慢,因此最好选择要调优的模型超参数的最小子集。

并非所有模型的超参数都同等重要,一些超参数会对机器学习算法的行为产生巨大影响,进而影响其性能。应该仔细选择对模型性能影响最大的那些,并对它们进行调优以获得最大性能。



正则化

正则化通过惩罚记忆/过拟合欠拟合,让模型学习数据的有意义和一般化表示,使模型在处理从未见过的数据时更具鲁棒性。

解决上述问题的最简单方法是获取更多的训练数据,因为在更多数据上训练的模型自然会泛化得更好。

以下是可以缓解过拟合和欠拟合的技巧:




损失函数


损失函数又称成本函数或目标函数,它用于寻找模型输出与目标输出之间的差异,帮助模型最小化它们之间的距离。

以下是一些最流行的损失函数:



评估和误差分析


分析实验结果,确定模型的优缺点,寻找未来改进的方向:




结论

有很多方法调整模型,深度学习是一个快速发展的领域,没有捷径,必须进行大量实验,足够多的尝试和错误才能带来突破。

进一步的研究




参考文献

论文

  1. Wide Residual Networks
  2. mixup: BEYOND EMPIRICAL RISK MINIMIZATION
  3. ArcFace: Additive Angular Margin Loss for Deep Face Recognition
  4. EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
  5. Searching for Activation Functions
  6. Residual Attention Network for Image Classification
  7. Mixed Precision Training
  8. Self-training with Noisy Student improves ImageNet classification
  9. When Does Label Smoothing Help?
  10. Additive Angular Margin Loss for Deep Face Recognition
  11. Grad-CAM: Why did you say that? Visual Explanations from Deep Networks via Gradient-based Localization
  12. A Comparative Study of Deep Learning Loss Functions for Multi-Label Remote Sensing Image Classification

博客

  1. Wide Residual Nets: “Why deeper isn’t always better”
  2. Tune Hyperparameters for Classification Machine Learning Algorithms
  3. Image Pre-Processing
  4. Understanding Categorical Cross-Entropy Loss, Binary Cross-Entropy Loss, Softmax Loss, Logistic Loss, Focal Loss and all those confusing names
  5. Noisy student
  6. Overfitting and Underfitting With Machine Learning Algorithms
  7. Developing AI projects under pressure
  8. Understanding Neural Networks
  9. Kaggle competitions

书籍

  1. Deep Learning with Python
  2. Deep Learning with PyTorch
  3. Evaluating Machine Learning Models
  4. Fastbook

Kaggle 竞赛

  1. Intel Image Classification
  2. Recursion Cellular Image Classification
  3. SIIM-ISIC Melanoma Classification
  4. APTOS 2019 Blindness Detection
  5. Diabetic Retinopathy Detection
  6. ML Project — Image Classification
  7. Cdiscount’s Image Classification Challenge
  8. Plant seedlings classifications
  9. Aesthetic Visual Analysis
  10. Data Science Bowl 2017
  11. Plant Pathology 2020 – FGVC7
  12. Lyft Motion Prediction for Autonomous Vehicles
  13. Humpback Whale Identification
  14. Distributed Training
  15. 3D Image classification

Kaggle 笔记

  1. Ultimate Image Classification Guide 2020
  2. Protein Atlas – Exploration and Baseline
  3. Intel Image Classification (CNN – Keras)
  4. APTOS : Eye Preprocessing in Diabetic Retinopathy
  5. Lyft Level5: EDA + Training + Inference
  6. [BEG][TUT]Intel Image Classification[93.76% Accur]
  7. pretrained ResNet34 with RGBY (0.460 public LB)
  8. Fold1h4r3 ArcENetB4/2 256px RCIC
  9. Quick Visualization + EDA
  10. Analysis of Melanoma Metadata and EffNet Ensemble
  11. Triple Stratified KFold with TFRecords
  12. Melanoma. Pytorch starter. EfficientNet
  13. InceptionV3 for Retinopathy (GPU-HR)
  14. Fastai tutorial for image classification
  15. Google image classification v4
  16. Chest X-Ray Image Classification – TF Hub ResNet50
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值