REDES NEURONALES CONVOLUCIONALES

 ¿CÓMO FUNCIONAN LAS REDES CONVOLUCIONALES?

 


Las redes neuronales convolucionales (CNN) son una topología perteneciente al área de aprendizaje profundo, son útiles en el procesamiento de imágenes, audios y vídeos. Las CNN utilizan una operación matemática llamada convolución para extraer características relevantes de los datos de entrada y aprender a reconocer patrones en ellos. Las aplicaciones en la vida real como reconocimiento facial, detección de objetos, segmentación y otras. 
 

CAPAS DE UNA RED CONVOLUCIONAL

Cada parte de una Red Neuronal Convolucional está entrenada para realizar una tarea, por lo que el entrenamiento de cada una de las partes se desarrolla de manera individual y se efectúa más rápido. Es en la imagen siguiente que identificamos cada una de las capas del modelo de GPU:

Redes Neuronales Convolucionales en el reconocimiento de imágenes

https://www.bravent.net/noticias/redes-neuronales-convolucionales-en-el-reconocimiento-de-imagenes/ 

La primera capa siempre es una capa convolucional aunque más de estas capas pueden ser añadidas al modelo según sea el caso. Esta capa toma en cuanta principalmente la función de activación y kernal. Otra capa que se añaden después de la capa convolucional, son las capas de agrupación que reducen las dimensiones de la entrada, mencionadas como capas de reducción de resolución; esta capa tiene el fin de reducir el sobreajuste y favorecer a una carga de procesamiento computacional más ligera.

Al final se agrega una capa totalmente conectada, en la cual, todos los nodos de una capa de salida están conectados a los nodos de la capa anterior, está capa en particular usa una función de activación softmax mientras que las capas agrupadas y convolucionales suelen usar la función ReLu. (Rocha, 2022)
 
¿qué es la operación convolución?

Este es un proceso en el cual se toma un grupo de píxeles de la imagen de entrada y se realiza un producto escalar con un kernel, matemáticamente, una convolución de dos funciones f y g se define como:

Se usa Python para la obtención de todos los procesos y resultados,también se usa la librería Keras como principal herramienta para el desarrollo de las redes neuronales convolucionales aplicadas.(IBM cloud)

BASE DE DATOS DE IMÁGENES DE PROTEÍNAS

Para realizar un ejercicio más sencillo, que sea claro y comprensible, se eligen dos imágenes de proteínas: Hemoglobina-0 y Mioglobina-1 y se solicita una ayuda a ChatGPT 3.5:

CONSULTA 😅:
Explica paso a paso cómo funcionan las redes neuronales convolucionales para imágenes de proteínas: hemoglobina-0 y mioglobina-1
 
 
Mioglobina-1

Hemoglobina-0
  
CHAT GPT  💬: 
as redes neuronales convolucionales (CNN) son especialmente efectivas para procesar datos de imágenes, como las imágenes de proteínas que mencionas (hemoglobina-0 y mioglobina-1). A continuación, te explicaré paso a paso cómo funcionan las CNN para procesar estas imágenes:
  1. Entrada de Datos: Las imágenes de proteínas se utilizan como entrada para la red neuronal convolucional. Cada imagen se representa como una matriz de píxeles, donde cada píxel tiene valores que representan la intensidad del color.

  2. Capa de Convolución:

    • La primera capa de la CNN es la capa de convolución. Esta capa aplica varios filtros a la imagen de entrada para detectar patrones como bordes, texturas o características más complejas. Cada filtro crea un mapa de características que resalta ciertos aspectos de la imagen.
    • Los parámetros de la convolución, como el tamaño del filtro y el número de filtros, se pueden ajustar para adaptarse al tipo de características que se desean extraer.
  3. Función de Activación:

    • Después de la convolución, se aplica una función de activación, comúnmente la función ReLU (Rectified Linear Unit). Esto introduce no linealidades en la red, permitiendo a la CNN aprender patrones más complejos.
  4. Capa de Pooling (Agrupación):

    • La capa de pooling reduce la dimensionalidad espacial de las representaciones de características. Comúnmente se utiliza la operación de max pooling, que selecciona el valor máximo de un grupo de píxeles, reduciendo así el tamaño de la imagen y manteniendo las características más importantes.
  5. Flattening:

    • Después de varias capas de convolución y agrupación, se realiza la operación de flattening para convertir la matriz tridimensional resultante en un vector unidimensional. Esto prepara los datos para ser utilizados en capas totalmente conectadas.
  6. Capas Totalmente Conectadas:

    • Estas capas toman el vector resultante de flattening y lo conectan a una red neuronal tradicional. Estas capas aprenden a asociar las características extraídas en las capas anteriores con las clases de salida (0 para hemoglobina y 1 para mioglobina).
    • Se pueden añadir capas de dropout para prevenir el sobreajuste al apagar aleatoriamente neuronas durante el entrenamiento.
  7. Capa de Salida:

    • La última capa tiene una sola neurona con una función de activación sigmoide (en el caso de clasificación binaria), que produce una salida en el rango de 0 a 1. Esto se interpreta como la probabilidad de que la imagen pertenezca a la clase 1 (mioglobina).
  8. Entrenamiento:

    • La red se entrena utilizando un conjunto de datos etiquetado mediante el algoritmo de retropropagación. Durante el entrenamiento, los pesos de la red se ajustan para minimizar la función de pérdida, que mide la diferencia entre las predicciones y las etiquetas reales.
  9. Evaluación y Predicción:

    • Después del entrenamiento, la red se evalúa en un conjunto de datos de prueba. La precisión y otras métricas se utilizan para evaluar el rendimiento de la red. Además, la red se puede utilizar para realizar predicciones en nuevas imágenes.

    Aquí hay un ejemplo de código simple en Python para ilustrar la implementación de la retropropagación en una red neuronal con Keras:

    python
    from keras.models import Sequential
    from keras.layers import Dense
    from keras.optimizers import SGD
    
    # Crear un modelo secuencial
    model = Sequential()
    model.add(Dense(units=64, activation='relu', input_dim=100))  # Capa de entrada
    model.add(Dense(units=1, activation='sigmoid'))  # Capa de salida
    
    # Configurar el modelo para el entrenamiento
    model.compile(optimizer=SGD(lr=0.01), loss='binary_crossentropy', metrics=['accuracy'])
    
    # Entrenar el modelo con datos de ejemplo
    x_train = [...]  # Datos de entrada
    y_train = [...]  # Etiquetas
    model.fit(x_train, y_train, epochs=10, batch_size=32)
     
    Aplicar cada etapa y aprender sobre redes neuronales convolucionales, implica buscar
    información de expertos en este tema, realizar lecturas continuas de investigadores
    relacionados al objetivo de aprender la aplicación de los mismos, no es tarea sencilla
    para personas que estamos iniciando con la comprensión básica de estos temas. sigamos con
    interés de aprender, para lograr las aplicaciones prácticas en el desarrollo profesional, para
    difundir nuestras experiencias con profesionales innovadores en el tema.

     BIBLIOGRAFÍA: 
    
    Rocha, X. (30 de Noviembre de 2022). Medium. Obtenido de Clasificación de imágenes con
    redes neuronales convolucionales: https://medium.com/@a01706707/clasificaci%C3%B3n-de-im%C3%A1genes-con-redes-profundas-a6a980b9cea5
     IBM cloud. (s.f.). IBM cloud. Obtenido de ¿Qué son las redes neuronales convolucionales? :
    https://www.ibm.com/es-es/topics/convolutional-neural-networks
     

     

 
 

 





Comentarios

Entradas populares de este blog

PERCEPTRÓN MULTICAPA

REFLEXIONES SOBRE REDES NEURONALES