Один класс классификации для изображений
Скажем, у вас есть тысячи изображений кошек, например: ( https://web.archive.org/web/20150703060412/http://137.189.35.203/WebUI/CatDatabase/catData.html). Вы хотите построить систему, которая может смотреть на изображение и говорить - изображение это изображение кошки или нет.
What are the (if any) techniques to build such a model with a descent accuracy?
PS1: Ключевая задача в этой проблеме - увидеть, что "то, что не кот" - это огромная вселенная - каждый образ в этом мире, который не является котом, может претендовать на это. Формулировать эту проблему как бинарную классификацию нехорошо, поскольку почти невозможно собрать "всеобъемлющий" набор данных "что не является кошкой". (если вы сделаете это, ваша модель будет так же хороша, как и ваш набор данных "что не кот")
PS2: такая настройка называется "Классификация одного класса"
1 ответ
Один из подходов, который я могу придумать, - это использовать One-Class SVM, который по сути делает обнаружение выбросов.
На практике вы можете сначала применить предварительно обученный CNN для извлечения значимого компактного представления изображений, а затем использовать эти векторы в качестве входных данных для SVM с одним классом. Все не кошачьи будут выделяться!