- Вопрос или проблема
- Ответ или решение
- Почему сверточная нейронная сеть (CNN) с уменьшающимися размерами фильтров может работать лучше, чем "обычная" с увеличивающимися размерами?
- 1. Эффективное извлечение признаков
- 2. Понижение размерности и уменьшение переобучения
- 3. Концентрация на критических признаках
- 4. Роль пакетной нормализации
- 5. Непостоянство в теоретических ожиданиях
- Заключение
Вопрос или проблема
Я проводил десятки (или, вероятно, сотни) тестов, и лучший результат с меньшим количеством параметров (4 раза или меньше) был достигнут с архитектурой, использующей уменьшающий размер фильтров. Это свёрточная нейронная сеть (CNN) для классификации изображений по нескольким классам, набор данных состоял из более чем 100 000 изображений, и каждая архитектура тестировалась как минимум в течение 30 эпох, структура была следующей:
model = tf.keras.Sequential([
layers.Conv2D(256, 3, padding='same', activation=lisht),
layers.BatchNormalization(),
layers.MaxPooling2D(),
layers.Conv2D(128, 3, padding='same', activation=lisht),
layers.BatchNormalization(),
layers.MaxPooling2D(),
layers.Conv2D(64, 3, padding='same', activation=lisht),
layers.Flatten(),
layers.Dense(512, activation=lisht),
layers.BatchNormalization(),
layers.Dense(3)
])
Моё понимание обычной структуры с увеличением параметров было таковым: что более мелкие фильтры обучаются более общим деталям, а последующие с большим размером будут обучаться более сложным деталям. Поэтому я не могу понять, почему вышеупомянутая архитектура работает лучше, чем её противоположность (64, 128, 256, 512).
Изображения — это КТ-сканы разных типов пневмонии, где 2 класса очень похожи, а один сильно отличается от них. Таким образом, “работа” нейронной сети заключается в том, чтобы понять множество характеристик каждого класса (КТ имеют много слоев, и некоторые из них очень различаются даже у одного и того же пациента).
Точность, f1 и Каппа составляют примерно 96% для всех классов, используя валидационный набор данных с 20% данных.
Я думаю, вы пытаетесь связать определённую логику анализа с архитектурой модели, однако это не то, как работают CNN и большинство моделей глубокого обучения.
Логика уменьшения размера фильтра или размерности сети как общего правила заключается в “дистилляции” характеристик, которые различают классы. Другими словами, требуется представление этих характеристик, упакованное в вектор фиксированной длины.
Ответ или решение
Почему сверточная нейронная сеть (CNN) с уменьшающимися размерами фильтров может работать лучше, чем "обычная" с увеличивающимися размерами?
Сверточные нейронные сети (CNN) стали основным инструментом для решения задач классификации изображений благодаря своему уникальному подходу к извлечению признаков. В вашем опыте вы заметили, что архитектура с уменьшающимися размерами фильтров продемонстрировала лучшие результаты по сравнению с архитектурой, использующей увеличивающиеся размеры фильтров. Давайте проанализируем, почему это может происходить, и какие факторы играют ключевую роль в этом процессе.
1. Эффективное извлечение признаков
Архитектура, где размеры фильтров уменьшаются, позволяет модели эффективно извлекать как низкоуровневые, так и высокоуровневые признаки. На первых слоях нейронной сети, где используются большие фильтры (например, 256 фильтров), происходит захват глобальных характеристик изображения. Однако, с уменьшением размера фильтров в следующих слоях (128, 64 фильтра) сеть может сосредоточиться на более детализированных аспектах, что особенно эффективно для сложных изображений, таких как КТ-сканирования, где классы схожи, но имеют нюансы.
2. Понижение размерности и уменьшение переобучения
Уменьшающиеся размеры фильтров, как правило, ведут к уменьшению общего числа параметров в модели. Уменьшение количества параметров снижает вероятность переобучения, особенно на большом наборе данных, таком как ваш (более 100,000 изображений). При использовании меньшего числа параметров модель способна лучше обобщать знания на новых данных, что в конечном итоге приводит к повышению точности и прочих метрик, таких как F1 и Каппа, как вы наблюдали.
3. Концентрация на критических признаках
Для медицинских изображений, таких как КТ-сканы, важнейшими являются не только глобальные, но и локальные детали. Уменьшение размеров фильтров в более глубоких слоях CNN позволяет сосредоточиться на критических признаках, которые могут отличать схожие классы. Ваша задача состояла в том, чтобы распознать тонкости между двумя схожими классами пневмонии, и такая архитектура может более эффективно выявлять эти отличия благодаря вниманию к деталям.
4. Роль пакетной нормализации
Интеграция слоев пакетной нормализации в архитектуру также способствует улучшению обучения. Пакетная нормализация помогает поддерживать стабильное распределение активаций, что особенно полезно в глубоких нейронных сетях. Это позволяет вашему модели быстрее сойдутся, а также может повысить обобщающую способность.
5. Непостоянство в теоретических ожиданиях
Ваше предположение о том, что меньшие фильтры учат общим деталям, а большие — более сложным, может быть справедливо, но не всегда применимо. На практике, нейронные сети могут работать совершенно иначе, чем мы ожидаем на основе интуитивных предположений. Конкретная область применения и тип данных, с которым вы имеете дело, играют решающую роль в этом. В случае медицинских изображений, особое внимание должно быть уделено извлечению специфических особенностей, что делает архитектуру с уменьшающимися размерами фильтров более приемлемой.
Заключение
Ваш опыт показывает, что выбор архитектуры CNN действительно может сильно влиять на её производительность. Сеть с постепенно уменьшающимися размерами фильтров может лучше адаптироваться к специфическим требованиям задачи, особенно когда классы изображений имеют схожесть. Изучение особенностей данных и тестирование различных архитектур могут привести к заметным улучшениям в качественных характеристиках модели.