¿Sabes qué es y para que sirve la convolucion de señales en Deep learning?
Saber qué es la convolución una vez te enfrentas al desarrollo de análisis dentro del Deep Learning es de suma importancia, puesto que esta es la base de la que parte una red neuronal convolucional o diversas de ellas. Por ello, en este post, te explicamos qué es la convolución.
¿Qué es la convolución?
Estrictamente, lo que es la convolución se utiliza, sobre todo, en el tratamiento de señal y se trata de una operación matemática que permite combinar dos señales. En el tratamiento digital de la señal, la convolcion se emplea para conocer qué le va a pasar a una señal después de «pasar» por un determinado dispositivo.
Por ejemplo, para saber cómo cambia nuestra voz tras haber pasado por el micrófono de nuestro móvil. Así, podríamos calcular la convolución de nuestra voz con la respuesta al impulso del micrófono. Si sientes curiosidad, aquí tenéis un muy buen recurso para verlo mejor.
Fuera de lo estrictamente técnico, las redes neuronales convolucionales se han hecho famosas gracias a su capacidad para detectar patrones que después clasifican. Pues bien, esos detectores de patrones son las convoluciones.
Vamos a ver cómo entiende un ordenador una imagen:
Como puedes ver, una imagen en color se representa como una matriz de 3 dimensiones: Ancho x Alto x Canales. Existen varias formas de representar las imágenes, pero la más común es usando el espacio de colores RGB. Esto quiere decir que un ordenador, al final, ve 3 matrices de Ancho x Alto, donde la primera le indica las cantidades de rojo que tiene la imagen, la segunda, de verde, y la tercera, de azul.
Si la imagen fuese en escala de grises, el ordenador la vería como una sola matriz bidimensional de Ancho x Alto.
Por último, los valores que pueden tomar los elementos de la matriz dependen del tipo de variable utilizada. Las más comunes son:
- Si usamos enteros de 8 bits: pueden ir de 0 a 255.
- Si usamos floats: de 0 a 1.
Ejemplo de convolución
Para entender mejor que es la convolución, te ponemos un ejemplo. Sabiendo que la imagen es una matriz, lo que es una convolución y lo que hace es definir un filtro o kernel por el que va a multiplicar a la matriz de la imagen. Fíjate en la siguiente imagen:
Se define un kernel, de 3×3 píxeles y se multiplica a la input_image. ¿Qué es lo que pasa? Que el kernel es mucho más pequeño que la imagen, por lo que, para poder multiplicar toda la imagen, primero situamos el kernel sobre los primeros 3×3 píxeles y, después, lo movemos uno hacia la derecha, luego otro, luego otro… De esta forma, vamos calculando la suma de la multiplicación de cada elemento del kernel por cada píxel correspondiente de la imagen. El resultado de esta operación se almacena en la imagen de salida, como puedes observar.
Aquí podrás verlo de manera más clara:
Y ahora con un ejemplo animado para que veas mejor el proceso:
En este post, te hemos explicado qué es la convolución para que comprendas cómo funcionan las redes neuronales convolucionales en el análisis del Deep Learning para el manejo de los macrodatos. Sin embargo, este es tan solo un primer acercamiento al respecto.
Por esta razón, desde KeepCoding te aconsejamos echarle un vistazo al Bootcamp Full Stack Big Data, Inteligencia Artificial & Machine Learning si lo que deseas es continuar aprendiendo y formarte como un data scientist profesional. Por medio de 11 módulos y de la mano de grandes expertos en el mundo Big Data, podrás instruirte en los sistemas, lenguajes y programas más importantes para el manejo de los macrodatos. ¡No esperes más para inscribirte!