В чем разница между разными размерами ядра (1x1, 3x3, 5x5) в сверточной нейронной сети?

Я работаю над cnn для классификации изображений, я хочу понять разницу между ядром размером 1x1, 3x3, 5x5 в конверсионном слое cnn. Влияние каждого ядра, использование, преимущества и недостатки. Когда использовать какой размер ядра. Зависит ли размер ядра от типа данных или размера данных.

Отметьте ответы как принятые, если вы удовлетворены ответом!

Akash Basudevan 27.05.2019 11:45
Оптимизация производительности модели: Руководство по настройке гиперпараметров в Python с Keras
Оптимизация производительности модели: Руководство по настройке гиперпараметров в Python с Keras
Настройка гиперпараметров - это процесс выбора наилучшего набора гиперпараметров для модели машинного обучения с целью оптимизации ее...
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Udacity Nanodegree Capstone Project: Классификатор пород собак
Udacity Nanodegree Capstone Project: Классификатор пород собак
Вы можете ознакомиться со скриптами проекта и данными на github .
Определение пород собак с помощью конволюционных нейронных сетей (CNN)
Определение пород собак с помощью конволюционных нейронных сетей (CNN)
В рамках финального проекта Udacity Data Scietist Nanodegree я разработал алгоритм с использованием конволюционных нейронных сетей (CNN) для...
Почему Python - идеальный выбор для проекта AI и ML
Почему Python - идеальный выбор для проекта AI и ML
Блог, которым поделился Harikrishna Kundariya в нашем сообществе Developer Nation Community.
5
1
1 661
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Давайте разделим размеры ядра на 2 части маленькую и большую, маленькую 1х1, 3х3 и большую 5х5.

Теперь различные сравнения между двумя типами ядер могут быть следующими:

  • Рецептивное поле : маленькое ядро ​​будет иметь меньшее восприимчивое поле, что означает, что оно будет смотреть на очень небольшое количество пикселей одновременно, тогда как большое ядро ​​будет смотреть на большее поле зрения. Это, в свою очередь, будет означать, что функции, извлеченные небольшим ядром, будут очень локальными, тогда как функции, извлеченные из большого ядра, будут общими и разбросанными по всему изображению.
  • Объем извлеченной информации: Небольшие ядра будут извлекать небольшие сложные функции, тогда как большое ядро ​​будет извлекать более простые функции. Количество функций, извлекаемых большими ядрами, будет значительно меньше, чем у маленьких ядер.
  • Что касается сети :
    • Маленькие ядра приведут к медленному уменьшению размеров изображения, делая сеть глубокой, тогда как большие ядра действительно быстро уменьшат размер изображения. Распределение веса лучше для маленьких ядер, чем для больших. Например: количество весов в двух ядрах 3x3 = 3x3 + 3x3 = 18, тогда как количество весов в 5x5 будет равно 25.
  • Память : поскольку ядра меньшего размера, как правило, делают сеть глубже, для этого потребуется больше памяти, тогда как большая сеть имеет тенденцию делать сеть меньше, поэтому требуется меньше памяти.

Таким образом, ядро ​​3x3 является популярным выбором среди ядер 1x1, 3x3 и 5x5 как для уменьшения размеров изображений, так и для захвата информации о соседстве. Но это может быть применимо не ко всем наборам данных, для разных наборов данных вам придется поэкспериментировать с разными размерами ядра и посмотреть, какой из них лучше всего подходит для вас. Но да, чтобы получить представление, вы принимаете во внимание тот факт, что функции, которые вы хотите запечатлеть на своем изображении, сложны.

Заметки, которые могут быть полезны :
- Свертки 1x1 важны для уменьшения размерности изображений. Вы можете прочитать об этом здесь: https://iamaaditya.github.io/2016/03/one-by-one-convolution/
- Если вы используете ядро ​​размером с изображение (большое ядро), оно будет работать так же, как плотный/полностью связанный слой.

Другие вопросы по теме