machine learning - neural - No puedo entender cómo se calculan los filtros en una red de Conv.
convolutional neural network tensorflow (1)
He estado estudiando el aprendizaje automático durante 4 meses, y entiendo los conceptos detrás del MLP. El problema vino cuando comencé a leer acerca de las redes neuronales convolucionales. Déjame decirte lo que sé y luego preguntar con qué estoy teniendo problemas.
Las partes centrales de una CNN son:
- Capa convolucional: tiene una "n" cantidad de filtros que utiliza para generar mapas de características "n".
- RELU Layer: lo usas para normalizar la salida de la capa convolucional.
- Capa de submuestreo: utilizada para "generar" un nuevo mapa de características que representa conceptos más abstractos.
Repita las primeras 3 capas algunas veces y la última parte es un clasificador común, como un MLP.
Mis dudas son las siguientes:
- ¿Cómo creo los filtros usados en la capa convolucional? ¿Tengo que crear un filtro, entrenarlo, y luego ponerlo en la capa de Conv, o lo entreno con el algoritmo de backpropagation?
- Imagina que tengo una capa conv con 3 filtros, luego se mostrarán 3 mapas de características. Después de aplicar la capa RELU y Submuestreo, todavía tendré 3 mapas de características (los más pequeños). Al pasar de nuevo a través de la Capa de Conv, ¿cómo calculo la salida? ¿Tengo que aplicar el filtro en cada mapa de características por separado, o realizar algún tipo de operación sobre los 3 mapas de características y luego hacer la suma? No tengo idea de cómo calcular la salida de esta segunda capa de convección, y cuántos mapas de características arrojarán.
- ¿Cómo paso los datos de las capas Conv al MLP (para la clasificación en la última parte del NN)?
Si alguien sabe de una implementación simple de una CNN sin usar un marco, lo agradeceré. Creo que la mejor manera de aprender cómo funcionan las cosas es haciéndolo usted mismo. En otro momento, cuando ya sabes cómo funcionan las cosas, puedes usar frameworks, porque te ahorran mucho tiempo.
- Lo entrenas con un algoritmo de retropropagación, del mismo modo que entrenas a MLP.
- Usted aplica cada filtro por separado. Por ejemplo, si tiene 10 mapas de características en la primera capa y la forma del filtro de uno de los mapas de características de la segunda capa es 3 * 3, entonces aplica el filtro 3 * 3 a cada uno de los diez mapas de características en la primera capa, los pesos para cada mapa de características son diferentes, en este caso un filtro tendrá 3 * 3 * 10 pesos. Para entenderlo más fácil, tenga en cuenta que un píxel de una imagen que no es en escala de grises tiene tres valores: rojo, verde y azul, por lo que si pasa imágenes a una red neuronal convolucional, entonces en la capa de entrada ya tiene 3 características mapas (para RGB), por lo que un valor en la siguiente capa se conectará también los 3 mapas de características en la primera capa
- Debería aplanar los mapas de características convolucionales, por ejemplo, si tiene 10 mapas de características con un tamaño de 5 * 5, entonces tendrá una capa con 250 valores y luego nada diferente de MLP, conectará todas estas neuronas artificiales a todas las neuronas artificiales en la siguiente capa por pesos.
Aquí alguien ha implementado una red neuronal convolucional sin marcos.
También te recomendaría esas conferencias.