¿Cuál es el papel de una capa totalmente conectada en una red neuronal profunda?

Una red neuronal profunda típica (DNN) como una red neuronal convolucional (convNet) normalmente usa una capa completamente conectada en el extremo de salida.

¿Por qué se hace eso?

El convNet se puede ver como hecho de dos etapas.

clasificador de extracción de características [math] \ rightarrow [/ math]

La etapa de extracción de características consiste en alternar capas totalmente convolucionales (conv) entrenables que aprenden características de alto nivel, mientras que la parte del clasificador, que es la capa completamente conectada, se ocupa de diferentes combinaciones de esas características para tomar las decisiones finales.

Sin embargo, cada capa totalmente conectada se puede convertir en una capa convolucional.

¿Cómo?

Esto se debe a que la capa completamente conectada se puede ver como un clasificador deslizante que se desliza sobre el mapa de entidades conv. Es solo que en la mayoría de los casos, la salida es normalmente [matemática] 1 × 1 [/ matemática] tamaño espacial. Por lo tanto, cada red neuronal convolucional puede verse como completamente convolucional.

Dada una imagen de entrada de tamaño [matemática] m × n [/ matemática], se puede ver que la convNet con una capa completamente conectada al final emite una salida de tamaño [matemática] 1 × 1 [/ matemática]. ¿Cuál será el resultado si le damos una imagen [matemática] km × kn [/ matemática]? Podemos convertir las últimas capas completamente conectadas en capas convolucionales deslizando la red completamente conectada sobre la capa conv final para obtener una salida de tamaño [matemático] k × k [/ matemático]. Por lo tanto, al convertir cada capa totalmente conectada como una capa más, podemos manejar imágenes de entrada de tamaño variable.

Por eso es mucho más útil visualizar cada capa como convolucional. La red totalmente conectada puede verse como otro núcleo convolucional complicado.

Espero que esto ayude.

Me gustaría responder a esto con el contexto de un problema de clasificación. Podemos dividir toda la red (para clasificación) en dos partes:

  1. 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. He reflejado qué tipo de características pueden aprender las CNN en otra publicación aquí [1].
  2. Clasificación:
    Después de la extracción de características, necesitamos 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.

Espero que ayude.

Notas al pie

[1] La respuesta de Anil Sharma a ¿Cómo el hecho de tener más capas ocultas en una red neuronal ayuda a formular hipótesis más complejas?

Puede consultar mi respuesta aquí. Respuesta de Duc Anh Nguyen a ¿Cuáles son las ventajas y desventajas de las capas completamente conectadas en una red neuronal convolucional?

More Interesting

Si quiero comenzar con el aprendizaje profundo, ¿debería comprar una GPU de gama baja o aprovechar una solución en la nube? ¿Cuál es más barato / mejor?

¿Cuál es la forma correcta de encapsular la creación y capacitación del modelo Tensorflow en una clase?

Diseño de vectores de características para algoritmos de aprendizaje automático. ¿Debo poner características de diferentes dominios en el mismo vector?

¿Existe una diferencia práctica y significativa entre los términos 'función objetivo' y 'función de pérdida' en el aprendizaje profundo?

¿Cuál es el estado de la técnica de reconocimiento de escritura a mano?

He asignado mis pesos (w) a un múltiple multinomial (o k-simplex), dividiendo cada componente de w por la suma de todos los componentes. ¿Cómo realizo la regularización (equivalente a l1 o l2) en el nuevo espacio multinomial múltiple (k-simplex)?

¿Cómo soluciona un bosque aleatorio los problemas de regresión (no normalidad, heterocedasticidad, multicolinealidad, valores atípicos, valores faltantes y variables categóricas)?

Cómo construir un sistema de recomendación de itinerario basado en las preferencias del usuario

Conciencia del contexto: ¿Qué es el descubrimiento de noticias anticipatorio?

¿Se mejorará la mayor ganancia en el reconocimiento de objetos en los algoritmos de representación y aprendizaje, en lugar de modelos simples y datos más grandes?

¿Es el número de nodos en una capa oculta más que la capa de entrada? ¿Es esto un problema? ¿Qué se puede aprender en tales redes neuronales?

¿Qué algoritmo sería bueno para asignar una probabilidad a la coincidencia de dos nombres (John Doe = Mr. Jonathan M Doe II)?

¿Hay alguna universidad en la India que ofrezca cursos a corto plazo sobre aprendizaje automático / ciencia de datos?

¿Cómo podemos estimar múltiples parámetros de un clasificador?

¿Qué tan buenas son mis posibilidades de conseguir un trabajo de científico de datos con un doctorado en el campo de la visión por computadora?