Заметки о Deep Learning. Влияние шума на качество функционирования свёрточных нейронных сетей. Часть 3. | Мнение специалиста от 12 мая 2016 года | Конструктивная кибернетика

Заметки о Deep Learning. Влияние шума на качество функционирования свёрточных нейронных сетей. Часть 3.


Итак, пытаемся улучшить классификатор #V1, который был получен в рамках экспериментов, изложенных в прошлой заметке. Исходная постановка задачи и мотивация приведены в 1-й части серии.

При работе со свёрточными сетями часто применяется известный подход: из изображения подаваемого на вход сети обязательно следует вычитать кадр, формируемый как среднее по выборке данных. Давайте посмотрим, как это правило повлияет на качество классификации в нашем случае.

Кадр, полученный усреднением выборок применяемых для обучения и тестирования свёрточной нейронной сети #V1, приведён на рисунке:

Усреднённое по обучающей и тестовой выборкам изображение.

Как видно из рисунка, средний кадр имеет весьма выраженный и достаточно замысловатый пространственный паттерн. Его изучение, в привязке к геометрии изображений исходных классов (см. 1-ю часть серии), достаточно увлекательное упражнение, полезное для понимания сути самого подхода – центрирования выборок, тем более что этот подход вполне себе имеет теоретическое обоснование.

Итак, после центрирования выборок, была обучена модель #V2, структура которой и режим обучения полностью соответствовали таковым для сети #V1 (см. заметки: 1 и 2). Результаты обучения приведены на рисунке (красный – модель #V1, синий – модель #V2):

Зависимость интегральных показателей качества функционирования сети от уровня шума и номера модели.

Как видно из рисунка попиксельное центрирование входных данных не изменило параметр Accuracy, но положительно повлияло на «уверенность» модели #V2 при уровнях шумов в районе 0.7 PER.

Таким образом, в нашем случае принцип «вычти средний кадр» конечно сработал, но далеко не так как ожидалось (напомним, что после синтеза модели #V1 мы ведём борьбу за качество классификатора в области 0.4–0.6 PER). Тем не менее, следует отметить: данный принцип – не догма, и тем более не прямое требование теоремы, потому не стоит его применять по умолчанию в своих задачах, его эффективность необходимо всегда тестировать. И что самое интересное, подобный совет справедлив для большинства «фишек» имеющих отношение к нейронным сетям в частности, и глубокому обучению в общем.

В рамках решаемой задачи возникает ещё один закономерный вопрос: а насколько полученные характеристики качества классификатора (см. графики на предыдущем рисунке), специфичны именно для свёрточной сети (см. архитектуру сети 39_10_cnn_1, в первой заметке)? С целью ответа на данный вопрос была протестирована исключительно полносвязная сеть следующего формата (присвоим ей идентификатор 39_10_mlp_1):

Структура свёрточной нейронной сети, формат 39_10_cnn_1.

Из сравнения архитектур 39_10_cnn_1 и 39_10_mlp_1 видно, что они различаются только параметрами первого скрытого слоя, причём его размер у полносвязной сети – 256 нейронов. Почему именно 256? Это сделано намеренно, чтобы сложности двух сетей были сопоставимы. Имеется в виду количество параметров (веса и смещения), которые оптимизируются в ходе обучения. Так вот, у сети 39_10_cnn_1 – 187 304, а у сети 39_10_mlp_1 – 181 898 параметров. Здесь следует отметить, что в Deep Learning, помимо прочих, есть одно негласное правило: «если хочешь понять что произошло, всегда меняй только один параметр». Естественно, у этого правила, как и у любого другого, есть исключения.

Так вот, в рамках нашей задачи, между сетями 39_10_cnn_1 и 39_10_mlp_1 никакой заметной (статистически значимой) разницы обнаружено не было. Более того, они количественно схожим образом (см. рисунок выше) ведут себя даже в ситуациях включения/отключения попиксельного центрирования входных данных. Из этого конечно ни в коем случае нельзя делать вывод об эквивалентности полносвязных и свёрточных сетей, а получившийся результат возможно корректно распространять только на данную задачу, и более того, только на случай замены первого скрытого слоя. Ибо, как будет показано в одной из следующих серий цикла «Заметки о Deep Learning», есть задачи со схожей постановкой, но в них между полносвязными и свёрточными сетями обнаруживается колоссальная разница.

В общем, промежуточный итог таков. Мы получили улучшенную модель #V2, проверили также полносвязную архитектуру, но главную задачу: обеспечить качество классификатора в области 0.4–0.6 PER – не решили. Значит необходимо «копать» дальше.

Продолжение: Часть 4.

12 мая 2016 года.

Андрей Макаренко,
группа «Конструктивная Кибернетика».

Обсуждение: contact@rdcn.ru

Ключевые слова: Глубокое машинное обучение, свёрточные сети, шумы, качество классификации.