En el primer articulo separamos un poco los posibles comportamientos tendríamos. ¿Pero que hacen exactamente cada una de ellas? ¿Como podemos agruparlas?
Principalmente en una red nos encontraremos con las siguientes agrupaciones:
- Capas intermedias.
- Entrada de datos.
- Losses
- Metricas.
Veamos la siguiente red neuronal, además se han añadido color a cada capa para distinguirla fácilmente donde las capas intermedias son blancas, entrada de datos son verdes, losses son rojas y métricas son lilas.
\min_{W} \sum_{b} ||N_{3,a} - \vec{Y}_b)||^2
La figura anterior representa las conexiones que hay en el proceso de forward y como podemos ver aquí todas las capas tienen utilidad.
¿Pero que sucede en el backward? Solo tendrán utilidad las capas que deben corregir pesos (\partial W) o enviar información hacia atrás propagando así la corrección(\partial X).
En la figura anterior vemos el procedimiento de backward. Podemos ver que hay algunas capas que en esta etapa no tiene utilidad.
Los inputs no participarán ya que ni tienen pesos ni deben propagar hacia detrás.
Las métricas tampoco lo harán ya que aunque cuantifican un error estas son funciones no diferenciables. Por lo tanto únicamente son serán útiles en el forward para ver como progresa nuestra red para monitorizar (los que estáis familiarizados con el ML un claro ejemplo es el accuracy, precision, recall, f1-score).
¿Que sucede cuando el proceso de aprendizaje a terminado y usamos la red para predicción? Pues que también podremos omitir capas que únicamente nos son útiles en el aprendizaje.
- Las capas de entrada de datos que son targets (como Y) solo nos sirven en el aprendizaje para cuantificar el error.
- Las losses y métricas porque no necesitamos corregir error alguno y tampoco tenemos con qué contrastarlas.
Resumiendo:
Nodo | Forward | Forward (Predicción) | Backward | Función |
---|---|---|---|---|
Losses | Son el punto final. | No se usa en la predicción | Son el punto de inicio. | Calcula el error. |
Métricas | Son el punto final. | No se usan en la predicción. | No contribuyen en el calculo. | Calcula un error pero no es diferenciable y no participa en el aprendizaje. Es solo para ver como progresa nuestra red. |
Capas intermedias | Se usan en el proceso. | Se usan en el proceso. | Se usan en el proceso sino dependen exclusivamente de una métrica. | Transforman la información. |
Input | Son el punto de inicio. | Solo se usan aquellas que no son un «target». | No contribuyen en el calculo y son el punto final. | Entra la información. |
Las capas pueden funcionar de forma muy distinta dependiendo del problema que estemos tratando, la traducción realmente es que estamos configurando una función u otra.
Existen redes especificas para solucionar problemas de una naturaleza determinada.
- MLP: Problemas genéricos.
- CNN: Problemas que implican la búsqueda de un patrón en distintas partes (Ejemplo: Imágenes).
- RNN y LSTM: Secuencias o series (Ejemplo: series temporales, frases).
Como vamos paso a paso, en el próximo articulo empezaremos hablando e implementado todas las capas que encontramos en una red neuronal convencional, la más conocida como Multilayer Perceptron (MLP).