Se usa por varias razones, básicamente se usa para unir múltiples redes. Un buen ejemplo sería donde tiene dos tipos de entrada, por ejemplo, etiquetas y una imagen. Podría construir una red que, por ejemplo, tenga:
IMAGEN -> Conv -> Agrupación máxima -> Conv -> Agrupación máxima -> Denso
TAG -> Incrustación -> Capa densa
Para combinar estas redes en una predicción y entrenarlas juntas, podría fusionar estas capas densas antes de la clasificación final.
Las redes donde tiene múltiples entradas son el uso más 'obvio' de ellas, aquí hay una imagen que combina palabras con imágenes dentro de un RNN, la parte multimodal es donde se fusionan las dos entradas:
Otro ejemplo es la capa de inicio de Google, donde tiene diferentes convoluciones que se vuelven a agregar antes de pasar a la siguiente capa.
Para alimentar múltiples entradas a Keras, puede pasar una lista de matrices. En el ejemplo de palabra / imagen, tendría dos listas:
x_input_image = [image1, image2, image3]
x_input_word = ['Feline', 'Dog', 'TV']
y_output = [1, 0, 0]
Entonces puede caber de la siguiente manera:
model.fit(x=[x_input_image, x_input_word], y=y_output]
model.fit()
acepta X e y para el ajuste ymodel
en este caso puede ser un modelo "no fusionado" también. Al igual que otros tipos de modelos en Sklearn, por ejemplo.