Vicente Rodríguez

March 22, 2019

Detectando Alzheimer con Deep learning

Las imágenes de las que hablaré pertenecen al set de datos ADNI (Alzheimer’s Disease Neuroimaging Initiative) (adni.loni.usc.edu).

La enfermedad de Alzheimer es la forma más común de demencia, esta enfermedad afecta a la memoria, al lenguaje, el comportamiento y en general a la vida del paciente ya que empieza a perder habilidades importantes como el poder leer, reconocer a los miembros de su familia o la noción de quién es.

Lo más peligroso es que no existe una cura y aun no se sabe que causa esta enfermedad, la unica manera de estar completamente seguros si un paciente presentó Alzheimer es examinar una muestra del tejido cerebral despues de la muerte.

Tomografias

Existen metodos para diagnosticar esta enfermedad, estos diagnosticos se realizan cuando el paciente ya presenta ciertos síntomas, el metodo que nos interesa es la tomografía por emision de positrones (TEP) y por sus siglas en inglés (PET).

Una TEP muestra como esta funcionando el cerebro y sus tejidos. Las imágenes por resonancia magnética (IRM) o la Tomografía computarizada (TC) solo revelan la estructura del cerebro. En una TEP se utiliza una sustancia radiactiva que llaman marcador ya que son varias moleculas unidas o marcadas con una pequeña cantidad de material radioactivo denominado radiofármaco o radiosonda. La radiosonda más común es la fluorodesoxiglucosa F-18-FDG que es una molécula similar a la glucosa. (Esta es la sustancia/radiosonda que se uso en los pacientes de las imágenes que usé para entrenar a la red neuronal). Esta sustancia se puede inyectar, ingerir vía oral o inhalar como gas y se acomula en el organo, en este caso en el cerebro, que se desea examinar. El cerebro consume la sustancía y en el caso de que el paciente presente Alzheimer el comportamiento del cerebro al consumir la sustancia sera diferente ya que la enfermedad ha matado muchas celulas nerviosas y esto se ve reflejado en las imágenes del cerebro que la maquina produce.

Maquina pet

Maquina que realiza la tomografía.

(https://www.cedars-sinai.edu/Patients/Programs-and-Services/Imaging-Center/Preparandose-para-Su-Examen/Tomografia-FDG-PET--.aspx)

Imágenes en el set de datos ADNI

Las imagenes que la maquina produce son imagenes 3d del cerebro, en el set de datos ADNI podemos realizar una busqueda de estas imágenes con parametros especificos como el grupo al que pertenece el paciente o el tipo de imágenes TEP, IMR, TC, en este caso nos interesan las imágenes de tipo TEP o PET por sus siglas en inglés con la radiosonda F-18-FDG / F-18 y que pertenezcan a dos grupos: AD (Alzheimer's Disease) y CN (Cognitively Normal) que son pacientes con la enfermedad y sin la enfermedad respectivamente. Despues podemos descargar estas imágenes 3d en formato nii.

Existen redes neuronales con capas convolucionales 3d pero para entrenar este tipo de redes neuronales se require un hardware muy potente y mucho espacio, las imágenes de pacientes con Alzheimer del set de datos ADNI pesan 20gb en formato zip, las imágenes sin comprimir pesan casi 40gb. El problema era subir estas imágenes a Google Colab que es la herramienta que uso para entrenar redes neuronales, la alternativa era pasar las imágenes de 3d a 2d y para realizar esta tarea existe una librería de python llamada nibabel que puede leer imágenes en formato nii, esta librería carga las imágenes como un array de numpy de 4 dimensiones, las primeras tres dimensiones indican los ejes x, y, z y la ultima dimension indica los canales de color en este caso solo es uno ya que las imágenes estan en escala de grises. Cuando se tiene la imagen como un array se puede acceder con un index a la profundidad que se necesite, en este caso estamos interesados en la parte central, por cada imagen en 3d se pueden conseguir varias imágenes en 2d.

Ejemplo

Modelo

Para ver todos los detalles del modelo aquí hay un link a la libreta con el código.

En total conseguí 79,506 imágenes contando ambas clases, usé el 20% de estas imágenes para el set de validación y el 80% para el set de entrenamiento, aparte usé data augmentation para conseguir más imágenes, el modelo que seleccione fue Mobile Net v2, un learning rate de 0.0003 con SGD como optimizador y 100 epochs. La mejor exactitud en el set de validación que alcanzo el modelo fue en el ciclo 93 y fue del 98%:

exactitud

Como se puede notar en la matriz de confusion el modelo alcanzo una sensibilidad de 98.9% y una especificidad de 99.1%

confusion matrix

En general es un modelo bastante bueno aunque me gustaría poder probarlo en una situación real para ver como se comporta.

Referencias

https://medlineplus.gov/spanish/ency/article/000760.htm

https://medlineplus.gov/spanish/ency/article/007341.htm

https://www.radiologyinfo.org/sp/info.cfm?pg=pet