Tiempo de lectura: 8 minutos

En los duros días que estamos viviendo debido a la pandemia de Covid-19, muchos son los países y empresas que están buscando la solución que permita desbloquear la situación de crisis en hospitales y centros sanitarios. No obstante, de entre todas las estrategias destaca una basada en la tecnología de moda los últimos años, las redes neuronales. En este caso viene desde España y trata de mejorar el diagnóstico mediante el análisis de un TAC, para indicar el índice de similitud con el de un paciente con Covid-19. Pero, ¿qué es esto de las redes neuronales y el aprendizaje profundo?

A pesar del atractivo nombre de esta tecnología, en su versión más simple no tiene demasiada complejidad matemática detrás de ella y ni mucho menos es innovadora, ya que trata de imitar el trabajo hecho por la evolución del ser humano desde que comenzó a cuestionarse su entorno. Nada más y nada menos. Así pues tratemos de entender el funcionamiento basándonos en la analogía humana en la que todos somos expertos.

Nuestro cerebro está compuesto por un conjunto de neuronas que se conectan entre sí y trabajan en equipo con la finalidad de realizar una tarea, la cual se divide en otras subtareas y se asigna a cada una de ellas. Algo similar es lo que sucede en las redes neuronales artificiales, donde cada uno de los componentes básicos, la neurona, se especializa en una tarea determinada. A nivel esquemático una neurona biológica funciona de la siguiente manera: los impulsos eléctricos entran por las dendritas, donde el soma procesa la información devolviendo el resultado de dicho procesamiento por el axón.

Esto nos puede dar una idea de cómo funciona un neurona artificial. Si nos fijamos bien tenemos unas entradas, que tras ser multiplicadas por unos pesos alcanzan el núcleo de la neurona. Desempolvando los conceptos de matemáticas, esto no es más que una combinación lineal de las distintas entradas que, a través de la operación realizada por el núcleo, nos proporcionan una salida. Cabe señalar, que en toda combinación lineal puede existir un término independiente, que en el caso de las neuronas se denomina BIAS y permite compensar el resultado de las combinaciones para buscar la salida deseada.

Ahora bien, ¿por qué es necesario entonces tener más de una capa de neuronas para que la red funcione? Pensándolo dos veces: si cada neurona realiza una combinación lineal de las entradas, por compleja que ésta sea, muchas combinaciones lineales podrían agruparse en una sola y necesitar solo una superneurona, la cual aceptaría todas las entradas para devolvernos una salida. Es aquí donde entran en juego las funciones de activación, que deslinearizan esa combinación, permitiéndonos realizar cálculos más complejos. Para entender este concepto pensemos en una operación que todos hacemos al menos una vez al año, calcular si estamos aprobados o no.

Supongamos que hay dos posibles resultados, aprobado o suspendido. Esta casuística binaria ya nos debe hacer reflexionar sobre su sencilla implementación en ordenadores. Bien, pues atendiendo a los distintos porcentajes que contribuyen a la nota final haríamos lo siguiente:

En este caso, los pesos anteriormente mencionados son los distintos porcentajes, mientras que la operación realizada por la neurona es la suma de todos ellos teniendo en cuenta el resultado obtenido en cada una de las pruebas. Ahora bien, el resultado de la suma es un valor comprendido entre 0 y 10, lo que no encaja con nuestro criterio funcional para la neurona, ya que debería decirnos si hemos aprobado o no. Es aquí donde las ya mencionadas funciones de activación realizan su cometido, formular el veredicto final tras la ponderación de las entradas. En este caso tenemos una de las funciones de activación más simples, la ReLu, que para valores mayores o iguales a 5 devuelve un “Aprobado” y para el resto de valores un “Suspenso”.

Con todo ello tenemos el tipo más simple de neurona, también llamado perceptrón. De aquí en adelante lo que resta es conectar más y más capas de estas redes, una detrás de la otra, como si fueran bloques de Lego, permitiéndonos procesar una mayor cantidad de información y obtener más salidas. Pero, ¿cuál es el beneficio de todo esto? Imaginad que ahora queremos que esta red neuronal sea capaz de a partir de unas notas dadas, combinarlas para que siempre se obtenga como resultado un aprobado. ¿Cómo haríamos esto? Bueno la primera idea que nos viene a la cabeza podría ser reajustar los pesos de entrada para darle mayor importancia a las notas más altas, y restarle importancia a las más bajas. Este mecanismo que para los humanos resulta tan simple como reajustar los coeficientes es lo que se resuelve matemáticamente con el algoritmo de Backpropagation. Este algoritmo nos permite ajustar los pesos calculando la función de error entre la salida calculada por la red y el resultado esperado, y la importancia que cada neurona o peso tiene en el resultado final. Cabe destacar que dicho algoritmo no es tan simple como pueda parecer inicialmente (como muestra de ello no fue introducido hasta 1986). Éste permite la retroprogramación de las redes neuronales de una forma más eficiente y óptima a como se venía realizando hasta el momento. No obstante, y dejando la explicación más precisa y profunda del algoritmo para posteriores artículos, el mecanismo matemático emplea herramientas como el gradiente del error o el algoritmo Least MeanSquare usado en filtros adaptativos, para obtener los pesos óptimos, cuyo cálculo se complica conforme aumenta el número de neuronas, capas y entradas.

Después de esta breve pero intensa introducción a las redes neuronales quizá quede la duda existencial que siempre nos acecha cuando aprendemos algo nuevo, ¿pero y esto para qué vale? ¿qué me aporta nuevo ? Bueno pues teniendo en cuenta la potencia de cálculo de la que disponemos actualmente, podemos implementar redes muy complejas con reducido coste y en dispositivos muy baratos. De hecho, tras el conocido como invierno de la IA esta tecnología comenzó a desarrollarse y a mostrar su gran poder.

En consecuencia, si nos imaginamos un caso en el que alimentamos nuestra red con unos datos de entrada y, tras un proceso de entrenamiento, conseguimos obtener los mismos resultados que los ya conocidos, podríamos abrir esa caja negra que es la red y ver qué pesos influyen más o menos en la decisión final. Esto que acabamos de ver es el fundamento más simple del aprendizaje profundo, donde tras el entrenamiento de una red se estudia qué factores son decisivos, detectando patrones y conclusiones difícilmente obtenidas por humanos tras mucho tiempo de trabajo.


Volviendo al tema que nos introdujo en esta explicación, las redes neuronales están resultando de extrema utilidad en el diagnóstico médico, ya que tras ser entrenadas con diagnósticos conocidos y muy importante, correctamente clasificados, son capaces de determinar patrones que con muy poca probabilidad serían detectados por el mejor de los especialistas médicos. Debemos pues darle especial importancia a la necesidad de datos correctamente clasificados, ya que es uno de los grandes problemas a los que se enfrenta en la actualidad esta tecnología; sin datos clasificados no se pueden entrenar las redes neuronales, o lo que sería lo mismo para los humanos, sin conocimiento veraz no podemos aprender correctamente.

Finalmente, y conociendo ahora un poco mejor como funcionan las redes neuronales, podemos hacernos una idea de cómo la empresa Valenciana que comentábamos al principio, ha sido capaz de alimentar su red neuronal con TACs. En este caso los píxeles de los TACs se introducen como parámetros de entrada a la red, en particular convolucional (CNN Convolutional Neural Network), para acabar determinando la probabilidad de que un paciente sea diagnosticado con Covid-19. Entrenamiento tras el cual se puede deducir qué factores son determinantes en la enfermedad y así poder tratarlos.

Sergio Morell Ortega
Estudiante de Ingeniería de Telecomunicaciones
Valencia

Puntuación
Votos: 4 Promedio: 5
+ posts

2 Respuestas

Deja una respuesta

Tu dirección de correo electrónico no será publicada.