¿Qué hacen las capas completamente conectadas en las CNN?

19

Entiendo las capas convolucionales y de agrupación, pero no puedo ver la razón de una capa totalmente conectada en las CNN. ¿Por qué la capa anterior no está directamente conectada a la capa de salida?

jeff
fuente

Respuestas:

31

La salida de las capas convolucionales representa características de alto nivel en los datos. Si bien esa salida podría aplanarse y conectarse a la capa de salida, agregar una capa completamente conectada es una forma (generalmente) barata de aprender combinaciones no lineales de estas características.

Esencialmente, las capas convolucionales están proporcionando un espacio de características significativo, de baja dimensión y algo invariable, y la capa completamente conectada está aprendiendo una función (posiblemente no lineal) en ese espacio.

NOTA: Es trivial convertir de capas FC a capas Conv. La conversión de estas capas FC superiores a capas Conv puede ser útil como se describe en esta página.

jamesmf
fuente
Gracias por tu respuesta James. Entonces estamos aprendiendo los pesos entre las capas conectadas con propagación hacia atrás, ¿es correcto?
Jeff
Sí, el error se propaga a través de la capa totalmente conectada a las capas convolucionales y de agrupación.
jamesmf
Okay. Por lo tanto, el propósito de la capa fc puede considerarse como PCA no lineal, rectifica las características "buenas" y disminuye las otras mediante el aprendizaje del conjunto completo de pesos.
Jeff
1
Principalmente le permite una combinación no lineal de características. Todas las características pueden ser buenas (suponiendo que no tenga características "muertas"), pero las combinaciones de esas características podrían ser aún mejores.
jamesmf
@jamesmf: ¿Qué es una característica muerta? ¿Y de qué combinaciones de características estás hablando? ¿Qué quieres decir con una combinación no lineal? ¿Es obligatorio usar una capa totalmente conectada en un cnn? o puede ser sustituido sin ningún efecto adverso en la precisión? Muchas gracias por adelantado. Le agradecería que hiciera una intuición sobre las preguntas que hice.
Rika
4

Encontré útil esta respuesta de Anil-Sharma en Quora .

Podemos dividir toda la red (para clasificación) en dos partes:

  • Extracción de características : en los algoritmos de clasificación convencionales, como los SVM, solíamos extraer características de los datos para que la clasificación funcionara. Las capas convolucionales tienen el mismo propósito de extracción de características. Las CNN capturan una mejor representación de los datos y, por lo tanto, no necesitamos hacer ingeniería de características.

  • Clasificación : después de la extracción de características, debemos clasificar los datos en varias clases, esto se puede hacer usando una red neuronal completamente conectada (FC). En lugar de capas completamente conectadas, también podemos usar un clasificador convencional como SVM. Pero generalmente terminamos agregando capas FC para hacer que el modelo entrene de extremo a extremo.

Rocksyne
fuente