EfficientnetBit

0

Описание

В работе использовался датасет CIFAR-10.

Языки

  • Text100%
5 месяцев назад
4 месяца назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
README.md

Лабораторная работа №1: Классификация изображений с использованием EfficientNet

1. Цель работы

  • Практическое освоение принципов работы и применения современных предобученных сверточных нейронных сетей на примере EfficientNet
  • Получение навыков трансферного обучения и тонкой настройки на специализированном наборе данных
  • Изучение методов улучшения качества модели через оптимизацию гиперпараметров и аугментацию данных

2. Теоретическое введение

EfficientNet - это семейство архитектур, которое использует составное масштабирование глубины, ширины и разрешения входных изображений. Это позволяет достичь высокой точности при оптимальном использовании вычислительных ресурсов.

Трансферное обучение - техника, при которой модель, обученная на большой задаче (ImageNet), используется как основа для решения новой, но схожей задачи. Это значительно ускоряет обучение и улучшает качество модели.

Тонкая настройка - процесс "разморозки" части слоев предобученной модели и дообучения на целевом датасете с очень низкой скоростью обучения, что позволяет модели адаптировать свои веса под специфику новой задачи.

3. Описание датасета

  • Датасет: CIFAR-10
  • Количество классов: 10
  • Размер выборки: 12,000 изображений
  • Распределение данных:
    • Обучающая выборка: 8,000 изображений
    • Валидационная выборка: 2,000 изображений
    • Тестовая выборка: 2,000 изображений
  • Разрешение изображений: 128×128 пикселей

4. Предобработка данных

  • Изменение размера: Все изображения увеличены до 128×128 пикселей
  • Нормализация: Значения пикселей приведены к диапазону [0, 1]
  • Аугментация данных: Применены различные преобразования для увеличения разнообразия обучающей выборки
  • Специфический препроцессинг: Использован препроцессинг, специфичный для EfficientNet

5. Архитектура модели

  • Базовая модель: EfficientNetB0 (предобучена на ImageNet)
  • Добавленные слои:
    • GlobalAveragePooling2D()
    • Dense(128, activation='relu')
    • Dense(10, activation='softmax')
  • Режим обучения:
    1. Feature Extraction: Веса базовой модели заморожены
    2. Fine-Tuning: Разморожены верхние слои базовой модели

6. Гиперпараметры обучения

  • Оптимизатор: Adam
  • Функция потерь: Categorical Crossentropy
  • Размер батча: 32
  • Learning Rate:
    • Feature Extraction: 0.0003
    • Fine-Tuning: 0.00001
  • Количество эпох: определялось с помощью Early Stopping

7. Результаты на тестовой выборке

Матрица ошибок

Confusion Matrix

Классификационный отчет

КлассPrecisionRecallF1-ScoreSupport
✈️ Самолет0.88270.80610.8427196
🚗 Автомобиль0.90640.92930.9177198
🐦 Птица0.89250.85130.8714195
🐱 Кошка0.84090.74370.7893199
🦌 Олень0.85370.88380.8685198
🐶 Собака0.79700.84860.8220185
🐸 Лягушка0.89780.93520.9161216
🐴 Лошадь0.90670.90670.9067193
🚢 Корабль0.90670.94010.9231217
🚚 Грузовик0.89570.93100.9130203

Accuracy: 0.8790 • Macro F1: 0.8771 • Total: 2000 samples

Основные метрики

  • Точность (Accuracy): 0.8790
  • Потери (Loss): 0.3709
  • Macro F1-Score: 0.8771

8. Примеры классификации

Примеры предсказаний

9. Анализ и выводы

Примененные улучшения

  1. Оптимизация learning rates: Снижены до 1e-4/1e-5 вместо стандартных 1e-3
  2. Аугментация данных: Добавлены преобразования для увеличения разнообразия данных
  3. Специфический препроцессинг: Использован препроцессинг, оптимизированный для EfficientNet
  4. Увеличение объема данных: Использовано больше обучающих данных
  5. Чистое разделение: Строгое разделение на train/val/test выборки
  6. Early stopping: Применены callback'и для предотвращения переобучения

Анализ результатов

  • Модель достигла высокой точности 87.9% на тестовой выборке
  • Наибольшую точность модель показывает для классов "корабль" (F1=0.9231) и "автомобиль" (F1=0.9177)
  • Наименьшая точность наблюдается для класса "кошка" (F1=0.7893), что может быть связано с визуальным сходством с другими классами животных
  • Модель демонстрирует сбалансированную производительность across всех классов

Временные характеристики

  • Время обучения Feature Extraction: 1988.1 секунд
  • Время обучения Fine-Tuning: 2093.7 секунд
  • Общее количество параметров: 4,380,077

Выводы

Модель EfficientNet показала отличные результаты на наборе данных CIFAR-10 после применения тонкой настройки и оптимизации гиперпараметров. Примененные улучшения позволили достичь высокой точности классификации при сохранении сбалансированной производительности across всех классов. Модель успешно справляется с задачей классификации, демонстрируя эффективность трансферного обучения даже на датасетах с меньшим разрешением изображений