INSTITUTTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIER ´ IA MEC ´ ANICA Y EL ´ ECTRICA UNIDAD PROFESIONAL “ADOLFO L ´ OPEZ MATEOS” “DETECCI ´ ON DE ARRITMIAS CARDIACAS POR MEDIO DE REDES NEURONALES APLICANDO EL M ´ ETODO BACK PROPAGATION” SEMINARIO PARA OBTENER EL T ´ ITULO DE: INGENIERO EN COMUNICACIONES Y ELECTRÓNICA PRESENTAN: OMAR NEGRETE MU ˜ NOZ ROSARIO GONZ ´ ALEZ RODR ´ IGUEZ ASESORES: M. EN C. BEATR ´ IZ ADRIANA JAIME FONSECA M. EN A. ADRIANA SOSA ROJAS CIUDAD DE M ´ EXICO, JUNIO DE 2019
ELECTRICA
“DETECCION DE ARRITMIAS CARDIACAS POR MEDIO DE REDES
NEURONALES APLICANDO EL METODO BACK PROPAGATION”
SEMINARIO
PRESENTAN:
M. EN A. ADRIANA SOSA ROJAS
CIUDAD DE MEXICO, JUNIO DE 2019
3
1.3. Factibilidad . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 11
1.4. Hipotesis . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 12
1.5. Justificacion . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 12
1.6. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 12
3. Marco teorico 21
3.1. Inteligencia artificial . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 21
3.1.2. Redes neuronales . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 29
3.2.1. Arritmias cardiacas . . . . . . . . . . . . . . . . . . . .
. . . . . . . 40
3.3. MatLab . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 52
INDICE GENERAL 5
5.1. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 63
5.2. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 69
6. Referencias 71
B. Ventanas de entrenamiento de las redes 78
C. Datos recopilados de pacientes 84
Indice de figuras
Figura 1. Vehculos Braitenberg y su reaccion a la luz. . . . . . .
. . . . 17
Figura 2. Retrato de Alan Turing, creador de la Maquina de Turing.
. . 18
Figura 3. Diagrama a bloques del proceso de seleccion de variables.
. . 27
Figura 4. Diagrama a bloques de los tipos de clasificacion no
supervisada. 28
Figura 5. Estructura de una red neuronal. . . . . . . . . . . . . .
. . . . . 29
Figura 6. Dibujo representativo de un Perceptron. . . . . . . . . .
. . . 31
Figura 7. Dibujo que representa el Multilayer Perceptron. . . . . .
. . . 32
Figura 8. Dibujo que representa una Convolutional Neural Network. .
. 33
Figura 9. Dibujo que representa una Long Short Term Memory. . . . .
34
Figura 10. Dibujo que representa Deep Belief Network. . . . . . . .
. . . 35
Figura 11. Dibujo que representa una Generative Adversarial
Network. . 35
Figura 12. Reconocimiento de rostros e identificacion de personas.
. . . . 36
Figura 13. Sistema para identificar personas por su manera de
caminar
[19]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 37
Figura 14. Senales de vibracion generadas por fenomenos teluricos.
. . . 38
Figura 15. Perforacion de pozos petroleros asistido. . . . . . . .
. . . . . . 38
Figura 16. Automatizacion en lnea de ensamblaje. . . . . . . . . .
. . . . 39
Figura 17. Reconocimiento de voz. . . . . . . . . . . . . . . . . .
. . . . . . 39
Figura 18. Estudios medicos asistidos por computadora. . . . . . .
. . . . 40
Figura 19. Lectura tomada de un electrocardiograma de un paciente
sano. 41
Figura 20. Lectura de paciente que presenta bradicardia sinusal. .
. . . . 42
Figura 21. Ubicacion donde se generan las arritmias ventriculares.
. . . . 42
6
Figura 22. Muestra arrojada por electrocardiograma de paciente que
pre-
senta taquicardia sinusal. . . . . . . . . . . . . . . . . . . . .
. . . . . . 43
Figura 24. Muestra de electrocardiograma con lecturas de
Contracciones
Ventriculares prematuras. . . . . . . . . . . . . . . . . . . . . .
. . . . . 44
Figura 25. Ubicacion donde se generan las arritmias
supraventriculares. . 45
Figura 26. Electrocardiograma con lecturas anormales y de acuerdo
con
una arritmia supraventricular. . . . . . . . . . . . . . . . . . .
. . . . . 45
Figura 27. Electrocardiograma con lecturas anormales y de acuerdo
con
una fibrilacion auricular. . . . . . . . . . . . . . . . . . . . .
. . . . . . . 46
Figura 28. Electrocardiograma con lecturas de paciente que presenta
Sndro-
me de Wolff-Parkinson-White. . . . . . . . . . . . . . . . . . . .
. . . . . 46
Figura 29. Muestra de lecturas referidas al aleteo auricular. . . .
. . . . . 46
Figura 30. Muestra de lecturas referidas a un bloqueo cardiaco. . .
. . . 47
Figura 31. Derivacion I. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 48
Figura 32. Derivacion II . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 48
Figura 33. Derivacion III. . . . . . . . . . . . . . . . . . . . .
. . . . . . . 49
Figura 34. Derivacion AVR . . . . . . . . . . . . . . . . . . . . .
. . . . . . 49
Figura 35. Derivacion AVL . . . . . . . . . . . . . . . . . . . . .
. . . . . . 50
Figura 36. Derivacion AVF. . . . . . . . . . . . . . . . . . . . .
. . . . . . . 50
Figura 37. Lectura, Comprension e Interpretacion del
Electrocardiograma
[21]. Derivaciones precordiales. . . . . . . . . . . . . . . . . .
. . . . . . 51
Figura 39. Electrocardiograma ambulatorio. . . . . . . . . . . . .
. . . . . 52
Figura 40. Ventana para configurar una nueva red neuronal dentro de
la
herramienta nntool. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 55
Figura 41. Parametros de entrenamiento de la red neuronal dentro de
la
nntool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 57
Figura 42. Arquitectura de la red neuronal con mayor eficiencia. .
. . . . 59
8 INDICE DE FIGURAS
Figura 43. Ventana que permite la configuracion visual del GUIDE. .
. . 60
Figura 44. Entrenamiento de la red estructura de red neuronal con
mayor
eficiencia. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 64
Figura 45. Interfaz de usuario. . . . . . . . . . . . . . . . . . .
. . . . . . . 67
Figura 46. Ejemplo del ingreso de datos y resultado en la interfaz
de
usuario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 67
Figura 47. Ejemplo de un resultado inexacto en las salidas de la
red neu-
ronal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 68
Figura 48. Ejemplo de error al ingresar los datos . . . . . . . . .
. . . . . . 68
Figura 49. Red 1. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 78
Figura 50. Red 2. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 79
Figura 51. Red 3. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 80
Figura 52. Red 4. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 81
Figura 53. Red 5 . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 82
Figura 54. Red 6 . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 83
Figura 55. Datos recopilados de pacientes. . . . . . . . . . . . .
. . . . . . 84
Indice de tablas
Tabla 1. Arquitecturas de las redes neuronales que lograron parar
entre-
namiento por NSE. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 58
Tabla 2. Datos de salida de la red neuronal de los pacientes que
presen-
taban ritmo cardiaco normal. . . . . . . . . . . . . . . . . . . .
. . . . . 65
Tabla 3. Datos de salida de la red neuronal de los pacientes que
presen-
taban bradicardia. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 65
Tabla 4. Datos de salida de la red neuronal de los pacientes que
presen-
taban taquicardia- . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 65
Tabla 5. Datos de salida de la red neuronal de los pacientes que
presen-
taban una pausa irregular en su ritmo cardiaco. . . . . . . . . . .
. . . 66
Tabla 6. Datos de salida de la red neuronal de los pacientes que
presen-
taban un ritmo cardiaco irregular. . . . . . . . . . . . . . . . .
. . . . . 66
9
1.1.1. Preguntas generales
1. ¿Cuales son las caractersticas adecuadas de las redes neuronales
para el desarrollo
de un software que permita el diagnostico oportuno en la deteccion
de arritmias
cardiacas?
2. ¿Cuales son las diferencias principales entre pacientes que
presentan arritmias y los
que no las presentan?
3. ¿En que favorece el uso de redes neuronales en la deteccion de
arritmias cardiacas?
4. ¿A que poblacion va dirigido el uso de este software?
1.1.2. Proposito
Coadyuvar en el diagnostico temprano de arritmias cardiacas, a
traves de una interfaz
de bajo costo, con un margen de error muy bajo, de facil
adquisicion, de modo que pueda
ser utilizado por cualquier hospital o consultorio, publico o
privado.
10
1.1.3. Objetivo General
Desarrollar una interfaz que permita ingresar lecturas del ritmo
cardiaco de un paciente,
para un diagnostico oportuno.
1.1.4. Objetivos Especficos
Implementar una red neuronal para el apoyo al diagnostico de
arritmias cardiacas.
Disenar una base de datos con argumentos precisos de diagnosticos
de pacientes.
Realizar la interfaz para el apoyo del diagnostico medico.
1.2. Planteamiento del problema
Las afecciones cardiacas son una de las causas principales de
mortalidad en Mexico
y el mundo. Debido a un diagnostico erroneo, o a la ausencia del
mismo, los sntomas
pueden confundir a los profesionales de la salud y dictaminar un
tratamiento equivocado,
generando una mejora nula en el paciente, con consecuencias que
pueden derivarse incluso
en la muerte.
El problema principal se centra en generar un apoyo al medico para
un diagnostico
oportuno de arritmias cardiacas, debido a que en ocasiones es
tardo, lo que provoca
problemas de mayor relevancia en el paciente.
1.3. Factibilidad
Este proyecto es factible, es decir, es posible realizarlo debido a
que la implementacion
sugiere ser una base solida y funcional, como lo son las redes
neuronales. Este sistema ha
sido utilizado para la simulacion de diferentes condiciones humanas
que pudieran distar
de un funcionamiento correcto, como lo han sido las afecciones
cardiacas.
12 CAPITULO 1. INTRODUCCION
1.4. Hipotesis
La red neuronal, con un optimo entrenamiento, sera capaz de
discernir entre los dis-
tintos tipos de arritmia gracias a los datos generados y asentados,
contribuyendo con el
diagnostico final.
1.5. Justificacion
Entre las principales causas de muerte por enfermedades
cronico-degenerativas se en-
cuentran los problemas cardiacos. Se posee un registro aproximado
de mas de 30 millones
de personas en el mundo que sufren algun tipo de arritmia cardiaca.
Sin embargo, en Mexi-
co se contempla que 1.3 millones de personas padecen esta afeccion.
En la actualidad, los
adultos mayores son el sector mas vulnerable, ya que conforme la
edad avanza, el corazon
presenta un crecimiento, ocasionando que los latidos
disminuyan.
De esta manera, se busca complementar el diagnostico medico
mediante una interfaz
de apoyo que, sumada a la labor humana, favorezca a un diagnostico
temprano y certero
de alguna enfermedad cardiaca.
Los costos estimados para los tratamientos contra enfermedades
cardiacas ascienden al
75 % del PIB mundial, convirtiendose en uno de los principales
contribuyentes a la carga
economica global. Por medio del software se busca reducir esa
carga, ademas de garantizar
una mejor calidad de vida a los pacientes que oportunamente sean
diagnosticados con este
padecimiento. Sumado a eso, se busca que la implementacion de este
programa sea viable
y accesible a la poblacion.
1.6. Resumen
El presente trabajo muestra el desarrollo de una interfaz de apoyo
a los medicos en el
diagnostico de las arritmias cardiacas permitiendo obtener un
diagnostico oportuno y as
poner la atencion adecuada de estas afecciones, ya que una de las
principales causas de
mortalidad en Mexico son las afecciones cardiacas que no son
detectadas con anticipacion.
1.6. RESUMEN 13
Principalmente se busca que esta interfaz sea utilizada por medicos
en zonas que son
de difcil acceso a medicos especialistas o que por la saturacion de
los servicios de salud el
tener una cita ocupa un retardo de unos seis meses. Cabe mencionar
que la implementacion
de esta interfaz se puede programar en cualquier tipo de plataforma
de software.
Los resultados obtenidos por esta aplicacion se obtuvieron mediante
la implementacion
de un algoritmo de reconocimiento de patrones como lo son las redes
neuronales artificiales,
las cuales son entrenadas mediante una base de datos que
posteriormente seran utilizadas
para comparar nuevos datos de entrada en un aprendizaje de tipo
supervisado. El software
que nos permitira la comunicacion entre el usuario e interfaz sera
mediante MatLab, pro-
grama que posee herramientas versatiles, en el area de la
inteligencia artificial y de forma
particular para implementar una red neuronal artificial.
Captulo 2
Estado del arte
El estado del arte que aqu se presenta es producto de investigacion
documental reali-
zada, la cual abarco un periodo de 2014 a la fecha, as como
trabajos de Europa y America
Latina. Uno de los procedimientos para la obtencion de la actividad
electrica del corazon
es el electrocardiograma; actualmente es la tecnica mas utilizada
para detectar anomalas
o padecimientos cardiacos y cardiovasculares. A traves del
electrocardiograma (ECG) se
pueden detectar diversos padecimientos de corazon, como arritmia,
fibrilacion auricular,
disfuncion aurcula ventricular, etc.
Se puede hacer uso de algoritmos de aprendizaje basados en redes
neuronales como un
apoyo al diagnostico medico final, para la deteccion, no solo de
problemas cardiovasculares,
sino de un sinfn de padecimientos en el cuerpo humano, tecnica
adquirida hace apenas
algunos anos gracias al avance de la tecnologa y el procesamiento
de senales, en Mexico
y en el mundo.
Mariel [1]habla en su investigacion acerca de un sistema para la
toma de electrocardio-
gramas, para visualizarse posteriormente en un dispositivo con
sistema operativo Android.
Se pone enfasis en la creacion de un modulo inteligente capaz de
realizar un diagnostico de
manera automatica y procesada de acuerdo a los datos recabados. La
tecnologa utilizada
por Mariel fue el Arduino como componente central del sistema
electronico, sistemas An-
droid para visualizar datos en una plataforma movil y CLIPS como
motor de inferencia,
es decir, un Sistema Experto encargado de controlar logicamente el
manejo y utilizacion
del conocimiento almacenado en la base de datos recabada, y a su
vez, procesarla.
14
15
S. T. Perez [2], usa redes neuronales para procesamiento de senales
en tiempo real, y su
argumentacion se basa en la posibilidad de encontrar metodos de
diseno sobre dispositivos
digitales programables para implementar redes neuronales que operen
en tiempo real en
procesado digital de la senal. Los metodos deben ser rapidos y
flexibles, y permitir evaluar
el efecto del numero de bits sobre la arquitectura. La interfaz
utilizada en este prototipo
es Matlab, debido a que se ha convertido en un software estandar
para la aplicacion y
modelado de redes neuronales en punto flotante, segun Perez.
Ademas, senala otra ventaja
referida a los metodos avanzados de diseno para FPGA
(Field-Programmable Gate Array
– Matriz de Puertas Programable, por sus siglas en ingles), que se
basan en Simulink y en
Matlab.
En el artculo de C. Juarez et al. [3], publicado en el margen del
VI Congreso Nacional
de Tecnologa aplicada a Ciencias de la Salud presenta el caso de
estudio de los trazos de
un electrocardiograma para hacer una deteccion oportuna de
enfermedades cardiovascu-
lares, tomando como referencia a la poblacion mexicana como objeto
de estudio. Segun el
artculo, se utiliza un proceso de reconocimiento de patrones por
medio de redes neurona-
les artificiales, en especial del tipo de retro propagacion, para
el analisis y clasificacion de
los patrones representativos de enfermedades
cardiovasculares.
En su parte experimental, y basandose en la red neuronal, se
hicieron comparaciones
con bases de datos de afecciones tales como ritmo sinusal normal,
bradicardia sinusal, ritmo
ventricular y taquicardia ventricular de los cuales se realizo una
fase de contaminacion por
ruido en la senal del patron para ampliar la capacidad de la red en
cuanto a que pueda
reconocer un patron a pesar de que contengan diferencias con
respecto al patron original.
C. E. Rose y M. T. Serna [4]presentan en su artculo una propuesta
para la deteccion
de algunas anomalas cardiacas y la generacion automatica de una
alerta. El algoritmo
propuesto utiliza una red neuronal que permite clasificar las
arritmias bajo las clases
establecidas por la Asociacion para el Avance de la Instrumentacion
Medica (AAMI, por
sus siglas en ingles) y un conjunto de reglas para la deteccion de
algunas de ellas. Su
objetivo principal era disenar un sistema con tecnicas inteligentes
que permitan detectar
y monitorear anomalas cardiacas en pacientes no hospitalizados. De
tal manera, que se
generen alertas para una atencion inmediata del medico y/o
familiares del paciente.
16 CAPITULO 2. ESTADO DEL ARTE
C. PadillaNavarro et al. [5]enfocan su artculo a la deteccion de
arritmias, con un meto-
do un tanto particular. El metodo propuesto combina metaheursticas,
es decir, algoritmos
geneticos y los clasificadores KNN y Naive Bayes.
Los AG son algoritmos de busqueda basados en la mecanica de
seleccion natural y de la
genetica natural. Combinan la supervivencia del mas apto entre
estructuras de secuencias
con un intercambio de informacion estructurado y aleatorio, para
construir un algoritmo
de busqueda que tenga algo de lo que las busquedas humanas
aplican.
Los clasificadores KNN y Naive Bayes son funciones de clasificacion
contenidos en el
programa Weka, un software para el aprendizaje automatico y la
minera de datos, escrito
en Java y desarrollado en la Universidad de Waitako.
Las metaheursticas se implementan para mejorar el rendimiento de
los clasificadores.
Los resultados experimentales que se muestran en el artculo logran
hasta un 94 % de
precision en la clasificacion.
En el compilado de artculos La simulacion en Ingeniera,
trascendiendo fronteras, B.
Rivas et al. [6]publican un documento que contiene los datos acerca
de una investigacion
realizada sobre la aplicacion de las redes neuronales en la
determinacion, mediante un
dispositivo electronico capaz de medir en tiempo real la frecuencia
cardiaca y posicion del
usuario para diagnosticar posibles aflicciones relacionadas al
corazon.
Los artculos que se describen en este captulo son desarrollos e
implementaciones
que se han documentado alrededor del mundo en tiempos recientes. La
mayora tiene
relacion cercana con la inteligencia artificial y con el
reconocimiento de patrones, pero,
indudablemente, cada uno tiene particularidades, y diferentes
metodos de desarrollo e
implementacion, as como el equipo utilizado.
La principal diferencia de todos estos proyectos al que se
desarrolla en este escrito es
la interfaz utilizada, en este caso Matlab, as como el
procedimiento de entrenamiento
de las redes en turno. El motivo de utilizar Matlab es debido a que
la herramienta para
entrenamiento y simulacion de redes neuronales (nntool) es una
herramienta que se ha ido
perfeccionando desde hace ya varios anos, por lo que actualmente es
de los complementos
mas poderosos y precisos que nos ofrece Matlab, ademas de
proporcionar una interfaz
amigable y accesible para cualquier usuario.
17
Figura 1. Vehculos Braitenberg y su reaccion a la luz.
Cuando la luz que penetra es mayor, los motores avanzan a mayor
velocidad, lo que
provoca que el sensor que esta mas cercano a la luz, acelere la
velocidad de esa rueda, lo
cual evita que colisione con la fuente luminiscente. Con esto se
confirma de cierto modo
el concepto de McCarthy. Pero no es suficiente, ya que la IA tiene
como objetivo resolver
problemas aun mas exigentes, mismos que el pequeno automovil es
incapaz de resolver.
Casi el mismo tiempo, otro intento de definir la IA lo hizo Alan
Turing, quien es con-
siderado el padre de la computacion. El cientfico es mayormente
conocido por la creacion
de su maquina de Turing, la cual es una maquina conceptual que
utilizo para formalizar el
modelo computacional que hasta hoy en da se sigue utilizando, como
lo son operaciones
basicas, y que, basandose en las mismas, demostro que poda
desarrollar una maquina
que pudiera codificar cualquier algoritmo, y que todas las maquinas
posteriores a la suya
tendra esas mismas operaciones basicas que su maquina.
Turing (foto en figura 2) publico un artculo en 1950 en la revista
Mind, de nombre
“Computing machinery and intelligence”, donde argumentaba que, si
una maquina puede
actuar como un humano, entonces podramos definirla como
inteligente. Para realizar esta
prueba, realizo el llamado “Test de Turing”, el cual consista en
hacer que un ser humano
se comunicara a traves de un terminal informatico con una entidad
que se hallara en
alguna otra parte contigua del lugar de la prueba. Esta entidad
poda ser otro ser humano
o una maquina inteligente. Si despues de llevar a cabo una
conversacion el ser humano
no era capaz de distinguir si estaba hablando con un ser humano o
con otra maquina,
entonces esa maquina poda definirse como inteligente.
18 CAPITULO 2. ESTADO DEL ARTE
Figura 2. Retrato de Alan Turing, creador de la Maquina de
Turing.
La mencionada prueba no es solo para el ser humano, la maquina
tambien tiene que ser
capaz de reconocer el lenguaje natural en el que hablamos los seres
humanos. El habla viene
asociada a una inteligencia superior, y para ser una maquina que
sea capaz de reconocerla
e interpretarla, ademas de construir frases, tiene que ser capaz de
realizar distintos analisis
de tipo morfologicos, semanticos, sintacticos y contextuales de la
informacion recibida y
de la que va a generar. Actualmente, el procesamiento del lenguaje
natural o NLP
(Natural Language Processing) es una rama de la IA que se ocupa de
las capacidades
de comunicacion entre los ordenadores y los seres humanos
utilizando su propio lenguaje.
Es un area cuya aplicacion es multiple, la cual va desde traduccion
automatica hasta la
comprension del lenguaje humano, entre otros.
La prueba propuesta por Turing exige tambien una capacidad de
razonamiento au-
tomatico, debido a que los humanos somos capaces de llegar a
conclusiones con base en
una serie de premisas. Un ejemplo, el ser humano puede concluir
que, si esta lloviendo,
el suelo estara mojado, y por ende resbaladizo. Un primer intento
para conseguir que las
maquinas razonaran fue llevado a la practica mediante los sistemas
expertos, los cuales tra-
tan de llegar a conclusiones logicas mediante hechos o premisas
primeramente introducidas
en el sistema.
Otra condicion necesaria es el aprendizaje automatico para que un
sistema de IA
19
sea considerado como tal. Si una maquina es incapaz de aprender
cosas nuevas, no sera
capaz de adaptarse al entorno, cuya condicion es exigible a
cualquier ser vivo dotado de
inteligencia. En la IA, las lneas de investigacion actuales
intentan hacer que las maquinas
sean capaces de hacer generalizaciones a partir de ejemplos
obtenidos del entorno. Por
ejemplo, un nino aprende desde pequeno que si se cae puede hacerse
dano, y necesita de
varias ocasiones en las que esto suceda para que exista esta
generalizacion.
Evidentemente, y sumado a todo lo anterior, la computadora debe ser
capaz de al-
macenar y recuperar toda la informacion procesada y aprendida, es
decir, mecanismos de
representacion del conocimiento. Por si sola esta es una rama de la
inteligencia ar-
tificial que investiga tecnicas de almacenamiento de informacion
que sea accesible de una
manera facil, y que tambien sea facil de utilizar por los sistemas
inteligentes.
Para aprobar en su totalidad el test de Turing, la maquina tambien
debe tener la capa-
cidad de vision artificial, ademas de la manipulacion de objetos,
es decir, robotica. A
traves de una camara, cualquier computadora o dispositivo portatil
puede obtener image-
nes del entorno, pero una cosa es obtener las imagenes y otra es
entender la informacion
a la que esta accediendo por el simple hecho de contar con una
camara. Por otro lado, la
capacidad de la manipulacion de objetos necesita hacer uso de la
vision artificial, sumado
a otro tipo de sensores, esto para saber la espacialidad donde se
encuentra el objeto, la
distancia, ademas de la presion necesaria para manipular el mismo
sin hacerle dano, tareas
cotidianas para un ser humano, pero nada sencillas para un
ordenador. La idea de Turing
fue tomada como base para entender la IA. Pero la idea de que una
maquina sera inte-
ligente si actua como un humano es discutida por otros
investigadores. Algunos afirman
que, si una maquina piensa como humano, entonces es inteligente;
otros defienden la idea
de que una maquina es inteligente si piensa o actua de forma
racional.
Al final, el concepto de inteligencia va mas alla de un simple
aspecto de la similitud
de que el actuar de una maquina sea igual al de un ser humano, ya
que no solo se trata
de actuar como un ser humano, sino de pensar como el, pero al mismo
tiempo tambien es
difcil conceptualizar el como es que un ser humano piensa. Para
seguir enriqueciendo el
concepto, Elaine Richinsertar ofrece otro concepto, un poco mas
pragmatico, el cual dice
que “La Inteligencia Artificial es el estudio de como hacer que las
computadoras realicen
20 CAPITULO 2. ESTADO DEL ARTE
actividades en las que, hasta este momento, las personas son
mejores realizandolas.”
Tareas como la ejecucion de muchos calculos en un corto perodo de
tiempo son los
puntos fuertes de las computadoras digitales. En este sentido,
superan a los humanos
por mucho. Sin embargo, en muchas otras areas los humanos son muy
superiores a las
maquinas. Por ejemplo, una persona que ingresa a una habitacion
desconocida reconocera
el entorno en fracciones de segundo y, si es necesario, tomara las
decisiones y planificara
las acciones que deba hacer con la misma rapidez. Hasta la fecha,
esta tarea es demasiado
exigente para los robots autonomos.
La fuerza particular de la inteligencia humana es la adaptabilidad.
Somos capaces de
adaptarnos a diversas condiciones ambientales y cambiar nuestro
comportamiento en con-
secuencia a traves del aprendizaje. Precisamente porque nuestra
capacidad de aprendizaje
es muy superior a la de las computadoras, el aprendizaje automatico
es, segun la definicion
de Rich, un subcampo central de la IA, tal y como lo mencionaba uno
de los procesos del
Test de Turing. Al final, el concepto inteligencia artificial
radica en la capacidad en una
maquina de realizar tareas que los seres humanos realizan, o
mejorar la ejecucion de las
mismas, hablando de velocidad o eficiencia.
Captulo 3
Marco teorico
3.1. Inteligencia artificial
Encontrar un inicio de la Inteligencia Artificial es una tarea
difcil. Sin embargo, el
principio de esta ciencia podra situarse en 1943, gracias a Warren
McCulloch y Walter
Pitts, quienes con sus trabajos en los que proponan el primer
modelo de red neuronal
artificial parecen haber dado en el clavo de toda esta
investigacion. El modelo era bastante
simple, pero McCulloch y Pitts demostraron que era capaz de
aprender y resolver funciones
logicas.
Desde esa decada hasta mediados de los 80’s hubo un extrano
ausentismo de inves-
tigacion respecto a la IA. Pero mientras ese tiempo pasaba, Alan
Turing publico el ya
mencionado artculo “Computing Machinery and Intelligence” en 1950,
y anos despues
Turing participara en la creacion del primer programa capaz de
jugar al ajedrez. A partir
de que se considera a Turing como el pionero de la investigacion,
el termino Inteligen-
cia Artificial fue acunado por el tambien ya mencionado John
McCarthy, que posterior
inventara el lenguaje LISP, considerado el lenguaje de la IA, y con
ayuda de cientficos
como Minsky, Claude, Shannon o Newell convocaron una conferencia de
dos meses en
Dartmounth College, donde se reunieron los mejores investigadores,
dando lugar a la era
moderna del IA.
Desafortunadamente, el impulso inicial y la euforia de esta
conferencia fueron des-
apareciendo de a poco al constatarse que los resultados y objetivos
que se pusieron a la
21
22 CAPITULO 3. MARCO TEORICO
IA se iban cumpliendo. Haba maquinas capaces de jugar ajedrez y
resolver problemas
sencillos, pero ninguna llegaba a vislumbrar el nacimiento de una
maquina pensante. Las
investigaciones fueron decayendo, y por eso mismo pocas
investigaciones invertan tiempo
y dinero.
A principios de los 80’s, los sistemas expertos hicieron retomar el
cauce de la inves-
tigacion, sobre todo porque su aplicacion directa a la industria.
La industria americana
invirtio millones de dolares en crear sistemas expertos de todo
tipo, pero no fue hasta
mediados de esa epoca donde las redes neuronales para provocar un
nuevo giro en la in-
vestigacion de la IA. Ya en los 90’s, nuevos avances como las redes
ocultas de Markov, las
redes probabilsticas tales como redes bayesianas, los agentes
inteligentes y otras tecnicas
novedosas llevaron a la IA a un nuevo nivel en el que sus
aplicaciones comienzan a estar
cada vez mas presentes en la vida de las personas.
En la actualidad, son muchas las universidades que dedican
presupuesto a la investi-
gacion en este campo, pero sobre todo la iniciativa privada toma la
batuta en este rubro.
Empresas como Google, Apple, y otras instituciones invierten
grandes cantidades de dine-
ro. La aparicion del internet fue fundamental, cuya gran cantidad
de informacion facilita
el acceso a grandes cantidades de datos analizables, y a su vez,
esta gran cantidad de datos
demanda nuevas tecnicas de analisis. Por ejemplo, el mismo Google
que, debido a todas
las busquedas en su servidor, analiza todos los clics de los
usuarios y va aprendiendo en
cuanto a lo que mas la interesa a la sociedad, a las regiones, y as
ir mejorando los motores
de busqueda y sus resultados.
Otro ejemplo claro es la lucha contra el spam o correo basura. Es
un hecho, el uso de
ciertos clasificadores y otras tecnicas probabilsticas se muestran
muy eficaces en contra de
dicho mal. De la mano, el mercado de consumo, en este caso los
smartphones, que incluyen
en su sistema operativo los conocidos asistentes personales, cuya
programacion esta basada
en reconocimiento de voz, mismo que se usa para realizar tareas, o
incluso conversar.
Tambien existe el reconocimiento facial en las fotografas,
utilizado para cuestiones de
seguridad o para simple entretenimiento en las redes sociales y
como ese, muchos mas
ejemplos de la IA.
Tambien la IA se esta empezando a implementar en la industria
automovilstica, que
3.1. INTELIGENCIA ARTIFICIAL 23
trabaja en servicios de coches autonomos que conducen solos o que
son entrenados para
prever situaciones complicadas y actuar ante adversidades. Tambien
incorporan el recono-
cimiento del habla, lo cual en un futuro posibilitara conducir el
automovil con solo darle
indicaciones por voz. Y los ejemplos siguen y siguen y con ello las
posibilidades de evolu-
cion mientras el avance de la tecnologa continue. La siguiente
enumeracion muestra un
resumen sobre los hechos historicos de la Inteligencia
Artificial:
1931 El austriaco Kurt Godel muestra que en la logica de predicados
de primer orden
todas las afirmaciones verdaderas son derivables. En las logicas de
orden superior,
por otro lado, hay ciertas declaraciones que no son
demostrables.
1937 Alan Turing senala los lmites de las maquinas inteligentes con
el problema de la
detencion.
1943 McCulloch y Pitts modelan redes neuronales y hacen la conexion
con la logica
proposicional.
1950 Alan Turing define la inteligencia de la maquina con la prueba
de Turing y escribe
sobre maquinas de aprendizaje y algoritmos geneticos.
1951 Marvin Minsky desarrolla una maquina de red neuronal. Con 3000
tubos de vaco
el simula 40 neuronas.
1955 Arthur Samuel (IBM) construye un programa de aprendizaje de
ajedrez que juega
mejor que su desarrollador.
1956 McCarthy organiza una conferencia en el Dartmouth College. Aqu
se introdujo
por primera vez el nombre de Inteligencia Artificial. Newell y
Simon de la Univer-
sidad Carnegie Mellon (CMU) presentan el teorico de la logica, el
primer programa
informatico de procesamiento de smbolos.
1958 McCarthy inventa en el MIT (Instituto de Tecnologa de
Massachusetts) el lenguaje
de aton nivel LISP. Escribe programas que son capaces de
modificarse.
1959 Gelernter (IBM) construye el Proyector de teoras de
geometra.
24 CAPITULO 3. MARCO TEORICO
9161 The General ProblemSolver (GPS) de Newell y Simon imita el
pensamiento hu-
mano.
1963 McCarthy funda el laboratorio de inteligencia artificial en la
Universidad de Stan-
ford.
1965 Robinson inventa el calculo de resolucion para la logica de
predicado.
1966 El programa de Weizenbaum, Eliza, lleva a cabo dialogos con
personas en lenguaje
natural.
1969 Minsky y Papert muestran en su libro Perceptrons que el
perceptron, una red
neuronal muy simple, solo puede representar funciones
lineales.
1972 El cientfico frances Alain Colmerauer inventa el lenguaje de
programacion logi-
co PROLOG. El medico britanico Dombal desarrolla un sistema experto
para el
diagnostico del dolor abdominal agudo, pero pasa desapercibido en
la comunidad de
la IA de la epoca.
1976 Shortliffe y Buchanan desarrollan MYCIN, un sistema experto
para el diagnostico
de enfermedades infecciosas, que es capaz de hacer frente a la
incertidumbre.
1981 Japon comienza, a un alto costo, el ”Proyecto de Quinta
Generacioncon el objetivo
de construir una poderosa maquina PROLOG.
1982 R1, el sistema experto para configurar computadoras, le ahorra
a Digital Equipment
Corporation 40 millones de dolares por ano.
1986 Renacimiento de las redes neuronales a traves de, entre otros,
Rumelhart, Hinton
y Sejnowski. El sistema Nettalk aprende a leer textos en voz
alta.
1990 Pearl, Cheeseman, Whittaker, Spiegelhalter introducen la teora
de la probabilidad
en IA con redes bayesianas. Los sistemas multiagente se vuelven
populares.
1992 El programa Tesauros TD-gammon demuestra las ventajas del
aprendizaje por
refuerzo.
3.1. INTELIGENCIA ARTIFICIAL 25
1993 Iniciativa mundial de RoboCup para construir robots autonomos
de juego de futbol.
1995 Desde la teora del aprendizaje estadstico, Vapnik desarrolla
maquinas de vectores
de soporte, que sonmuy importantes hoy en da.
1997 El ordenador de ajedrez de IBM, Deep Blue, derrota al campeon
mundial de ajedrez
Gary Kasparov. Primera competicion internacional de RoboCup en
Japon.
2003 Los robots en RoboCup demuestran de manera impresionante lo
que la IA y la
robotica son capaces de lograr.
2006 La robotica de servicios se convierte en un area importante de
investigacion de
inteligencia artificial.
2010 Los robots autonomos comienzan a conocer sus polticas.
2011 El programa de comprension de preguntas y respuesta a
preguntas naturales de
IBM “Watson” derrota a dos humanos campeones en el programa de
preguntas de
television ”Jeopardy!”[8]
3.1.1. Reconocimiento de patrones
El reconocimiento de patrones es una de las ramas mas
representativas de la Inteli-
gencia Artificial. El reconocimiento de patrones es nativo de los
seres humanos. Desde
pequenos, los seres humanos son capaces de reconocer patrones, como
el sonido de la voz
de los padres o el color de los objetos. De ah se busca que los
ordenadores y las maquinas
inteligentes tengan la capacidad de hacer lo mismo, y procesar en
tiempo real la infor-
macion y aplicarlo. Hablando de reconocimiento como rama de IA, el
reconocimiento de
patrones podra definirse como la ciencia que relaciona objetos
fsicos y/o abstractos, con el
proposito de extraer informacion que permita establecer propiedades
de o entre conjuntos
de dichos objetos. Existen distintos enfoques del reconocimiento de
patrones:
Reconocimiento Estadstico de Patrones: Este enfoque se basa en la
teora de
probabilidad y estadstica. Supone que se tiene un conjunto de
medidas numericas con
26 CAPITULO 3. MARCO TEORICO
distribuciones de probabilidad conocidas, de las cuales a partir de
ellas se hace el recono-
cimiento.
Reconocimiento Sintactico de Patrones: Este enfoque se basa en
encontrar las
relaciones estructurales que guardan los objetos de estudio,
utilizando la teora de lenguajes
formales. El objetivo es construir una gramatica que describa la
estructura del universo
de objetos.
Redes Neuronales: Este enfoque supone que tiene una estructura de
neuronas in-
terconectadas que se estimulan unas a otras, las cuales pueden ser
“entrenadas” para dar
una cierta respuesta cuando se le presentan determinados
valores.
Reconocimiento Logico Combinatorio de Patrones: Este enfoque se
basa en la
idea de que la modelacion del problema debe ser lo mas cercana
posible a la realidad de
este, sin hacer suposiciones que no esten fundamentadas. Uno de los
aspectos esenciales
del enfoque es que las caractersticas.
Como ya se comento, de los aspectos importantes del reconocimiento
de patrones es
su potencial de aplicacion. Se ha utilizado en una gran variedad de
areas, incluyendo agri-
cultura, educacion, seguridad, transporte, finanzas, medicina y
entretenimiento. Existen
aplicaciones especficas que se encuentran en el campo de la
biometra, bioinformatica,
analisis de datos multimedia, reconocimiento de documentos,
diagnostico de fallos, y sis-
temas expertos. La clasificacion es una idea tan fundamental para
los humanos que el
reconocimiento de patrones naturalmente encuentra un lugar en
cualquier campo. El reco-
nocimiento de patrones, independientemente del tipo que sea, se
integra por tres etapas que
son: seleccion de variables, metodo de seleccion de variables, y
clasificacion de variables.
Seleccion de variables
Consiste en determinar cual es el conjunto de caractersticas mas
adecuado para describir
a los objetos. La seleccion de variables tiene dos usos distintos,
para la clasificacion y para
la representacion. La seleccion de variables para la clasificacion
selecciona caractersticas
relevantes a partir de un conjunto total de caractersticas que
describen los objetos. Se
hace con dos motivos fundamentales, mejorar la clasificacion y/o
aumentar la velocidad
de procesamiento. La seleccion de variables para la representacion
se enfoca en decidir
cuales caractersticas representan mejor a cierto tipo de
objetos.
3.1. INTELIGENCIA ARTIFICIAL 27
Las estrategias de seleccion de variables se dividen en dos:
Wrapper, donde la seleccion
de caractersticas se hace usando informacion del mecanismo de
clasificacion, y filter,
donde la seleccion se hace con un criterio independiente del
clasificador (ver figura 3).
Los metodos de seleccion de variables son tres:
1. Tablas de Decision: Se busca un subconjunto mnimo de variables
que no intro-
duzca confusion entre clases.
2. ID3:Se crea un arbol de decision y se selecciona un conjunto de
variables que permita
discriminar entre clases.
3. Teora de Testores: Se buscan todos los subconjuntos de variables
discriminantes
minimales, con estos se evalua la relevancia de cada variable y se
seleccionan aquellas
con mayor relevancia.
Figura 3. Diagrama a bloques del proceso de seleccion de
variables.
Clasificacion de variables Es posible realizar la clasificacion de
variables a traves
de clasificacion no supervisada y clasificacion supervisada.
• Clasificacion no supervisada
Dada una muestra de objetos no clasificados, el sistema obtiene la
estructuracion
en clases de dicha muestra. Existe la clasificacion restringida,
donde el numero de
28 CAPITULO 3. MARCO TEORICO
clases en la que se estructurara la muestra esta previamente
definido, y la clasifica-
cion libre, donde el numero de clases en la que se estructurara la
muestra depende
exclusivamente de los datos.
Las estrategias para la clasificacion no supervisada son
jerarquicas, que puede ser
divisiva o aglomerara, de reagrupamiento, que hace un primer
agrupamiento y se
va refinando iterativamente, y logico combinatorio, que define
ciertas condiciones
que deben cumplir los agrupamientos y se buscan los grupos que las
cumplan.
Los metodos de clasificacion no supervisada son Simple Link y
Complete Link,
que parten de grupos unitarios de objetos y van uniendo los grupos
mas parecidos
en cada etapa, hasta cumplir alguna condicion. El metodo ISODATA,
que se van
formando grupos que se ajustan iterativamente usando teora de
probabilidades, en
algunas versiones se puede hacer la union o division de algun grupo
(ver figura 4). El
metodo C-means, se define un grupo de semillas, se asocia cada
objeto al grupo de
la semilla mas parecida, se toman los centroides de cada grupo como
nuevas semillas
y se itera hasta que se estabilice. Y los Criterios Logico
Combinatorios, donde
los criterios que se imponen a los grupos son tales como ser
conexos, completos
maximales, compactos, etc.
Figura 4. Diagrama a bloques de los tipos de clasificacion no
supervisada.
Clasificacion supervisada: La clasificacion supervisada utiliza
varios metodos;
3.1. INTELIGENCIA ARTIFICIAL 29
uno es Superficies de Separacion Se suponen los objetos en Rny se
busca un
conjunto de superficies que separen a las clases Funciones
discriminantes donde
son dos clases, se busca obtener una funcion g tal que para un
nuevo objeto O, sig
(O)=>0 se asigna a la clase 1 y en otro caso a la 2. Si son
multiples clases se busca
un conjunto de funciones giy el nuevo objeto se ubica en la clase
donde la funcion
tome el mayor valor; Vecino mas cercano donde un nuevo objeto se
ubica en la
clase donde este el objeto de la muestra original que mas se le
parece, y el metodo de
redes neuronales, en el cual se entrena una red de neuronas
interconectadas, con
los ejemplos para cada clase, con esto al presentarle un objeto
nuevo en sus entradas
la red dara como resultado la clase a la cual pertenece. [9]
3.1.2. Redes neuronales
El objetivo de este proyecto radica en usar una rama del
reconocimiento de patrones,
especficamente la de redes neuronales, aplicado en el area medica.
Basicamente, tomando
parte del concepto de Aizenberg [10], las redes neuronales son
modelos simples del funcio-
namiento del sistema nervioso. Las unidades basicas son las
neuronas, que generalmente
se organizan en capas, como se muestra en la Figura 5.
Figura 5. Estructura de una red neuronal.
30 CAPITULO 3. MARCO TEORICO
Una red neuronal emula el modo en que el cerebro humano procesa la
informacion,
es decir, muchas unidades de procesamiento trabajan
simultaneamente, interconectadas
entre s, simulando versiones abstractas de neuronas. Las unidades
de procesamiento se
organizan en capas. En una red neuronal artificial, normalmente
existen tres: una capa
de entrada, con unidades que representan los campos de entrada, una
o varias capas
ocultas, encargadas de interconexion entre ellas y procesamiento; y
una capa de salida,
con una unidad o unidades que representa el campo o los campos de
destino. Las unidades
se conectan con fuerzas de conexion variables (o
ponderaciones/pesos ponderados). El
procesamiento de datos se resume en que la informacion a la entrada
se presenta en la
primera capa, los valores se propagan desde cada neurona hasta cada
neurona de la capa
siguiente, y finalmente, se enva un resultado desde la capa de
salida.
La red aprende examinando los registros individuales, generando una
prediccion para
cada registro y realizando ajustes a las ponderaciones cuando
realiza una prediccion in-
correcta. Este proceso se repite muchas veces y la red sigue
mejorando sus predicciones
hasta haber alcanzado uno o varios criterios de parada, que pueden
ser aciertos, errores,
tiempo, iteraciones de la red, y demas.
Al inicio del proceso, las ponderaciones son aleatorias y las
respuestas que resultan
de la red son, posiblemente, totalmente equivocas y sin coherencia.
La red aprende a
traves del entrenamiento, esto es, se presenta a la red ejemplos
para los que se conoce
el resultado, y las respuestas que proporciona se comparan con los
resultados conocidos.
La informacion procedente de esta comparacion se pasa hacia atras a
traves de la red,
cambiando las ponderaciones gradualmente, y poco a poco haciendolas
mas precisas a
medida que progresa el entrenamiento en cuanto a resultados
correctos. Una vez entrenada,
la red se puede aplicar a casos futuros en los que se desconoce el
resultado. [11]
En cuanto a investigacion de metodos de reconocimiento de patrones
y de redes neu-
ronales. Actualmente existen muchos grupos con sede en diferentes
universidades de todo
el mundo que estan realizando trabajos de investigacion en el area
de las redes neuronales
artificiales. Cada grupo tiene diferente enfasis y motivacion con
los neurologos, psicologos
del conocimiento, fsicos, programadores y matematicos. Todos ellos
ofrecen nuevos puntos
de vista e intuiciones en esta area de la tecnica.
3.1. INTELIGENCIA ARTIFICIAL 31
Ademas, es importante volver a comentar y resaltar el esfuerzo
economico y tecnico
que estan realizando las empresas privadas, sobre todo en Estados
Unidos, Japon, China,
Rusia y toda Comunidad Economica Europea. Como de muestra de las
inversiones en
estos pases, basta conocer que solo en Estados Unidos se gasta mas
de 100 millones de
dolares al ano, solo en investigacion. [12]
Arquitecturas y aplicaciones de las redes neuronales
Las redes neuronales han ido evolucionando significativamente, y
con este avance, se han
desarrollado distintas arquitecturas de aprendizaje, con distintos
objetivos, virtudes y de-
bilidades, lo que provoca que alguna arquitectura sea mas eficiente
para alguna aplicacion
que otra. A continuacion, se presentan generalidades de las
arquitecturas mas utilizadas
desde los inicios hasta hoy en da.
Entre las decadas de 1950 y 1960 el cientfico Frank Rosenblatt,
inspirado en el trabajo
de Warren McCulloch y Walter Pitts creo el Perceptron, la unidad
desde donde nacera y
se potenciaran las redes neuronales artificiales.
Un perceptron (figura 6) toma varias entradas binarias x1, x2, etc.
y produce una
sola salida binaria. Para calcular la salida, Rosenblatt introduce
el concepto de “pesos
ponderados” w1, w2, etc. un numero real que expresa la importancia
de la respectiva
entrada con la salida. La salida de la neurona sera 1 o 0 si la
suma de la multiplicacion de
pesos por entradas es mayor o menor a un determinado umbral. Sus
principales usos son
decisiones binarias sencillas, o para crear funciones logicas como
OR, AND, etc.
Figura 6. Dibujo representativo de un Perceptron.
Multilayer Perceptron (Perceptron multicapa): En el ano de 1965, el
multilayer
perceptron fue una mejora del perceptron de una unica neurona a mas
de una. Ademas,
32 CAPITULO 3. MARCO TEORICO
aparece el concepto de capas de entrada, oculta y salida, pero con
valores de entrada y
salida binarios. El valor de los pesos como el de umbral de cada
neurona era asignado
manualmente por el cientfico. Cuantos mas perceptrones en las
capas, mucho mas difcil
es conseguir los pesos para obtener salidas deseadas.
Multilayer Perceptron (Perceptron multicapa):En el ano de 1965, el
multilayer
perceptron fue una mejora del perceptron de una unica neurona a mas
de una. Ademas,
aparece el concepto de capas de entrada, oculta y salida, pero con
valores de entrada y
salida binarios. El valor de los pesos como el de umbral de cada
neurona era asignado
manualmente por el cientfico. Cuantos mas perceptrones en las
capas, mucho mas difcil
es conseguir los pesos para obtener salidas deseadas (figura
7).
Figura 7. Dibujo que representa el Multilayer Perceptron.
Redes Feedforward (hacia adelante): Se les llama as a las redes en
que las salidas
de una capa son utilizadas como entradas en la proxima capa. Esto
quiere decir que no hay
ciclos “hacia atras. Siempre sus valores de entrada sin procesados
hacia adelante. Ademas
existe el concepto de Fully Connected Feedforward Networks - Redes
de avance totalmente
conectadas-, que se refiere a que todas las neuronas de entrada
estan conectadas con todas
las neuronas de la siguiente capa.
Redes Backpropagation (propagacion hacia atras): Gracias al
algoritmo de
Backpropagation se hizo posible entrenar redes neuronales de
multiples capas de manera
supervisada. Al calcular el error obtenido en la salida e ir
propagando hacia las capas
anteriores se van haciendo ajustes pequenos (minimizando errores)
en cada iteracion, para
3.1. INTELIGENCIA ARTIFICIAL 33
lograr que la red aprenda y que pueda clasificar las entradas
correctamente mientras mas
se entrene.
Convolutional Neural Networks (Redes Neuronales Convolucionales):
Las
Convolutional Neural Networks son redes multicapas que toman su
inspiracion de la cor-
teza visual de los animales. Esta arquitectura es util en varias
aplicaciones, principalmente
procesamiento de imagenes. La primera CNN fue creada por Yann LeCun
y estaba enfo-
cada en el reconocimiento de letras manuscritas.
La arquitectura constaba de varias capas que implementaban la
extraccion de carac-
tersticas y luego clasificar. La imagen se divide en campos
receptivos que alimentan una
capa convolucional que extrae caractersticas de la imagen de
entrada (detectar lneas ver-
ticales, vertices, etc). El siguiente paso es la agrupacion, que
reduce la dimensionalidad de
las caractersticas extradas manteniendo la informacion mas
importante. Luego se hace
una nueva convolucion y otro reagrupamiento, que alimenta una red
feedforward multica-
pa. La salida final de la red es un grupo de nodos que clasifican
el resultado, Por ejemplo,
un nodo para cada numero del 0 al 9 (es decir, 10 nodos, se activan
de a uno).
Esta arquitectura usando capas profundas y la clasificacion de
salida abrieron un mundo
nuevo de posibilidades en las redes neuronales. Las CNN se usan
tambien en reconocimiento
de video y tareas de Procesamiento del Lenguaje natural (figura
8).
Figura 8. Dibujo que representa una Convolutional Neural
Network.
Long Short Term Memory / Recurrent Neural Network (Memoria a
largo
plazo a largo plazo / red neuronal recurrente): Las redes Long
Short Term Memory
son un tipo de red recurrente. Esta arquitectura permite conexiones
hacia atras entre las
capas. En 1997 se crearon las LSTM que consisten en unas celdas de
memoria que permiten
a la red recordar valores por perodos cortos o largos.
34 CAPITULO 3. MARCO TEORICO
Una celda de memoria contiene compuertas que administran como la
informacion fluye
dentro o fuera. La puerta de entrada controla cuando puede entran
nueva informacion en
la memoria. La puerta volatil controla cuanto tiempo existe y se
retiene esa informacion.
La puerta de salida controla cuando la informacion en la celda es
usada como salida de
la celda. La celda contiene pesos que controlan cada compuerta. El
algoritmo de entrena-
miento (conocido como backpropagation through time -propagacion
hacia atras a traves
del tiempo-) optimiza estos pesos basado en el error de resultado.
Las LSTM se han aplica-
do en reconocimiento de voz, de escritura, escritura de texto por
voz y otras tareas (figura
9)
Figura 9. Dibujo que representa una Long Short Term Memory.
Deep Belief Networks (Red de aprendizaje profundo): Las Deep Belief
Net-
works (figura 10), demostraron que utilizar pesos aleatorios al
inicializar las redes pudiera
ser contraproducente. Por ejemplo, al utilizar redes
Backpropagation con Descenso por gra-
diente muchas veces se caa en mnimos locales, sin lograr optimizar
los pesos. La opcion de
estas redes es utilizar una asignacion de pesos inteligente
mediante un pre-entrenamiento
de las capas de la red.Se basa en el uso de la utilizacion de
Restricted Boltzmann Machi-
nes - Maquinas restringidas de Boltzmann - y Autoencoders –
Autocodificadores - para
pre-entrenar la red de manera no supervisada. Luego de pre-entrenar
y asignar estos pesos
iniciales, se debe entrenar la red de forma habitual de modo
supervisado.
3.1. INTELIGENCIA ARTIFICIAL 35
Generative Adversarial Networks (redes generativas adversas): La
idea detras
de GAN es la de tener dos modelos de redes neuronales compitiendo.
Uno, llamado Ge-
nerador, toma inicialmente (datos basura) como entrada y genera
muestras variadas. El
otro modelo, llamado Discriminador, recibe a la vez muestras del
Generador y del conjun-
to de entrenamiento (real) y debera ser capaz de diferenciar entre
las dos fuentes. Estas
dos redes juegan una partida continua donde el Generador aprende a
producir muestras
mas realistas y el Discriminador aprende a distinguir entre datos
reales y muestras arti-
ficiales. Estas redes son entrenadas simultaneamente para
finalmente lograr que los datos
generados no puedan detectarse de datos reales.
Sus aplicaciones principales son la de generacion de imagenes
realistas, pero tambien la
de mejorar imagenes ya existentes, o generar textos en imagenes, o
generar textos siguiendo
un estilo determinado y hasta desarrollo de moleculas para
industria farmaceutica. [13]
Figura 11. Dibujo que representa una Generative Adversarial
Network.
36 CAPITULO 3. MARCO TEORICO
3.2. Aplicaciones de reconocimiento de patrones
Dentro de esta rama de la inteligencia artificial, existen bastas,
sin embargo, las aplica-
ciones que son consideradas como principales son aquellas que han
tenido un mayor aporte
a la ciencia y continuan creciendo de acuerdo con las
investigaciones.
Dentro de estas aplicaciones, encontramos la deteccion de rostros,
la cual es referida
a reconocer o identificar a una persona en medio de la multitud.
Puede ser usada en
sistemas de seguridad, control de acceso, as como la atencion a
clientes. El software de
reconocimiento facial analizara las imagenes obtenidas, posterior a
ello, seran cotejadas
con imagenes tomadas con anterioridad, de esta manera podemos
conocer la identidad,
preferencias y gustos de las personas de acuerdo con los datos
almacenados.
Figura 12. Reconocimiento de rostros e identificacion de
personas.
Cada persona se caracteriza por diferentes rasgos, as como estilos,
y la forma de
caminar no es exento de ello; por lo que la identificacion de
personas de acuerdo a su
caminar es posible mediante un software el cual identifica la
identidad de la persona que
se esta analizando, es decir, mediante un este software analiza
videos tomados los cuales
son comparados con los datos almacenados encontrando similitudes
las cuales permitiran
conocer la identidad de la persona que corresponde ese caminar;
este aplicativo puede
determinar la duracion del paso, longitud de la zancada, velocidad,
angulo del pie, entre
otros (figura 13).
3.2. APLICACIONES DE RECONOCIMIENTO DE PATRONES 37
Figura 13. Sistema para identificar personas por su manera de
caminar [19].
Con el paso del tiempo la humanidad ha evolucionado debido a la
curiosidad que siente
el humano por conocer su entorno, as como proteger su integridad.
Cabe mencionar que
la naturaleza ha sido estudiada por anos con la finalidad de poder
predecir fenomenos
naturales como por ejemplo las predicciones de terremotos; se basa
en el entrenamiento
de una red neurona l la cual contiene lecturas de diversas
perturbaciones en el suelo las
cuales corresponden a alteraciones que se presentan en las placas
tectonicas, ademas de
ello, se lleva a cabo un estudio de campo de cada fenomeno
telurico, con la finalidad de
entrenar a esta red neuronal y que pueda predecir fenomenos
posteriores.
Como se muestra en la Figura 14, las muestras acusticas que se
presentan son lecturas
obtenidas de estudios realizados a diferentes movientos teluricos,
cabe mencionar que los
cientficos continuan estudiando estos fenomenos, pues lo que buscan
es conseguir la mayor
precision, as como una prediccion exacta del lugar donde se genera
el epicentro y su
magnitud.
As como se estudiaron los movimientos teluricos, los geologos, por
su parte, desarrollan
un sistema cognitivo el cual permite analizar y guiar un paquete
logico, el programa desa-
rrollado permite analizar los datos de exploracion petrolfera
obtenidos mediante senales
electricas, magneticas, nucleares y de audio. Estas senales
permiten conocer si se ha obte-
nido petroleo, gas, agua o simplemente el pozo se encuentra vaco
(figura 15).
38 CAPITULO 3. MARCO TEORICO
Figura 14. Senales de vibracion generadas por fenomenos
teluricos.
Figura 15. Perforacion de pozos petroleros asistido.
Los aplicativos enfocados a la industria; podemos encontrar la
automatizacion en la
lnea de ensamblaje siendo utilizados en diversos ambitos, desde el
soldado de un circuito
integrado hasta el ensamblaje de un automovil. Cada aplicativo es
enfocado segun las
necesidades a cubrir, por ejemplo, en control de calidad asistido
permitiendo la inspeccion
visual en la lnea de proceso mediante la toma de imagenes en tiempo
real, el sistema
3.2. APLICACIONES DE RECONOCIMIENTO DE PATRONES 39
analizara si posee un ensamble adecuado y optimo para que esta
pueda salir al mercado de
venta, en caso de que la pieza analizada no sea apta, este
aplicativo la detecta y enviara
una senal de alerta al operador con la finalidad de que esta pieza
sea retirada, por otro
lado, en la industria automotriz, la automatizacion se enfoca al
armado de pequenas piezas,
ademas de ser brindar apoyo en el armado de los autos.
Figura 16. Automatizacion en lnea de ensamblaje.
Actualmente, una de las aplicaciones mas usadas es el
reconocimiento de voz. Esta
aplicacion consiste en el reconocimiento de los acordes y tono de
la voz los cuales deberan
de ser codificados, as como reconocidos por el por el software.
Para que el software pueda
reconocer la voz del usuario, previamente se debe de almacenar un
registro dentro de lavase
de datos, posterior a ello, la nueva onda sonora sera comprara con
la base de datos. De
esta manera el aplicativo podra reconocer al usuario.
Figura 17. Reconocimiento de voz.
40 CAPITULO 3. MARCO TEORICO
En la vida cotidiana es indispensable el manejo de los diferentes
dispositivos mediante
el reconocimiento de voz, ademas de este aplicativo, podemos
encontrar el reconocimiento
de caracteres el cual nos permite transformar textos fsicos a
textos en electronico, logrando
mayor accesibilidad y mejor manejo de estos.
Conforme la ciencia avanza, la necesidad de tener al alcance
diagnosticos certeros ha
aumentado; su enfoque principal es desarrollar aplicativos que
apoyen a los medicos al
diagnosticar al paciente. Dentro de estos aplicativos se encuentra
el analisis que se realiza
al iris para identificar ciertos problemas que lo aquejan, ademas
de este, se encuentran las
mastografas, rayos x, tomografas, ecografas, electrocardiogramas y
electroencefalogra-
mas.
3.2.1. Arritmias cardiacas
Cada una de estas aplicaciones, pasan por un proceso de aprendizaje
y comparacion
de datos; el electrocardiograma, por ejemplo, es uno de los
analisis mas confiables que
ayudan a conocer los males que presenta el corazon como lo son las
arritmias cardiacas.
Las arritmias cardiacas son aquellas anormalidades que se presentan
por la alteracion
de la frecuencia o ritmos cardiacos. Generalmente se presentan
cuando el pulso electrico
3.2. APLICACIONES DE RECONOCIMIENTO DE PATRONES 41
no es generado de manera correcta, cuando este pulso es generado en
un lugar erroneo e
incluso, cuando los caminos para dicha conduccion electrica se
encuentran alterados.
Ademas de ello, otros factores que detonan las arritmias son la
constante actividad fsica
o por la ausencia de esta, emociones fuertes, dolor, consumo de
alcohol, cafena, drogas
estimulantes, medicamentos para tratar presion arterial, as como
para el tratamiento de
otras afecciones en el corazon, el alto consumo de nicotina y
medicamento que se utilizan
para tratamientos de depresion y/o psicosis.
Se considera que, en reposo, un ritmo cardiaco normal se encuentra
entre los 60 y
100 latidos por minuto; ademas, se dividen en dos categoras, de
acuerdo con el lugar
del corazon en donde se encuentre la alteracion, es decir, se
dividen en ventriculares y
supraventriculares, las cuales se describen a continuacion.
3.2.2. Tipos de arritmias
Ritmo normal Sinusual
El ritmo cardiaco que presenta una persona sana, en reposo, se
localiza entre los 60 y 100
latidos por minuto; y se identifica mediante las ondas P que se
muestran en el electro-
cardiograma, las cuales se caracterizan por ser ondas pequenas y de
bajo voltaje. En la
Figura 19 se muestra la lectura que arroja un electrocardiograma,
el cual muestra que el
paciente es sano y posee un ritmo normal.
Figura 19. Lectura tomada de un electrocardiograma de un paciente
sano.
Bradicardia sinusal
Caracterizada principalmente por las bajas frecuencias cardiacas
(menos de 60 latidos
por minuto), esta afeccion se presenta cuando el pulso electrico
que genera la contraccion
42 CAPITULO 3. MARCO TEORICO
del corazon no es generado en el marcapasos natural, ademas de que
no es enviado a las
cavidades inferiores por las vas principales provocando que reduzca
sus impulsos electricos;
ademas de ello, se presenta al tener una pausa la cual impide
enviar los impulsos electricos
y ser tomados de forma normal.
Figura 20. Lectura de paciente que presenta bradicardia
sinusal.
El corazon se encuentra dividido en dos partes, en cada una de
estas ubicaciones,
se llega a detectar arritmias las cuales de denominan ventriculares
y supraventriculares,
de acuerdo con el lugar en donde se presenten estas anomalidades
cardiacas, reciben su
nombre.
Arritmias ventriculares
Son aquellas afecciones que se generan en las cavidades inferiores
del corazon como se
muestra en la Figura 21. Este tipo de arritmias se caracteriza por
presentar senales electri-
cas anormales y en algunos casos, estos ritmos cardiacos aumentan e
incluso llegan a
ocasionar que el corazon se detenga por breves segundos.
Figura 21. Ubicacion donde se generan las arritmias
ventriculares.
3.2. APLICACIONES DE RECONOCIMIENTO DE PATRONES 43
Taquicardia ventricular o taquicardia sinusal
Este tipo de taquicardia se presenta cuando las lecturas el ritmo
cardiaco supera los 100
latidos por minuto, ademas, no se generan de manera ordenada, no
son controlados tienden
a presentarse en cualquier punto de la pared ventricular siendo
transmitidos al corazon
por vas alternas. Cuando las senales electricas aumentan, estas
provocan un cambio en el
ritmo cardiaco siendo percibidas como palpitaciones llegado a
provocar falta del aliento,
mareo e incluso desmayo.
La mayora de las causas por las que se desarrollan las taquicardias
sinusales es por el
estres fsico o mental, es decir, al realizar alguna actividad
fsica, subir escaleras, ansiedad,
miedo, susto, etc.
Figura 22. Muestra arrojada por electrocardiograma de paciente que
presenta taqui-
cardia sinusal.
Fibrilacion ventricular
Se ubica como una de las arritmias de mayor gravedad, pues, los
pulsos electricos se
producen en diferentes puntos de las paredes ventriculares y al
mismo tiempo, los cuales
ocasionan que el corazon lata mucho mas rapido, bombeando poca
sangre al cerebro y
al resto de los organos; estos latidos generados de manera
desordenada y rapida pueden
llegar a registrar en promedio hasta 300 latidos por minuto.
44 CAPITULO 3. MARCO TEORICO
Figura 23. Paciente diagnosticado con fibrilacion
ventricular.
Contracciones Ventriculares prematuras
Esta afeccion aparece cuando los ventrculos cardiacos se contraen
antes de terminar su
secuencia, es decir, se presenta el pulso cardiaco fuera de la red
electrica produciendo
estas palpitaciones, las cuales desaparecen al poco tiempo. Por lo
general este tipo de
afeccion se presenta en pacientes con antecedentes de males
cardiacos y aquellas personas
que consumen tabaco, alcohol, cafena, te, chocolate, as como
medicamentos para la gripa.
Figura 24. Muestra de electrocardiograma con lecturas de
Contracciones Ventricu-
lares prematuras.
Arritmias supraventriculares
Las arritmias supraventriculares se presentan en las cavidades
superiores del corazon como
se muestra en la Figura 25. Cabe mencionar que se caracterizan por
presentar latidos
anormalmente rapidos y por lo general, son causadas por el consumo
de alcohol, tabaco,
medicamentos para la gripa, cardiopata reumatica y glandula
tiroides hiperactiva. Este
tipo de afeccion llega a provocar falta de aliento, palpitaciones
cardiacas, presion en el
pecho y aceleracion en el pulso.
3.2. APLICACIONES DE RECONOCIMIENTO DE PATRONES 45
Figura 25. Ubicacion donde se generan las arritmias
supraventriculares.
Presentan senales electricas anormales en las cavidades superiores
del corazon, interfi-
riendo con la senal electrica que genera el marcapasos natural,
provocando que los latidos
de las cavidades superiores aumenten la frecuencia cardiaca y
registrando rangos desde los
150 a 250 latidos por minuto.
Figura 26. Electrocardiograma con lecturas anormales y de acuerdo
con una arritmia
supraventricular.
Fibrilacion auricular
Presenta un ritmo rapido e irregular, debido a movimientos
consecutivos de las fibras que
se encuentran en el corazon, este padecimiento, puede generar la
acumulacion de sangre
en las cavidades superiores del corazon ocasionando coagulos los
cuales pueden llegar a
tapar alguna arteria pequena.
46 CAPITULO 3. MARCO TEORICO
Figura 27. Electrocardiograma con lecturas anormales y de acuerdo
con una fibrila-
cion auricular.
Sndrome de Wolff-Parkinson-White
Este sndrome se presenta cuando el corazon del paciente presenta
vas de conduccion
electrica adicionales, lo que genera pulsos electricos los cuales
viajan a mayor velocidad
generando una frecuencia cardiaca elevada
Figura 28. Electrocardiograma con lecturas de paciente que presenta
Sndrome de
Wolff-Parkinson-White.
Aleteo auricular
Este padecimiento se presenta al generarse un ritmo cardiaco
acelerado lo que provoca que
los ventrculos latan de manera ineficiente, otra variacion de este
mal, son las contracciones
supraventriculares prematuras, las cuales se contraen a destiempo
lo que provoca un ritmo
cardiaco irregular.
3.2. APLICACIONES DE RECONOCIMIENTO DE PATRONES 47
Bloqueo cardiaco
Los bloqueos cardiacos se deben principalmente al proceso de
envejecimiento a una hin-
chazon o cicatrices del corazon que son ocasionadas por
enfermedades arteriales. Se derivan
varios tipos de bloqueos, algunos se caracterizan por presentar
pulsos cardiacos lentos, re-
traso e incluso ausencia de estos por un periodo relativamente
largo.
Figura 30. Muestra de lecturas referidas a un bloqueo
cardiaco.
Para la deteccion de arritmias cardiacas se conocen diferentes
metodos de deteccion, sin
embargo, entre los mas destacables se encuentra el
electrocardiograma, el cual es uno de
los metodos con mayor eficacia dentro de la medicina, permite
visualizar el ritmo cardiaco
mediante la amplificacion de los impulsos electricos que genera el
corazon, estos impulsos
electricos, son registrados en un papel que se mantiene en
constante movimiento. Mediante
el analisis del marcapasos, las vas nerviosas de conduccion de los
estmulos, la frecuencia
y el ritmo cardiaco, permite conocer ritmos anormales, llegada
insuficiente de sangre y
oxgeno al corazon ademas logra identificar cuando el musculo
cardiaco es muy grueso o
delgado.
Posterior a las pruebas, este metodo muestra 12 vistas diferentes
de la misma acti-
vidad electrica, o mejor conocidas como derivaciones
electrocardiograficas, las cuales se
componen de tres derivaciones estandares, tres derivaciones
aumentadas que muestran el
corazon en un plano frontal y seis derivaciones precordiales o
toracicas, las cuales muestran
el corazon en un plano horizontal.
Las derivaciones estandares o derivaciones bipolares, se obtienen
por medio de un
diferencial de potencial que se logra por medio de un par de
electrodos conectados a las
extremidades, logrando as una relacion entre la altura y la
profundidad.
48 CAPITULO 3. MARCO TEORICO
Para la obtencion de las tres primeras derivaciones, se obtienen
conectando electrodos
de la siguiente manera:
Derivacion I: El brazo izquierdo (polo positivo) y en el brazo
derecho (polo negativo).
Figura 31. Derivacion I.
Derivacion II: Los electrodos estaran conectados en el brazo
derecho (polo negativo) y
en la pierna izquierda (polo positivo).
Figura 32. Derivacion II .
Derivacion III: Se conectaran los electrodos en el brazo izquierdo
(polo negativo) y en
la pierna izquierda (polo positivo)
3.2. APLICACIONES DE RECONOCIMIENTO DE PATRONES 49
Figura 33. Derivacion III.
Por otro lado, el segundo bloque, se denominan derivaciones
aumentadas, las cuales
son consideradas como derivaciones unipolares ya que incluyen un
electrodo positivo que
es ubicado en el brazo izquierdo, derecho o en la pierna izquierda,
registrando el potencial
electrico en un punto especfico con referencia de las dos
derivaciones restantes.
Derivacion AVR: Se registra la actividad electrica del corazon
desde el brazo derecho.
Esto se debe a que el electrodo del brazo derecho es el electrodo
positivo o con voltaje
aumentado con respecto a los electrodos del brazo y pierna
izquierda.
Figura 34. Derivacion AVR .
Derivacion AVL: La actividad electrica del corazon registrada,
proviene desde el brazo
izquierdo ya que este, es el electrodo positivo con respecto a los
electrodos ubicados en el
brazo derecho y en la pierna izquierda.
50 CAPITULO 3. MARCO TEORICO
Figura 35. Derivacion AVL .
Derivacion AVF: La lectura de la actividad electrica, se obtiene
desde la base del
corazon, es decir, el electrodo positivo se encuentra en la
extremidad inferior izquierda
en cambio, los dos electrodos restantes, son ubicados en el brazo
izquierdo y en el brazo
derecho.
Las seis derivaciones faltantes se denominan derivaciones
precordiales que van tipifi-
cadas de V1 hasta V6, estas derivaciones registran la actividad del
corazon en el plano
horizontal las cuales se obtienen colocando los electrodos como se
muestran en la Figura
37.
Se toma como referencia el 4to espacio intercostal, en donde
obtendremos V1 que se
ubica a la derecha del esternon, por otra parte, a la izquierda del
esternon encontraremos
la lectura tipificada como V2. Para V3, su posicionamiento estara
entre V2 y V4, la cual
3.2. APLICACIONES DE RECONOCIMIENTO DE PATRONES 51
se encuentra en el 5to espacio intercostal o lnea medio clavicular
izquierda. Al igual que
V4, V5 se encuentra en el 5to espacio intercostal solo que estara
ubicado sobre la lnea
axilar anterior izquierda. Finalmente, V6, sera encontrada en el
5to espacio intercostal,
sobre la lnea medio axilar izquierda. Otro metodo caracterstico es
la prueba de esfuerzo
cuya finalidad es conocer la existencia y gravedad de enfermedades
coronarias y de otros
trastornos cardiacos, los cuales no se presentan cuando se esta en
reposo. Consiste en
aumentar el ritmo cardiaco mediante pedalear una bicicleta o estar
en una banda rotativa,
lo cual permitira que el ritmo cardiaco aumente gradualmente
provocando que la lectura
del ECG se controle de forma continua hasta que la frecuencia
cardiaca alcance entre los
80 y 90 por ciento del valor posible de acuerdo con la edad y sexo
(figura 38).
Figura 37. Lectura, Comprension e Interpretacion del
Electrocardiograma [21]. De-
rivaciones precordiales.
Figura 38. Prueba de esfuerzo.
52 CAPITULO 3. MARCO TEORICO
Un electrocardiogramas ambulatorio o continuo, es un pequeno
aparato que el paciente
porta las 24 horas del da, registrando la hora exacta y el sntoma
que se presenta, estos
resultados son procesados mediante un equipo de computo el cual
analiza los cambios en
la actividad electrica que se presentaron durante ese tiempo.
Figura 39. Electrocardiograma ambulatorio.
3.3. MatLab
Es un software el cual ofrece un entorno de desarrollo integrado
mediante un lenguaje
de programacion. Este software esta disponible para diferentes
plataformas como lo es
Unix, Windows, Mac OS X y Linux. Posee dos herramientas adicionales
las cuales son
Simulink y GUIDE las cuales son utilizadas para la simulacion
multidominio, as como la
edicion de interfases de usuarios.
Entre las versatilidades del lenguaje, admite realizar diferentes
funciones u operaciones
como vectores, matrices y programacion orientada a objetos entre
otros. Sus graficos,
permiten visualizar los datos en 2D y 3D.
Este software permite analizar y desarrollar aplicativos orientados
al analisis de da-
tos, vision artificial, procesamiento de senales, finanzas
cuantitativas, gestion de riesgo,
robotica, as como sistemas de control.
Este software permite analizar y desarrollar aplicativos orientados
al analisis de datos,
vision artificial, procesamiento de senales, finanzas
cuantitativas, gestion de riesgo, robotica
as como sistemas de control.
Requisitos del sistema:
Disco duro de 4 a 8 GB destinados solo para MatLab
3.3. MATLAB 53
Memoria RAM: 4 GB preferentemente
Tarjeta de graficos: OpenGL 3.3 recomendado con 1 GB en GPU.
Procesador: Intel o AMD preferentemente de x86 a 64 bits
Sistema operativo:
Linux: Kemel 2.6 en adelante y glibc 2.11 en adelante
Captulo 4
Desarrollo de la propuesta
La investigacion desarrollada es una investigacion de aplicacion en
el ramo tecnologico,
con un diseno de caracter cuasi-experimental, es decir, consiste en
la distincion de los
grupos en los que se prueba una variable, sin ningun tipo de
seleccion aleatoria o proceso
de pre-seleccion. La poblacion a la que se dirige esta propuesta es
a un sector socio-
economico de clase baja, en donde tal vez no sea posible obtener
inmediatamente una
prueba de laboratorio, debido a las distancias de traslado o el
costo que puede representar;
sin embargo, la simplicidad del manejo de la interfaz permite ser
un apoyo para cualquier
tipo de clnica, sea publica o privada. Incluso puede ser una
herramienta para usuarios
sin ningun conocimiento medico, que sospechen que pudieran tener
algun problema del
corazon.
El enfoque de este proyecto es generar una interfaz, basada en
redes neuronales, donde el
doctor pueda ingresar los datos del ritmo cardiaco del paciente, y
que sea una herramienta
certera para diagnosticar alguna posible arritmia. El diagnostico
otorgado por tal interfaz
es semiautomatico, es decir, que depende del ingreso de datos del
usuario para poder
realizar las acciones pertinentes. Para lograr esto, el primer paso
fue definir el software
donde se iba a generar la red neuronal. El software utilizado fue
Matlab gracias a las
ventajas que ofrece. Una de las mas llamativas es la herramienta
para simulacion de redes
neuronales nntool. Esta herramienta permite generar la arquitectura
deseada de la red
neuronal y los parametros de entrenamiento de la misma, donde el
usuario ingresara los
datos de entrada y las salidas deseadas. La herramienta ya genera
los pesos ponderados,
54
55
y despues del entrenamiento genera los datos de salida, as como los
errores.
Figura 40. Ventana para configurar una nueva red neuronal dentro de
la herramienta
nntool.
La ventana mostrada en la Figura 40 es la que aparece en la
herramienta cuando se
desea parametrizar la arquitectura de la red neuronal. Name permite
nombrar la red neu-
ronal. Network Type arroja opciones de arquitecturas de redes
neuronales. En el ejemplo
mostrado aparece la red tipo Feed-Forward Backpropagation, cuya
estructura fue utilizada
en este proyecto. Ademas, la herramienta nntool permite seleccionar
el archivo de entrada
(Input Data), el archivo que contiene los datos a los que se
quieren llegar despues del entre-
namiento (target data), la funcion de entrenamiento, la funcion de
aprendizaje, la funcion
de rendimiento y el numero de capas de la red neuronal (Training
function, Adaptation
56 CAPITULO 4. DESARROLLO DE LA PROPUESTA
Learning Function, Performance Function, Number of Layers), capas
que pueden confi-
gurarse independientemente, en cuanto a numero de neuronas y
funcion de transferencia
(Number of neurons, transfer function) que utilizara cada capa, sea
lineal, logartmica-
sigmoidal o tangencial-sigmoidal.
Las arritmias cardiacas tienen numerosas categoras, cada una
representa un pade-
cimiento distinto, as como las causas que lo provocan. Este
proyecto solo se enfoca en
apoyar en el diagnostico de cinco posibles tipos de estado del
ritmo cardiaco:
1. Ritmo normal sinusal
2. Bradicardia sinusal
3. Taquicardia sinusal
4. Ritmo cardiaco irregular, con pausa del ritmo en algun momento
del estudio
5. Ritmo totalmente irregular
Existen tres neuronas de entrada, y, por lo tanto, tres datos
numericos a la entrada.
Los datos son los siguientes:
1. Lmite inferior de latidos por minuto
2. Lmite superior de latidos por minuto
3. Si el ritmo cardiaco es regular o no
Existe un limite superior e inferior de latidos por minuto debido a
que una prueba de
frecuencia cardiaca no se hace por solo un minuto, sino que va
desde los 10 hasta los 40
minutos de duracion normalmente. Por eso mismo, la variacion
cardiaca existe de minuto
a minuto. Lo que se tiene que verificar es que la variacion se
encuentre dentro de los lmites
establecidos, para considerar que el corazon esta actuando de
manera correcta. Para poder
entrenar la red neuronal, se utilizaron datos de entrada simulados.
Se generaron aleato-
riamente 50 datos para cada categora de ritmo cardiaco. A pesar de
que la generacion de
datos fue aleatoria, todos esos datos entran dentro del rango que
establece cada una de las
57
categoras de ritmo cardiaco. Por ejemplo, en el ritmo normal
sinusal, generalmente existe
un ritmo de latidos por minuto de entre 60 y 100; los datos
generados aleatoriamente
estan dentro de ese rango. A su vez, los datos aleatorios generados
para la bradicardia
sinusal van desde los 40 a los 60 latidos por minuto. Y as
respectivamente, cada categora
tiene datos aleatorios dentro del rango, lo que es muy util para el
entrenamiento de la
red neuronal, ya que se le estan presentando datos simulados, es
decir, muy cercanos a
los datos que normalmente se arrojan en cada categora al hacer un
electrocardiograma,
siendo 50 pruebas por tipo de ritmo una cantidad bastante
considerable para hacer un
correcto entrenamiento.
Se hicieron en total un numero de siete pruebas para el
entrenamiento de la red neu-
ronal. En cada una de las pruebas, se cambiaban los parametros de
la red, as como los
valores de los parametros para detener el entrenamiento.1
Figura 41. Parametros de entrenamiento de la red neuronal dentro de
la nntool.
En la Figura 41 se muestra un ejemplo de los parametros de
entrenamiento de la
red, que pueden ser ingresados por el usuario. Cada uno de ellos
representa uno de los
aspectos por los que la red neuronal podra detener su
entrenamiento. Las epocas (epochs)
representan el numero de iteraciones de la red neuronal. El tiempo
(time) evidentemente,
puede ser configurable. Los aciertos (goal) son el Valor Cuadratico
Medio (MSE - Media
Square Error, por sus siglas en ingles), y el avance de este
parametro representa que cada
1Los resultados de los siete entrenamientos son mostrados en el
Anexo 2
58 CAPITULO 4. DESARROLLO DE LA PROPUESTA
vez se va perfeccionando mas las salidas que se esperan en la red.
El gradiente mnimo
(min grad) representa una medida de validacion de como la tangente
llega al mnimo, y
el error maximo (max fail) son los valles y crestas por las que
pasa la tangente, que no
necesariamente es el mnimo del error. El objetivo primordial para
el entrenamiento de la
red es que detuviera por aciertos, ya que eso representa que la red
neuronal alcanzo un
numero alto de salidas correctas respecto a las iteraciones, encima
de los otros parametros
para la detencion del entrenamiento de la red.
Todas las redes entrenadas constaban de tres neuronas de entrada
-numeros de latidos
por minuto mas bajo, numero de latidos por minuto mas alto e
irregularidades en el ritmo
cardiaco- que representan los datos que el usuario ingresara en la
interfaz, as como 5
neuronas de salida, que representan los posibles tipos de ritmo que
el paciente presenta,
anteriormente mencionados.
Despues de las pruebas para analizar cual arquitectura neuronal era
la que se detena
por parametro goal, se pudieron encontrar tres arquitecturas que
lograron el cometido,
cada una con configuracion distinta. La arquitectura de cada red
neuronal se explica en la
Tabla 1.
Tabla 1. Arquitecturas de las redes neuronales que lograron parar
entrenamiento por
NSE.
Funcion de transferencia Numero de neuronas por capa
Capa 1 Capa 2 Capa de salida Capa 1 Capa 2
1 2 Tangencial
1000 N/A
El siguiente paso fue probar estas tres redes, pero con datos
reales, obtenidos de anali-
sis (electrocardiogramas) clnicos de pacientes de distintas edades
y regiones. Entre las
instituciones y laboratorios que generaron estos estudios se
encuentran los laboratorios
Salud Digna, el Instituto Mexicano del Seguro Social (IMSS) y el
Instituto de Seguridad
y Servicios Sociales de los Trabajadores del Estado (ISSSTE), a los
cuales se tuvo acceso
59
gracias a familiares que con anterioridad se haban realizado estas
pruebas, y tambien con
apoyo de personas que trabajan en esas instituciones, las cuales
amablemente proporcio-
naron datos de algunos estudios; solo se utilizaran los datos del
ritmo cardiaco, sin revelar
datos personales o medicos. Dentro del electrocardiograma se
generan tres parametros,
que fueron colocados como datos de entrada para la simulacion de
las redes neuronales. 2
El numero total de datos usados como entrada para la simulacion fue
de 33 distintos
pacientes. Los datos ingresados fueron totalmente desconocidos para
la red neuronal; por
lo mismo, y gracias al entrenamiento, se definio una de las tres
redes neuronales como
la que mayor eficiencia demostro respecto a las otras dos. Dos de
las redes neuronales
mostraron un 69 % de eficiencia, mientras que la tercera arrojo un
72 % de eficiencia al
discriminar el tipo de afeccion que el paciente sufra. La
arquitectura de la red que mayor
eficiencia obtuvo se muestra en la Figura 42.
Figura 42. Arquitectura de la red neuronal con mayor
eficiencia.
El siguiente paso fue generar la interfaz en la cual el usuario
ingresara los datos para
el apoyo al diagnostico medico. La interfaz tambien fue creada en
Matlab, en un entorno
de programacion visual llamado GUIDE, que permite realizar y
ejecutar programas que
necesiten un ingreso continuo de datos; cuenta con las
caractersticas basicas de todos los
softwares de entorno visual. Una aplicacion GUIDE consta de dos
archivos: .m y .fig. El
archivo .m es el que contiene el codigo con las correspondencias de
los botones de control
de la interfaz, y el archivo. fig contiene los elementos
graficos.
2La lista completa de los datos recabados se encuentra en el Anexo
C
60 CAPITULO 4. DESARROLLO DE LA PROPUESTA
Figura 43. Ventana que permite la configuracion visual del
GUIDE.
Se desarrollo un codigo que permitiera al usuario ingresar datos
para que la red neuronal
hiciera la funcion de hacer un pre-diagnostico. Esto fue
desarrollado gracias a callbacks, es
decir, funciones que se ejecutan en respuesta a algunas acciones de
usuario predefinidas,
como hacer clic en algun objeto de la figura.
El programa necesitaba de tres espacios para ingresar los datos de
lmite inferior del
ritmo cardiaco del paciente, lmite superior del ritmo cardiaco del
paciente y si exista
irregularidades en el ritmo. El codigo para desarrollar esa parte
del programa se explica a
continuacion. Es similar en para las tres ventanas; la unica
variacion es la etiqueta que se
usa para cada una de ellas:
function edit1 Callback(hObject, eventdata, handles) % Nombre de la
funcion
inf str2double(get(hObject,’String’)); % Convierte el dato
ingresado a tipo numerico
61
if isnan(inf) %Condicion para verificar que el dato ingresado es un
numero, de lo con-
trario aparecera una ventana de error
inf=0;
end
x(1,1)str2double(get(handles.edit1,’String’)); % Asignacion del
dato ingresado a X. El da-
to se vectoriza, debido a que la red neuronal recibe entradas de
tipo vector.
A partir de los datos recibidos por la interfaz, el programa debe
ingresarlos para su
procesamiento en la red neuronal, y al mismo tiempo dar un
veredicto. Esta accion es rea-
lizada con un pushbutton, es decir, un boton que, al apretarlo,
arroje las salidas deseadas.
Aqu el codigo:
global x % Declaracion de la variable global x
A = x% Asignacion de la variable global x a una variable A
trained net vars load (’network3.mat’); % carga de la red
neuronal
sim(handles.network3, A) % Simulacion de la red neuronal a partir
de los datos ingre-
sados por el usuario
Bans % Asignacion de las salidas de la red neuronal a una variable
B
if (B (1,1) >=0.85)
set(handles.text4,’String’, ’Diagnostico: Ritmo cardiaco
normal’)
elseif (B (2,1) >= 0.85)
set(handles.text4,’String’, ’Diagnostico: Bradicardia’)
elseif (B (3,1) >=0.85)
set(handles.text4,’String’, ’Diagnostico: Taquicardia’)
elseif (B