В моем предыдущем сообщении я представил некоторые результаты разработанной мной методики тренировок. Я сравнил модели мобильных сетей (V1 и V2), обученные на CIFAR 10. Я буду называть его графиком обучения воображаемым.

Каков график тренировок «воображаемого»?

Многие из нас, возможно, заметили, что малыши играют в ролевые игры как часть взросления. В самом деле, их воображение могло доставить нам немало смеха. Моя племянница любит играть на кухне с пластиковой посудой. Каким-то образом она может использовать свое воображение, чтобы превратить (в своем уме) игрушечную пластиковую тарелку в настоящую тарелку с блинчиком и подать ее взрослым в рамках спектакля. И это при том, что моя племянница знает отличительные черты и тарелки, и блина. Во время ролевой игры моя племянница мысленно классифицировала то, чего нет, на то, что есть.

Так почему бы не применить тот же принцип при обучении нейронных сетей классификации изображений. Проще говоря, вместо того, чтобы постоянно сообщать сети, что изображение оленя всегда является `` оленем '', а изображение корабля всегда является `` кораблем '' (одна эпоха нормального обучения), почему бы периодически не сообщать сети, чтобы классифицируйте изображение оленя как «кошку» или изображение корабля как «грузовик» и наоборот.

Да, я согласен, что это довольно безумная идея, и у меня нет ни убедительных эмпирических доказательств, ни каких-либо сложных математических уравнений, чтобы доказать, что она работает. Однако обучение «воображаемым» действительно дало заметно лучшие результаты по сравнению с обычным обучением с точки зрения проверки и точности обучения для трех моделей (Mobilenet V1, Mobilenet V2 и настраиваемая CNN без исключения), на которых я его применил.

Он не дал лучшей точности для 4-й модели (настраиваемая CNN с выпадением), где точность обучения и проверки немного хуже, чем при обычном обучении (в пределах 1%). Обратите внимание, что результаты пользовательских моделей CNN приведены в последнем разделе, если кому-то интересно.

Судя по полученным результатам, у меня есть основания надеяться, что это не совсем погоня за дикими гусями.

Как я реализовал обучение "воображению"

Приведенный ниже рисунок, на котором я проиллюстрировал свое понимание того, как работает CNN, будет полезен для объяснения того, как я реализовал алгоритм. Обратите внимание на слой полносвязного (FC) в конце, который я обозначаю как классификационную головку. Он получает функции, извлеченные сверточными слоями, и я предполагаю, что слой FC может комбинировать функции в любом случае, когда он хочет классифицировать изображение как принадлежащее к определенному классу.
Во время учебного эпизода 'imag' я временно заменяю слой FC который был обучен на правильных классах (т. е. классифицировал изображение оленя как «олень») с недавно инициализированным слоем FC и обучил его воображаемым классам (т.е. классифицировал изображение оленя как «корабль»). После фиксированного количества эпох, тренируясь таким образом, я отбрасываю воображаемую голову, заменяю ее «нормальной» головой и тренируюсь для другого фиксированного количества эпох. Этот процесс повторяется. Обратите внимание, что как «воображаемые» эпохи, так и «нормальные» эпохи включаются в общее количество эпох.

Очевидно, что приведенное выше объяснение является упрощенной версией того, как я его реализовал. Я могу рассказать об этом подробнее, если читателям интересно. Обратите внимание, что обучение «воображаемому» можно легко реализовать с помощью функционального API Keras.

Подробные сведения об эксперименте с пользовательской моделью CNN:

Я повторил тот же эксперимент для пользовательской модели CNN, чтобы убедиться, что наблюдаемое поведение не является артефактом моделей мобильной сети. Параметры обучения (размер пакета, скорость обучения и т. Д.) Такие же, как и в предыдущем сообщении, за исключением количество эпох - 124. Архитектура пользовательской CNN приведена ниже:

Можно заметить, что пользовательская модель CNN имеет значительно меньшее количество параметров (197 K) по сравнению с моделями мобильной сети.

Профили обучения и проверки для пользовательской модели CNN

Как и раньше, здесь «нормальный» относится к стандартному расписанию тренировок, а «воображение» - к экспериментальному расписанию тренировок.

Представьте себе действительную точность тренировки при 124 эпохах: 0,8222
Нормальную точность обучения при 124 эпохах: 0,8379
Представьте действительную точность при 124 эпохах: 0,8202
Нормальную допустимую точность при 124 эпохах: 0,8219