Если это всего лишь одноразовый случай, вы можете просто переобучить нейронную сеть. Если вам часто приходится добавлять новые классы, то это плохая идея. То, что вы хотите сделать в таких случаях, называется извлечением изображений на основе содержимого (CBIR), или просто извлечением изображений или визуальным поиском. Я объясню оба случая в моем ответе ниже.
Одноразовый кейс
Если это случится один раз - вы забыли 11-й класс или ваш клиент передумал - но это больше не повторится , тогда вы можете просто 11-й выходной узел перейти на последний уровень. Инициализируйте веса этому узлу случайным образом, но используйте веса, которые у вас уже есть, для других выходных данных. Тогда тренируйся как обычно. Может быть полезно исправить некоторые веса, т.е. не тренировать их.
Крайним случаем может быть только тренировка новых весов и оставление всех остальных исправленными. Но я не уверен, что это сработает так хорошо - возможно, стоит попробовать.
Контентный поиск изображений
Рассмотрим следующий пример: вы работаете в магазине компакт-дисков, который хочет, чтобы их клиенты могли сфотографировать обложку альбома, а приложение показывает им отсканированный компакт-диск в их интернет-магазине. В этом случае вам придется переподготовку сети для каждого нового компакт-диска, который они имеют в магазине. Это может быть 5 новых компакт-дисков каждый день, поэтому повторное обучение сети не подходит.
Решение состоит в том, чтобы обучить сеть, которая отображает изображение в пространство признаков. Каждое изображение будет представлено дескриптором, который является, например, 256-мерным вектором. Вы можете «классифицировать» изображение, рассчитав этот дескриптор и сравнив его с вашей базой данных дескрипторов (т.е. дескрипторов всех компакт-дисков, которые есть в вашем магазине). Ближайший дескриптор в базе данных побеждает.
Как вы обучаете нейронную сеть изучать такой дескрипторный вектор? Это активная область исследований. Вы можете найти недавнюю работу, выполнив поиск по таким ключевым словам, как «поиск изображений» или «обучение метрикам».
Прямо сейчас люди обычно берут предварительно обученную сеть, например VGG-16, отсекают слои FC и используют конечную сверточную в качестве вектора дескриптора. Вы можете дополнительно обучить эту сеть, например, используя сиамскую сеть с потерей триплета.