Я пытаюсь построить глубокую нейронную сеть в кератах, где каждый скрытый слой (и входные данные) конкатенируются перед выходным слоем.
Я сделал что-то подобное:
input = Input(shape=(n_features,))
hidden_1 = Dense(100)(input)
hidden_2 = Dense(100)(hidden_1)
hidden_3 = Dense(100)(hidden_2)
layers = [input, hidden_1, hidden_2, hidden_3]
net = Concatenate()(layers)
net = Dense(n_classes, activation='softmax')(net)
model = Model(inputs=inp, outputs=net)
Графически результат должен быть примерно таким
этот , где черные стрелки определяют соединения.
Кроме того, я хотел бы понять, что происходит, когда применяется обратное распространение. Сначала он обновляет весовые коэффициенты между уровнем сцепления и выходными данными, но затем? Какой правильный рабочий процесс?