Estás leyendo la publicación: Comprender los conceptos básicos: hacia la IA
Publicado originalmente en Hacia la IA.
Explorando cuán poderosa es CNN: desde lo básico
Introducción
- Las redes neuronales convolucionales son un concepto de aprendizaje profundo que se creó específicamente para procesar imágenes. El aprendizaje automático es un concepto en el que una computadora aprende de experiencias pasadas. Deep Learning es una parte avanzada del aprendizaje automático. CNN está diseñado para encontrar patrones visuales.
- Cuando los humanos vemos imágenes, vemos objetos, colores, etc. Aprendemos estas cosas a medida que crecemos, pero las computadoras solo pueden entender 0 y 1, es decir, valores binarios. Entonces, ¿cómo verán las imágenes las computadoras?
- Cada imagen está formada por píxeles. La siguiente imagen es una buena representación de cómo una computadora lee las imágenes. Hay dos tipos de imágenes, escala de grises y color. La escala de grises (blanco y negro) se compone de una matriz de valores que van de 0 a 255 (blanco y negro). Las imágenes en color tienen 3 matrices, matriz roja, matriz verde y matriz azul (RGB). También cada una de esas matrices que van desde 0 a 255 (negro a los colores correspondientes).
Si una imagen en escala de grises tiene un tamaño de 1080×1080, el número total de valores es 1080x1080x1 mientras que una imagen en color tiene 1080x1080x3 (3 como en R+G+B).
Arquitectura
Una red neuronal convolucional tiene 3 tipos de capas: capa de convolución, capas de agrupación y capas totalmente conectadas.
Capas convolucionales
La capa convolucional es la capa donde se extraen características importantes de las imágenes de entrada. Esta capa utiliza un pequeño cuadrado para extraer características de la imagen de entrada. Este pequeño cuadrado se llama núcleo o filtro. Para explicar, hay una operación matemática en esta capa entre la imagen de entrada y un filtro para preservar y extraer características. Esto se llama Extracción de características en CNN.
Tamaño del mapa de características: n-f+1
n = tamaño de entrada
f = tamaño del filtro
Con diferentes filtros, se pueden realizar diferentes operaciones como detección de bordes, desenfoque, etc.
Para realizar una operación de convolución, un filtro debe especificarse con un tamaño determinado. El filtro se mueve a través de la matriz de la imagen de entrada y multiplica los valores con el filtro y la suma. El resultado es de menor tamaño que el tamaño de la matriz de la imagen de entrada.
En resumen, en CNN la capa convolucional es el paso o capa más importante. Esto se utiliza para extraer características importantes de la matriz de imagen de entrada. Una CNN puede constar de cualquier número de capas convolucionales.
Capa no lineal
Esta capa se agrega después de cada capa convolucional para introducir la no linealidad en la matriz. Se introduce la no linealidad para que la salida no se vea afectada por la entrada o la salida no sea proporcional a la entrada. Esta no linealidad se realiza mediante funciones de activación. Ese tema es para otro artículo.
¿Por qué necesitamos no linealidad en la red neuronal? podría ser una pregunta. Si los datos no tienen no linealidad, entonces la entrada influye directamente en la salida, y no importa cuántas capas usemos. El resultado será el mismo. Al aumentar el poder de la no linealidad, la red se crea para encontrar más patrones nuevos y únicos en los datos.
Las funciones de activación comúnmente utilizadas son RELU, Tanh, etc.
Relleno
Ahora has entendido lo importante que es la capa convolucional. Se utiliza un kernel o filtro para extraer características importantes. Mencioné que la capa convolucional se puede usar cualquier cantidad de veces, y cada vez que se reduce el tamaño del mapa de características. No necesitamos eso. Considere una matriz de entrada de 5×5 y un filtro de tamaño 3×3. El tamaño del mapa de características es 5–3+1 = 3. Si agregamos otra capa, entonces el tamaño es 1.
Para hacer un mapa de características del mismo tamaño que la matriz de entrada, usamos relleno. Hagamos ingeniería inversa. Necesitamos un mapa de características de tamaño 5. El tamaño del filtro es 3. De la fórmula anterior, n = 5+f-1 = 5+3–1 = 7. Necesitamos una matriz de entrada de tamaño 7 de una matriz de entrada de tamaño 5 . Agregamos relleno, es decir, una fila en la parte superior, inferior y una columna a la izquierda y a la derecha, dando una matriz de tamaño 7×7. ahora las matemáticas, n-f+1 = 7–3+1 = 5. Por lo tanto probado.
Fórmula de relleno = n+2p-f+1
p = relleno
Si p = 1, entonces una fila y una columna, por eso sumamos 2p, por lo que obtenemos 2 filas y 2 columnas.
Las filas y columnas añadidas anteriormente se rellenan con ceros, lo que se denomina relleno con ceros.
Así es como se aplica el relleno.
zancadas
Hablamos de filtros en la capa convolucional. Los pasos se definen como el número de píxeles que hay que mover en cualquier dirección para aplicar el filtro. Si el paso es [1,1]entonces el filtro se mueve 1 píxel a la vez en cualquier dirección, y si es [2,2] luego, el filtro se mueve 2 píxeles en cualquier dirección.
Este parámetro es principalmente útil cuando hay una imagen de entrada con alta resolución, luego más píxeles para filtrar. Cuanto mayor sea la zancada, menor será el mapa de características de convolución.
A [1,1] se parece a lo anterior.
A [2,2] la zancada se parece a la anterior.
Para resumir, Strides es un valor donde el núcleo o filtro se moverá en la matriz de entrada.
Capas de agrupación
Si deducir la imagen de entrada a 1/4 determina lo que representa la imagen completa, entonces no es bueno procesar la imagen completa. Aquí es donde entra en juego la agrupación.
Esta es la capa donde la gran matriz de características se reduce al retener las características. Esto se llama espaciado espacial. La agrupación también tiene un núcleo y avances. Hay diferentes tipos de espaciado espacial.
- Max Pooling: Aquí es donde se selecciona el elemento más grande en el filtro.
- Min Pooling: aquí es donde se selecciona el elemento mínimo en el filtro.
- Mean Pooling: Esta es la media de todos los elementos en el filtro.
- Agrupación promedio: Este es el promedio de todos los elementos en el filtro.
Esta capa de agrupación se utiliza principalmente para conectar la capa convolucional y la capa totalmente conectada. La razón principal por la que la capa de agrupación se usa después de la capa convolucional es porque reduce el tamaño del mapa de características para ahorrar recursos computacionales.
Capas totalmente conectadas
Entonces, hasta ahora, hemos recibido una matriz con características importantes. Esta matriz se aplana en un vector 1d y lo alimenta a una red neuronal completamente conectada. Se llama una capa completamente conectada porque todas y cada una de las neuronas están conectadas a cada neurona en la siguiente capa.
La capa de salida básicamente usa la función de activación softmax. Se utiliza la activación Softmax, por lo que la suma de todas las probabilidades de salida es 1. A partir de aquí, la red actúa como una red neuronal.
Conclusión:
CNN es un concepto de aprendizaje profundo para extraer características y patrones de las imágenes. CNN es una ANN básica pero tiene 2 capas más llamadas capa convolucional y capa de agrupación.
CNN se beneficia principalmente de la industria de la salud.
Referencias:
Aprendizaje profundo del MIT — Clase 3
Bueno, esto es lo que aprendí sobre CNN. Conceptos más avanzados para otro artículo. Encontrémonos en la próxima. Si disfrutas este contenido, ¿darle algunos aplausos? me dará un poco de motivación extra.
Puedes alcanzarme en:
LinkedIn: https://www.linkedin.com/in/pranay16/
GitHub: https://github.com/pranayrishith16
Una introducción a las CNN: comprender los conceptos básicos se publicó originalmente en Hacia la IA en Medium, donde las personas continúan la conversación destacando y respondiendo a esta historia.
Publicado a través de Hacia la IA