Какие слои я должен использовать для Keras?

Я строю пример проекта в Керасе. Проект состоит в том, чтобы определить разницу между кошками и собаками. Я нашел пример онлайн с моделью как таковой:

model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape=(3, 150, 150)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(64, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

Мой вопрос: как люди узнают, какие слои использовать? Существуют ли руководящие принципы или практические правила, когда использовать Conv2D против Conv1D против другого слоя?

1 ответ

Решение

Короче говоря - нет. Придумать хорошую архитектуру - это большая часть современных исследований глубокого обучения. Есть несколько правил, интуиция, но в основном - опыт или копирование существующих, которые, как сообщалось, работают.

Коротко говоря:

  • Свертки используются, когда у вас есть пространственная и / или временная структура в данных, таких как изображения, видео, звук и т. д.
  • Пулы имеют варианты использования, подобные сверточным, они все еще требуют пространственной и / или временной структуры (если только она не применяется ко всему каналу / измерению) и обеспечивают способ удаления "деталей" (обычно шума) и уменьшения размерности сигнала.
  • повторяющиеся, когда ваши данные имеют последовательный характер
  • полностью связанные необходимы, чтобы "форсировать" данное измерение (таким образом, часто используется как последний слой) или когда кто-то не знает какой-либо структуры, которая может быть использована (так как они в значительной степени являются наиболее общими)

Однако вопрос о том, как составлять, какие гиперпараметры использовать, сколько использовать, является огромным открытым вопросом исследования, и в самом начале лучший подход состоит в том, чтобы скопировать чужую архитектуру и получить некоторый опыт / интуицию, что работает, а что нет. данные, с которыми вы работаете.

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