Стековые и не стековые архитектуры в глубоком обучении

#machine-learning #keras #deep-learning #keras-layer #tf.keras

#машинное обучение #keras #глубокое обучение #keras-layer #tf.keras

Вопрос:

В Keras (или глубоком обучении в целом), в чем разница между архитектурой a stacking и a non-stacking и может ли кто-нибудь дать простую иллюстрацию non-stacking архитектуры?

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

Ответ №1:

Глубокие нейронные сети по определению представляют собой стеки нейронных сетей (обычно называемые просто слоями). Вы можете думать об этом как о серии операций; блок-схема. Например, в сетях обнаружения объектов для извлечения региональных объектов из изображений используются ряды слоев свертки (называемые пирамидами объектов). Однако, как и в блок-схеме, вы можете создавать ветви и перемещать данные по своему усмотрению. Рассмотрим следующие фрагменты кода:

Просто стек.

 input_layer = InputLayer(input_shape=(256,256,3))
x = Dense(666)(input_layer)
x = Dense(666)(x)
output_layer = Dense(1, activation='softmax')(x)
 

Кое-что более интересное.

 input_layer = Inputlayer(input_shape=(256,256,3))
x = Dense(666)(input_layer)

x_left = Dense(666)(x) # gets inputs from x
x_left = Dense(666)(x_left)

x_right = Dense(666)(x)
x_right = Dense(666)(x_right)

x = concatenate([x_left,x_right],axis=-1)

x = Dense(666)(x)
output_layer = Dense(1,activation='softmax')(x)
 

Это вообще отвечает на ваш вопрос?

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