EfficientnetBit
Описание
В работе использовался датасет CIFAR-10.
Языки
- Text100%
Лабораторная работа №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')
- Режим обучения:
- Feature Extraction: Веса базовой модели заморожены
- Fine-Tuning: Разморожены верхние слои базовой модели
6. Гиперпараметры обучения
- Оптимизатор: Adam
- Функция потерь: Categorical Crossentropy
- Размер батча: 32
- Learning Rate:
- Feature Extraction: 0.0003
- Fine-Tuning: 0.00001
- Количество эпох: определялось с помощью Early Stopping
7. Результаты на тестовой выборке
Матрица ошибок

Классификационный отчет
| Класс | Precision | Recall | F1-Score | Support |
|---|---|---|---|---|
| ✈️ Самолет | 0.8827 | 0.8061 | 0.8427 | 196 |
| 🚗 Автомобиль | 0.9064 | 0.9293 | 0.9177 | 198 |
| 🐦 Птица | 0.8925 | 0.8513 | 0.8714 | 195 |
| 🐱 Кошка | 0.8409 | 0.7437 | 0.7893 | 199 |
| 🦌 Олень | 0.8537 | 0.8838 | 0.8685 | 198 |
| 🐶 Собака | 0.7970 | 0.8486 | 0.8220 | 185 |
| 🐸 Лягушка | 0.8978 | 0.9352 | 0.9161 | 216 |
| 🐴 Лошадь | 0.9067 | 0.9067 | 0.9067 | 193 |
| 🚢 Корабль | 0.9067 | 0.9401 | 0.9231 | 217 |
| 🚚 Грузовик | 0.8957 | 0.9310 | 0.9130 | 203 |
Accuracy: 0.8790 • Macro F1: 0.8771 • Total: 2000 samples
Основные метрики
- Точность (Accuracy): 0.8790
- Потери (Loss): 0.3709
- Macro F1-Score: 0.8771
8. Примеры классификации

9. Анализ и выводы
Примененные улучшения
- Оптимизация learning rates: Снижены до 1e-4/1e-5 вместо стандартных 1e-3
- Аугментация данных: Добавлены преобразования для увеличения разнообразия данных
- Специфический препроцессинг: Использован препроцессинг, оптимизированный для EfficientNet
- Увеличение объема данных: Использовано больше обучающих данных
- Чистое разделение: Строгое разделение на train/val/test выборки
- 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 всех классов. Модель успешно справляется с задачей классификации, демонстрируя эффективность трансферного обучения даже на датасетах с меньшим разрешением изображений