Я извлек набор данных о собаках и кошках из Kaggle с двумя zip-файлами: «train.zip» и «test1.zip».
«train.zip» относится к обучающим данным, которые содержат изображения собак/кошек, идентификаторы изображений и метки — на изображении изображена собака или кошка. Например, изображение кошки в обучающих данных может иметь имя «cat.1024.jpg», как показано ниже.
«test1.zip» относится к данным тестирования, которые содержат изображения собак/кошек, идентификаторы изображений, но не ярлыки, и используется для тестирования моделей и отправки на вызов Kaggle. Например, изображение кошки в тестовом наборе данных может иметь имя «1024.jpg», как показано ниже.
Сбор данных
Вот несколько случайных фотографий собак из набора данных собаки против кошек:
А вот несколько случайных фотографий кошек из набора данных dogs-vs-cat:
В коде собаки закодированы как 1, а кошки — как 0. Вот пример фрейма данных:
Все записи во фрейме данных не являются нулевыми, поэтому нет необходимости в дальнейшей очистке нулевых данных.
Из 25 000 записей данных в обучающем наборе данных у нас есть 125 000 кошек и 125 000 собак, как показано на рисунке ниже.
Таким образом, сравнивая производительность модели 1 с регуляризацией отсева и без нее, мы можем сказать, что общая точность не сильно улучшается, но переобучение уменьшается или задерживается.
Обсуждение
Для трех моделей с разным количеством слоев свертки (комбинация слоев Conv2D и MaxPool2D) точность моделей следующая:
- Модель 1 имеет точность 0,5369 (один слой свертки).
- Модель 2 с точностью 0,7189 (два сверточных слоя).
- Модель 3 имеет точность 0,7076 (три сверточных слоя).
- Модель 1 с регуляризацией отсева имеет точность 0,5164 (один слой свертки).
Из приведенных выше результатов мы можем сказать, что точность увеличивается между одним и двумя слоями свертки, но не точность между двумя и тремя слоями свертки. Таким образом, нет общей закономерности между количеством слоев и точностью модели.
Кроме того, добавление регуляризации отсева в модель 1 не сильно увеличивает точность. Однако очевидное поведение переобучения после эпохи 3 для модели 1 было в значительной степени уменьшено или отсрочено. Для дальнейшего исследования и оптимизации можно рассмотреть более высокую скорость отсева после слоя свертки.
Чтобы сделать модель наиболее точной, я выбираю модель 3 в качестве окончательной модели. Для дальнейших проблем переобучения можно использовать регуляризацию отсева или увеличение изображения.