Обсуждение выигрышной модели для набора данных американского языка жестов Kaggle



Основные моменты: Мы вошли в тройку лучших команд-победителей с точностью 1 на соревновании Лукаса Бивальда, которое проходило в Сан-Диего. Конкурс спонсировался компанией Weights and Biases. Результаты на https://app.wandb.ai/mlclass/asl-july25/



Борьба с моделями

  1. Модели трансферного обучения хороши, но их сложно интегрировать с графическими процессорами во время соревнований в прямом эфире. Ниже то, к чему мы готовились перед турниром
  2. У нас были проблемы с моделями обучения Deep Transfer, которые требовали изменить размер изображения в градациях серого на 3 канала и использовать трансферное обучение, которое не сработало и заняло время.
  3. Мы пытались увеличить изображение, но это также не рекомендуется.
  4. Наконец-то попробовали приведенную ниже модель, и увеличение данных позволило нам достичь наилучшей производительности с точностью до 1,0.

Обзор моделей трансферного обучения Paper space

  • Размеры входных данных чрезвычайно важны, но должен быть баланс между выбором входных параметров и тем, сколько времени занимает извлечение признаков. Неглубокая NN быстро обучается во всех случаях, но извлечение признаков — дорогостоящий процесс.
  • Две модели resnetInceptionv2 и Deep Transfer Learning являются наиболее эффективными моделями, обе они не используют увеличение данных.
  • Настройка гиперпараметров
  • Изменение скорости обучения
  • Изменение размера ввода, дорогостоящая операция
  • Уровень отчисления
  • Смена оптимизатора
  • Изменение количества эпох
  • Использование глубокого трансферного обучения с NN [мой товарищ по команде Вэйхэ Ван является экспертом в этом]
  • Подход Frozen Layers ??

Давайте углубимся в модель и архитектуру модели

Извлечение данных

Использование увеличения изображения

Модель после нормализации и горячего кодирования

Одно горячее кодирование меток и нормализация являются стандартными шагами

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d_1 (Conv2D)            (None, 28, 28, 32)        320       
_________________________________________________________________
conv2d_2 (Conv2D)            (None, 28, 28, 64)        18496     
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 14, 14, 64)        0         
_________________________________________________________________
dropout_1 (Dropout)          (None, 14, 14, 64)        0         
_________________________________________________________________
conv2d_3 (Conv2D)            (None, 14, 14, 128)       73856     
_________________________________________________________________
max_pooling2d_2 (MaxPooling2 (None, 7, 7, 128)         0         
_________________________________________________________________
conv2d_4 (Conv2D)            (None, 7, 7, 128)         147584    
_________________________________________________________________
max_pooling2d_3 (MaxPooling2 (None, 3, 3, 128)         0         
_________________________________________________________________
dropout_2 (Dropout)          (None, 3, 3, 128)         0         
_________________________________________________________________
flatten_1 (Flatten)          (None, 1152)              0         
_________________________________________________________________
dense_1 (Dense)              (None, 1500)              1729500   
_________________________________________________________________
dropout_3 (Dropout)          (None, 1500)              0         
_________________________________________________________________
dense_2 (Dense)              (None, 25)                37525     
=================================================================
Total params: 2,007,281
Trainable params: 2,007,281
Non-trainable params: 0
_________________________________________________________________

Окончательные результаты