Я извлек набор данных о собаках и кошках из 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 в качестве окончательной модели. Для дальнейших проблем переобучения можно использовать регуляризацию отсева или увеличение изображения.

Репозиторий на гитхабе:

https://github.com/rilwanatanda/Dogs-vs-Cats