Disecando la neuro anatomía de las redes neurales artificiales

Autores: Liliana Mosquera, Enfermera Esp. MSc TIC. Miembro Fundador AIpocrates & Andres Rico, MD Esp. Medicina Interna. CEO AIpocrates

Una red neuronal artificial es un modelo computacional inspirado en el funcionamiento del cerebro humano y está compuesta por una serie de unidades interconectadas llamadas «neuronas artificiales» o «nodos», organizadas en capas, al igual que el cerebro, y a las conexiones en las redes neuronal se les llama «pesos».

Fig1. Código de una red neural y representación gráfica de una red neural
Tomado de: https://www.xataka.com/robotica-e-ia/codex-openai-promete-traducir-lenguaje-natural-codigo-programacion-gracias-a-inteligencia-artificial y https://inteligencia-artificial.dev/tipos-redes-neuronales/

La idea principal en una red neuronal artificial que el sistema «aprenda» a partir de datos de entrada y genere resultados precisos o predicciones, esto se logra a través de los ajustes automáticos de los pesos o conexiones entre neuronas de la misma o diferentes capas según los datos a los que se exponga. Este proceso se  llama «entrenamiento».

El entrenamiento consiste en presentan a la red neuronal una conjunto de datos de entrada junto con sus correspondientes resultados deseados y la red neuronal para minimizar la diferencia entre los resultados que genera y los resultados deseados ajusta automáticamente los pesos de las conexiones internas. Este proceso se basa en algoritmos de optimización matemática.

Figura 2. Tomado de: https://nodd3r.com/blog/deep-learning-y-redes-neuronales-artificiales
Figura 3. Tomada https://vitalflux.com/feed-forward-neural-network-python-example/

Una vez que la red neuronal ha sido entrenada, su modelo validado de manera interna y externa, se puede realizar la prueba y si su “performance” es satisfactorio se puede iniciar el proceso de implementación, para hacer predicciones o clasificar nuevos datos de entrada que no se hayan visto antes.

Esto es especialmente útil en el campo de la medicina, donde se pueden utilizar redes neuronales para analizar imágenes médicas, construir modelos de soporte al razonamiento clínico para diagnosticar enfermedades o predecir resultados de tratamientos.

Al ser capaces de procesar grandes cantidades de datos y encontrar patrones complejos en ellos, inclusive relaciones ocultas a los métodos estadísticos tradicionales, las redes neuronales tienen una amplia gama de aplicaciones en medicina. Algunas de las aplicaciones más relevantes son:

Es importante destacar que el diseño, construcción, implementación y uso de redes neuronales en medicina requiere la colaboración constructiva y exponencial entre expertos en informática y profesionales médicos.

A pesar que la capacidad de aprendizaje de estos modelos de inteligencia artificial tipo aprendizaje profundo supera las capacidades de la inteligencia humana, la interpretación de los  resultados generados, independiente del nivel de automatización y autonomía, la toma de decisiones recae en los médicos y el equipo sanitario multidisciplinario, siempre dentro de lo fundamental, las consideraciones éticas y los principios de seguridad del paciente en todas las aplicaciones médicas de esta tecnología.

No hay una clasificación única y óptima para todas las redes neuronales artificiales, ya que la elección de la arquitectura, la vía de propagación y otras consideraciones depende del problema específico que se esté abordando, los datos disponibles y otros factores relevantes. Algunos aspectos clave que se deben considerar al seleccionar una red neuronal:

1.         Arquitectura: La elección de la arquitectura es fundamental y depende del tipo de datos y la tarea que se desea realizar. Por ejemplo, las redes neuronales convolucionales son altamente efectivas para el procesamiento de imágenes, mientras que las redes recurrentes son adecuadas para datos secuenciales como el procesamiento del lenguaje natural. Es importante entender las características del problema y elegir una arquitectura que se adapte mejor a esos datos y objetivos.

2.         Vía de propagación: La propagación hacia adelante (feedforward) es la más común y se utiliza en muchas tareas de clasificación y regresión. La propagación hacia atrás (recurrente) es útil para datos secuenciales y tareas de retroalimentación temporal. La elección de la vía de propagación depende de la estructura y las necesidades del problema en cuestión.

3.         Capacidad de aprendizaje: Al elegir una red neuronal, es importante considerar su capacidad para aprender y adaptarse a los datos. Esto implica la capacidad de ajustar los pesos y los parámetros del modelo a través de algoritmos de aprendizaje adecuados, como el descenso del gradiente estocástico (SGD) o algoritmos más avanzados como Adam o RMSprop. Una red neuronal con una capacidad de aprendizaje adecuada puede mejorar su rendimiento en función de los datos y la retroalimentación recibida.

4.         Tamaño y complejidad: La elección de la arquitectura también debe considerar el tamaño y la complejidad del modelo en relación con los recursos computacionales disponibles. Redes más grandes y complejas pueden lograr resultados más precisos, pero también requieren más tiempo de entrenamiento y recursos computacionales. Es importante encontrar un equilibrio adecuado entre la capacidad del modelo y los recursos disponibles.

5.         Adaptabilidad: Las redes neuronales con capacidades adaptativas, como la capacidad de ajustar su estructura o aprender en línea con nuevos datos, pueden ser ventajosas en situaciones donde los datos son dinámicos y cambiantes. Al considerar una red neuronal, es útil evaluar su capacidad para adaptarse a nuevas circunstancias y datos.

Las redes neuronales tienen varias clasificaciones, veamos algunas de ellas:

  1. Según su arquitectura:
  2. Redes Neuronales Multicapa (MLP)
  3. Redes Neuronales Convolucionales (Convolutional Neural Networks, CNN)
  4. Redes Neuronales Generativas Adversariales (Generative Adversarial Networks, GAN).
  5. Redes Neuronales Recurrentes (Recurrent Neural Networks, RNN)
  6. Redes Neuronales de Memoria a Largo Plazo (Long-Term Memory Networks, LSTM)
  7. Redes Neuronales de Retroalimentación (Feedback Neural Networks)
  8. Redes Neuronales de Memoria Externa (External Memory Networks)
  9. Redes Neuronales de Hopfield (Hopfield Neural Networks)
  10. Redes Neuronales de Atención (Attention Neural Networks)
  11. Redes Neuronales Autoencoders (Autoencoder Neural Networks)
  • Según su propagación:

Propagación hacia adelante (Feedforward):

En estas redes, la información fluye en una sola dirección, desde la capa de entrada hasta la capa de salida, sin bucles o ciclos. Son las más simples y comunes. Pueden tener una o varias capas ocultas y se utilizan para tareas como clasificación y regresión.

  • Redes Neuronales Multicapa (Multilayer Perceptron, MLP)
    • Redes Neuronales Convolucionales (Convolutional Neural Networks, CNN)
    • Redes Generativas Adversariales (Generative Adversarial Networks, GAN)
    • Redes Neuronales de Atención (Attention Neural Networks)
    • Redes Neuronales Autoencoders (Autoencoder Neural Networks)

Dentro de las redes neuronales de atención (ANN), se encuentran los TRANSFORMERS.

Los transformers son una arquitectura de red neuronal que se utiliza principalmente en tareas de procesamiento del lenguaje natural, como la traducción automática y el reconocimiento de texto. A diferencia de otras redes neuronales, los transformers se basan en el uso de atención (attention) para procesar secuencias de palabras o símbolos.

La atención permite a los transformers analizar cada elemento de una secuencia en relación con todos los demás elementos, en lugar de procesarlos secuencialmente. Esto les permite capturar mejor las relaciones a largo plazo y comprender el contexto de las palabras o símbolos.

La arquitectura de los transformers se compone de múltiples capas de atención y capas completamente conectadas. Durante el entrenamiento, los transformers aprenden a asignar pesos a las diferentes palabras o símbolos en una secuencia, de modo que puedan dar más importancia a las palabras relevantes para la tarea en cuestión.

Los transformers han demostrado ser muy eficaces en tareas de procesamiento del lenguaje natural y han superado a otras arquitecturas tradicionales en muchas áreas. Su capacidad para capturar relaciones a largo plazo y comprender el contexto las convierte en una herramienta poderosa en la medicina, donde el procesamiento de grandes cantidades de datos textuales, como informes médicos o estudios científicos, es crucial.

Propagación hacia atrás (Recurrente):

A diferencia de las redes feedforward, las redes neuronales recurrentes tienen conexiones cíclicas entre las neuronas, lo que les permite tener una «memoria» interna. Esta memoria les permite procesar secuencias de datos, como datos de series temporales o texto, y capturar dependencias a largo plazo. Las redes neuronales LSTM (Long Short-Term Memory) y las redes GRU (Gated Recurrent Units) son ejemplos populares de redes recurrentes

  • Redes Neuronales Recurrentes (Recurrent Neural Networks, RNN)
    • Redes Neuronales de Memoria a Largo Plazo (Long-Term Memory Networks, LSTM)
    • Redes Neuronales de Retroalimentación (Feedback Neural Networks)
    • Redes Neuronales de Memoria Externa (External Memory Networks)
    • Redes Neuronales de Hopfield (Hopfield Neural Networks)

Autoencoders y Decoders:

Un Autoencoder es un tipo de red neuronal que tiene una arquitectura especializada en comprimir datos de entrada en una representación más compacta llamada «código latente», y luego intenta reconstruir los datos originales a partir de esa representación. En esencia, el Autoencoder consta de un codificador y un decodificador. El codificador reduce la dimensionalidad de los datos de entrada al extraer las características más importantes y generar el código latente. En este proceso, el Autoencoder aprende a extraer características relevantes y reducir la redundancia de los datos.

Por otro lado, un decoder es una parte de una red neuronal que se encarga de tomar una representación comprimida, como el código latente generado por un Autoencoder, y reconstruir los datos originales a partir de esa representación.

El decoder utiliza conexiones y pesos entrenados previamente para descomprimir la información y recuperar la estructura y características completas de los datos. El objetivo del decoder es lograr una reconstrucción lo más precisa posible del dato original a partir de la representación comprimida.

1.         Redes Neuronales Autoencoders (Autoencoder Neural Networks): utilizados para aprender representaciones comprimidas de los datos de entrada y luego reconstruirlos a partir de esa representación comprimida.

2.         Redes Neuronales de Memoria Externa (External Memory Networks): utilizan una memoria externa adicional para almacenar y recuperar información. Cabe destacar que los autoencoders no se limitan a una única arquitectura de red neuronal, sino que pueden implementarse utilizando diferentes tipos de redes, como MLP, CNN o RNN, dependiendo del problema y los datos específicos.

Abordemos las aplicaciones, ventajas y desventajas de  cada una:

Los profesionales en salud podemos beneficiarnos al aprender de las redes neuronales, con el objetivo de utilizar estas tecnologías de manera efectiva en la práctica clínica y mejorar la calidad de la atención. ¿Qué podemos aprender?: 

  • Sobre sus aplicaciones: Conocer las aplicaciones de las redes neuronales en medicina nos permite aprovechar su potencial en el diagnóstico, análisis de imágenes médicas, predicción de enfermedades y análisis de datos clínicos. Esto nos brinda nuevas herramientas para mejorar la precisión y eficiencia de nuestras prácticas.
  • Sobre la interpretación de resultados: Al comprender cómo funcionan las redes neuronales, los profesionales de la salud pueden interpretar los resultados generados por estos modelos y utilizarlos para respaldar la toma de decisiones clínicas. Esto implica entender las limitaciones y alcances de los algoritmos de aprendizaje automático y cómo pueden complementar su experiencia médica.
  • Trabajo en equipo: Al adquirir conocimientos básicos sobre redes neuronales, los profesionales de la salud podemos comunicarnos y colaborar de manera efectiva con expertos en informática. Esta colaboración interdisciplinaria es esencial para aprovechar al máximo el potencial de las tecnologías de inteligencia artificial en el campo médico.
  • Mantenerse actualizado: Dado que la tecnología de redes neuronales está en constante evolución, es importante que los profesionales de la salud estemos actualizados sobre los avances en este campo. Esto nos permitirá estar al tanto de las últimas herramientas y técnicas disponibles para mejorar la atención médica y mantenernos a la vanguardia.

Nota: corrección de estilo por prompt de ChatGPT

Referencias:

Krittanawong, C., Zhang, H., Wang, Z., Aydar, M., & Kitai, T. (2017). Artificial intelligence in precision cardiovascular medicine. Journal of the American College of Cardiology, 69(21), 2657-2664.

Rajkomar, A., Dean, J., & Kohane, I. (2019). Machine learning in medicine. New England Journal of Medicine, 380(14), 1347-1358.

Esteva, A., Kuprel, B., Novoa, R. A., Ko, J., Swetter, S. M., Blau, H. M., & Thrun, S. (2017). Dermatologist-level classification of skin cancer with deep neural networks. Nature, 542(7639), 115-118.

Litjens, G., Kooi, T., Bejnordi, B. E., Setio, A. A. A., Ciompi, F., Ghafoorian, M., … & Sanchez, C. I. (2017). A survey on deep learning in medical image analysis. Medical image analysis, 42, 60-88.

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: