INSTITUTTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA MECANICA Y
ELECTRICA
UNIDAD PROFESIONAL “ADOLFO LOPEZ MATEOS”
“DETECCION DE ARRITMIAS CARDIACAS POR MEDIO DE REDES
NEURONALES APLICANDO EL METODO BACK PROPAGATION”
SEMINARIO
PARA OBTENER EL TITULO DE:
INGENIERO EN COMUNICACIONES Y ELECTRÓNICA
PRESENTAN:
OMAR NEGRETE MUNOZ
ROSARIO GONZALEZ RODRIGUEZ
ASESORES:
M. EN C. BEATRIZ ADRIANA JAIME FONSECA
M. EN A. ADRIANA SOSA ROJAS
CIUDAD DE MEXICO, JUNIO DE 2019
3
4 INDICE GENERAL
Indice general
1. Introduccion 10
1.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.1.1. Preguntas generales . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.1.2. Proposito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.1.3. Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.4. Objetivos Especıficos . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2. Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3. Factibilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4. Hipotesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5. Justificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.6. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2. Estado del arte 14
3. Marco teorico 21
3.1. Inteligencia artificial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.1. Reconocimiento de patrones . . . . . . . . . . . . . . . . . . . . . . 25
3.1.2. Redes neuronales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2. Aplicaciones de reconocimiento de patrones . . . . . . . . . . . . . . . . . . 36
3.2.1. Arritmias cardiacas . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.2.2. Tipos de arritmias . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3. MatLab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4. Desarrollo de la propuesta 54
INDICE GENERAL 5
5. Resultados y conclusiones 63
5.1. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.2. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6. Referencias 71
A. Programacion de la interfaz 75
B. Ventanas de entrenamiento de las redes 78
C. Datos recopilados de pacientes 84
Indice de figuras
Figura 1. Vehıculos 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 lınea 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
INDICE DE FIGURAS 7
Figura 22. Muestra arrojada por electrocardiograma de paciente que pre-
senta taquicardia sinusal. . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Figura 23. Paciente diagnosticado con fibrilacion ventricular. . . . . . . . 44
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 Sındro-
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 38. Prueba de esfuerzo. . . . . . . . . . . . . . . . . . . . . . . . . . 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
Capıtulo 1
Introduccion
1.1. Objetivos
1.1.1. Preguntas generales
1. ¿Cuales son las caracterısticas 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.2. PLANTEAMIENTO DEL PROBLEMA 11
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 Especıficos
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 sıntomas
pueden confundir a los profesionales de la salud y dictaminar un tratamiento equivocado,
generando una mejorıa 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 tardıo, 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 difıcil 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.
Capıtulo 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 anomalıas
o padecimientos cardiacos y cardiovasculares. A traves del electrocardiograma (ECG) se
pueden detectar diversos padecimientos de corazon, como arritmia, fibrilacion auricular,
disfuncion aurıcula 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 sinfın de padecimientos en el cuerpo humano, tecnica adquirida hace apenas
algunos anos gracias al avance de la tecnologıa 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 tecnologıa 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 artıculo de C. Juarez et al. [3], publicado en el margen del VI Congreso Nacional
de Tecnologıa 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
artıculo, 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 artıculo una propuesta para la deteccion
de algunas anomalıas 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 anomalıas 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 artıculo a la deteccion de arritmias, con un meto-
do un tanto particular. El metodo propuesto combina metaheurısticas, 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 minerıa de datos, escrito
en Java y desarrollado en la Universidad de Waitako.
Las metaheurısticas se implementan para mejorar el rendimiento de los clasificadores.
Los resultados experimentales que se muestran en el artıculo logran hasta un 94 % de
precision en la clasificacion.
En el compilado de artıculos La simulacion en Ingenierıa, 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 artıculos que se describen en este capıtulo son desarrollos e implementaciones
que se han documentado alrededor del mundo en tiempos recientes. La mayorıa 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. Vehıculos 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 cientıfico 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 dıa se sigue utilizando, como lo son operaciones
basicas, y que, basandose en las mismas, demostro que podıa desarrollar una maquina
que pudiera codificar cualquier algoritmo, y que todas las maquinas posteriores a la suya
tendrıa esas mismas operaciones basicas que su maquina.
Turing (foto en figura 2) publico un artıculo en 1950 en la revista Mind, de nombre
“Computing machinery and intelligence”, donde argumentaba que, si una maquina puede
actuar como un humano, entonces podrıamos definirla como inteligente. Para realizar esta
prueba, realizo el llamado “Test de Turing”, el cual consistıa en hacer que un ser humano
se comunicara a traves de un terminal informatico con una entidad que se hallarıa en
alguna otra parte contigua del lugar de la prueba. Esta entidad podıa 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 podıa 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 lıneas 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
difıcil 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 perıodo 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.
Capıtulo 3
Marco teorico
3.1. Inteligencia artificial
Encontrar un inicio de la Inteligencia Artificial es una tarea difıcil. Sin embargo, el
principio de esta ciencia podrıa situarse en 1943, gracias a Warren McCulloch y Walter
Pitts, quienes con sus trabajos en los que proponıan 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 artıculo “Computing Machinery and Intelligence” en 1950, y anos despues
Turing participarıa 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
inventarıa el lenguaje LISP, considerado el lenguaje de la IA, y con ayuda de cientıficos
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. Habıa 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 invertıan 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 probabilısticas 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 probabilısticas 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 fotografıas, 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 automovilıstica, 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 tecnologıa 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 lımites 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 vacıo
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 sımbolos.
1958 McCarthy inventa en el MIT (Instituto de Tecnologıa de Massachusetts) el lenguaje
de aton nivel LISP. Escribe programas que son capaces de modificarse.
1959 Gelernter (IBM) construye el Proyector de teorıas de geometrıa.
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 cientıfico 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 teorıa 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 teorıa del aprendizaje estadıstico, Vapnik desarrolla maquinas de vectores
de soporte, que sonmuy importantes hoy en dıa.
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 polıticas.
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 podrıa definirse como la ciencia que relaciona objetos fısicos 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 Estadıstico de Patrones: Este enfoque se basa en la teorıa de
probabilidad y estadıstica. 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 teorıa 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 caracterısticas.
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 especıficas que se encuentran en el campo de la biometrıa, 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 caracterısticas 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 caracterısticas
relevantes a partir de un conjunto total de caracterısticas 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 caracterısticas 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 caracterısticas 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 mınimo 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. Teorıa 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 aglomerarıa, 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 teorıa 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,
especıficamente 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 envıa 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, fısicos, 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 paıses, 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 dıa.
Entre las decadas de 1950 y 1960 el cientıfico Frank Rosenblatt, inspirado en el trabajo
de Warren McCulloch y Walter Pitts creo el Perceptron, la unidad desde donde nacerıa y
se potenciarıan 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 cientıfico. Cuantos mas perceptrones en las capas, mucho mas difıcil
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 cientıfico. Cuantos mas perceptrones en las capas, mucho mas difıcil
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-
terısticas y luego clasificar. La imagen se divide en campos receptivos que alimentan una
capa convolucional que extrae caracterısticas de la imagen de entrada (detectar lıneas ver-
ticales, vertices, etc). El siguiente paso es la agrupacion, que reduce la dimensionalidad de
las caracterısticas extraıdas 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 perıodos 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 caıa en mınimos 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
Figura 10. Dibujo que representa Deep Belief Network.
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
cientıficos 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 petrolıfera 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 vacıo (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
lınea 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 lınea 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 lınea 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 fısicos 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
mastografıas, rayos x, tomografıas, ecografıas, electrocardiogramas y electroencefalogra-
mas.
Figura 18. Estudios medicos asistidos por computadora.
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 fısica
o por la ausencia de esta, emociones fuertes, dolor, consumo de alcohol, cafeına, 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 categorıas, 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 vıas 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 vıas 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 mayorıa de las causas por las que se desarrollan las taquicardias sinusales es por el
estres fısico o mental, es decir, al realizar alguna actividad fısica, 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 ventrıculos 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, cafeına, 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, cardiopatıa 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.
Sındrome de Wolff-Parkinson-White
Este sındrome se presenta cuando el corazon del paciente presenta vıas 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 Sındrome de
Wolff-Parkinson-White.
Aleteo auricular
Este padecimiento se presenta al generarse un ritmo cardiaco acelerado lo que provoca que
los ventrıculos 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.
Figura 29. Muestra de lecturas referidas al aleteo auricular.
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 vıas nerviosas de conduccion de los estımulos, la frecuencia
y el ritmo cardiaco, permite conocer ritmos anormales, llegada insuficiente de sangre y
oxıgeno 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 especıfico 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.
Figura 36. Derivacion AVF.
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 lınea medio clavicular izquierda. Al igual que
V4, V5 se encuentra en el 5to espacio intercostal solo que estara ubicado sobre la lınea
axilar anterior izquierda. Finalmente, V6, sera encontrada en el 5to espacio intercostal,
sobre la lınea medio axilar izquierda. Otro metodo caracterıstico 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 dıa, registrando la hora exacta y el sıntoma 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:
Windows: Windows 7 en adelante
Mac: MacOs 10.10 a 10.11
Linux: Kemel 2.6 en adelante y glibc 2.11 en adelante
Capıtulo 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 clınica, 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, logarıtmica-
sigmoidal o tangencial-sigmoidal.
Las arritmias cardiacas tienen numerosas categorıas, 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. Lımite inferior de latidos por minuto
2. Lımite 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 lımites
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 categorıa 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
categorıas 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 categorıa
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 categorıa 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 podrıa 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 mınimo
(min grad) representa una medida de validacion de como la tangente llega al mınimo, y
el error maximo (max fail) son los valles y crestas por las que pasa la tangente, que no
necesariamente es el mınimo 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 detenıa
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.
RedNumero de
capas ocultas
Funcion de transferencia Numero de neuronas por capa
Capa 1 Capa 2 Capa de salida Capa 1 Capa 2
1 2 Tangencial
sigmodial
Tangencial
sigmodial
Tangencial
sigmodial
100 100
2 1 Tangencial
sigmodial
N/A Tangencial
sigmodial
75 N/A
3 1 Tangencial
sigmodial
N/A Tangencial
sigmodial
1000 N/A
El siguiente paso fue probar estas tres redes, pero con datos reales, obtenidos de anali-
sis (electrocardiogramas) clınicos 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 habıan 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 sufrıa. 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 caracterısticas 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 lımite inferior del
ritmo cardiaco del paciente, lımite superior del ritmo cardiaco del paciente y si existıa
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;
set(hObject, ’String’,inf);
errordlg(’El valor debe ser numerico’,’Error’)
end
global % Declaracion de una variable global x
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:
function pushbutton1 Callback(hObject, eventdata, handles) % Nombre de la funcion
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)
62 CAPITULO 4. DESARROLLO DE LA PROPUESTA
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 (4,1) >= 0.85)
set(handles.text4,’String’, ’Diagnostico: Pausa Irregular’)
elseif (B (5,1) >= 0.85)
set(handles.text4,’String’, ’Diagnostico: Ritmo Irregular’)
else
set(handles.text4,’String’, ’El diagnostico no es certero, realizar otra prueba’)
end
Finalmente, se utilizaron otros dos botones para borrar datos ingresados y generados
por la interfaz, ası como un boton para finalizar el programa. Tambien es necesario agregar
cuadros de texto fijos, mismos que serviran para darle tıtulo a la interfaz, para darle tıtulo
a las ventanas de ingreso de texto, y para mostrar el mensaje que contiene el diagnostico;
a diferencia de los botones o de los cuadros donde el usuario ingresa datos, los cuadros de
texto fijos no se ven reflejados en la programacion como una funcion. 3
% Boton que elimina los datos anteriormente ingresados y generados por la interfaz
function pushbutton2 Callback(hObject, eventdata, handles)
set(handles.edit1,’string’,’ ’);
set(handles.edit2,’string’,’ ’);
set(handles.edit3,’string’,’ ’);
set(handles.text4,’string’,’ ’);
% Boton que genera la salida de la interfaz
function pushbutton3 Callback(hObject, eventdata, handles) close(handles.output);
3El codigo completo se muestra en el Anexo A.
Capıtulo 5
Resultados y conclusiones
5.1. Resultados
Como ya se comento, la red neuronal que genero un porcentaje de eficiencia mayor fue
la mostrada en la Figura 44, Los parametros de detencion en el entrenamiento de la red
resultaron en los parametros mostrados. Como se puede observar, se alcanzo el objetivo
de que la red neuronal se detuviera por el parametro Goal (Performance); esto quiere
decir que la red logro un numero de aciertos mayor antes de cualquier otro parametro
que pudiera haber detenido el entrenamiento. Se utilizo una red neuronal que constaba de
dos capas ocultas, cada una con 100 neuronas, y una capa de salida, con cinco neuronas,
que representan los cinco estados posibles de ritmo cardiaco en los que esta interfaz puso
enfasis, debido a que son las alteraciones cardiacas mas concurrentes en la mayorıa de
los estudios del corazon realizados en la sociedad. Alguna otra afeccion requiere de otro
tipo de estudios, y a su vez, otro tipo de tratamiento de datos preliminares para dar un
diagnostico correcto.
63
64 CAPITULO 5. RESULTADOS Y CONCLUSIONES
Figura 44. Entrenamiento de la red estructura de red neuronal con mayor eficiencia.
Debido a que la funcion de transferencia utilizada para todas las capas fue Tangencial
Sigmoidal, los valores de salida de la red neuronal simulada tienen un rango de 1 a 1. La
salida debe ser superior a 0.85 para ser considerada como un acierto.
Despues de hacer la simulacion de la red, se obtuvo una eficiencia del 72 % respecto a
los 33 datos distintos de entrada. De los 33 datos de entrada, 8 pacientes presentaban un
ritmo cardiaco regular. De estos 8 datos, la red neuronal tuvo exito en todos al clasificarlos
correctamente (Ver tabla 2 ).
5.1. RESULTADOS 65
Tabla 2. Datos de salida de la red neuronal de los pacientes que presentaban ritmo
cardiaco normal.
Del total de datos presentados, 7 pacientes presentaban bradicardia. Del total de pa-
cientes que presentaban esta afeccion, la red neuronal tuvo exito en 6 casos (ver tabla
3).
Tabla 3. Datos de salida de la red neuronal de los pacientes que presentaban bradi-
cardia.
A su vez 7 pacientes presentaban taquicardia. Del total de pacientes que presentaban
esta afeccion, la red neuronal clasifico 6 de manera correcta (ver tabla 4 ).
Tabla 4. Datos de salida de la red neuronal de los pacientes que presentaban
taquicardia-
Los pacientes que presentaron en su estudio una pausa irregular fueron 6. El total de
aciertos a la salida fue de 3, es decir, la mitad.
66 CAPITULO 5. RESULTADOS Y CONCLUSIONES
Tabla 5. Datos de salida de la red neuronal de los pacientes que presentaban una
pausa irregular en su ritmo cardiaco.
Finalmente, del total de los pacientes, 5 presentaron un ritmo totalmente irregular. El
total de aciertos a la salida fue de 1, es decir, una quinta parte de casos exitosos.
Tabla 6. Datos de salida de la red neuronal de los pacientes que presentaban un
ritmo cardiaco irregular.
Como se puede observar en las Tablas 5 y 6, las salidas que representan los estados de
pausa irregular y ritmo cardiaco irregular fueron las que mas errores tienen respecto a los
otros estados. Esto es debido a que el ritmo del paciente es irregular, solo que un estado
representa una pausa en cualquier momento de la prueba, lo que causa una irregularidad
en su ritmo, mientras que el otro estado es irregular todo el tiempo. Por ende, la red
neuronal no logra diferenciar del todo un estado de otro. Al final sigue siendo de gran
ayuda para el usuario que pudiera realizar la prueba, ya que cualquiera de los dos estados
indica irregularidades en el ritmo cardiaco, lo que sugiere una atencion medica inmediata.
Esta red fue ingresada a la interfaz del usuario, la cual se puede observar en la Figura 45.
Los datos son ingresados debajo de las leyendas de “Lımite inferior de latidos por minuto”,
“Lımite superior de latidos por minuto” y “¿Ritmo regular? Si=0; No=1”. Despues de
ingresados los datos, el usuario tiene que dar clic en el boton de “Aplicar prueba”, ademas
tiene la opcion de “Realizar otra prueba”, cuyo objetivo es borrar los datos ingresados y
5.1. RESULTADOS 67
el diagnostico generado, ası como de “Salir” de la interfaz para finalizar el programa.
Figura 45. Interfaz de usuario.
Un ejemplo se muestra en la Figura 46, en la cual se puede observar un ejemplo de
como se ingresan los datos y del diagnostico generado por la red neuronal; en este caso
se determino una posible bradicardia, es decir, un ritmo cardiaco que se encuentra por
debajo del normal. A su vez, en la Figura 47, se muestra un ejemplo de cuando ninguna
de las salidas de la red no logra cumplir el requisito de superar el valor de 0.85, por lo
que no puede ayudar a un diagnostico certero por parte del medico o usuario que aplica
la prueba
Figura 46. Ejemplo del ingreso de datos y resultado en la interfaz de usuario.
68 CAPITULO 5. RESULTADOS Y CONCLUSIONES
Figura 47. Ejemplo de un resultado inexacto en las salidas de la red neuronal.
Finalmente, tambien se puede observar en la Figura 48 que al ingresar datos que no
son numericos, el programa manda un aviso de que no se estan ingresando datos correctos,
por lo que los valores ingresados seran transformados a 0, por lo que se sugiere intentar
de nuevo con valores que sean aceptados por la interfaz de usuario.
Figura 48. Ejemplo de error al ingresar los datos .
5.2. CONCLUSION 69
5.2. Conclusion
Mediante este proyecto, ası como a la investigacion previa, podemos denotar que el
uso de Redes Neuronales para la resolucion de problemas representa una herramienta
importante, debido a que el procesamiento de datos que pudieran ingresarse emula el
procesamiento de informacion de un ser humano; el lograr que algun tipo de dispositivo o
maquina se comporte de manera parecida, o que haga algunas tareas comunes de los seres
humanos a la misma o a mayor velocidad, representa un avance tecnologico importante,
abriendo las posibilidades de herramientas y estas se vuelvan practicamente infinitas.
El objetivo principal de este proyecto se logro, se creo una interfaz con una eficiencia
de resultados tal que puede ser una herramienta de gran utilidad para el apoyo de un
diagnostico oportuno, y que, debido a su simplicidad de uso, puede ser utilizada no solo por
medicos o especialistas, tambien por usuarios que pudieran buscar algun pre-diagnostico,
para posteriormente acudir con bases certeras ante algun especialista.
Este proyecto es una herramienta para el diseno de una base de datos con argumentos
precisos; ademas no presenta alguna restriccion respecto a la informacion ingresada en
cuanto a procedencia de datos, ni la situacion del paciente en turno. Cualquier persona
puede utilizar la interfaz y tener un primer acercamiento a un diagnostico. El entrena-
miento de la Red Neuronal con un numero de datos considerable ayudo a que el resultado
entregado tenga una fiabilidad alta para un diagnostico verdaderamente oportuno.
La informacion recabada en el Estado del Arte nos muestra una variedad amplia de
procedimientos y procesos en los que se pueden utilizar Redes Neuronales; podemos encon-
trar similitudes y diferencias con este proyecto, sin embargo, el facil acceso a esta interfaz
marca una discrepancia importante. No solo es de facil manejo, sino que la poblacion a la
que puede ser dirigida abarca un numero importante de personas con afecciones cardiacas,
las cuales no tienen posibilidad de hacer examenes medicos pertinentes por alguna razon,
y quieren algun diagnostico que represente veracidad y certeza.
Los alcances futuros de este proyecto tambien se extienden a una gran variedad. Entre
las mas relevantes esta el monitorizar en tiempo real a los pacientes que previamente ya se
diagnosticaron con algun mal cardiaco, esto para que la Red Neuronal entrenada comuni-
70 CAPITULO 5. RESULTADOS Y CONCLUSIONES
que al usuario y/o al medico que en ese momento existe una variacion de ritmo cardiaco
importante, la cual requiere de atencion medica inmediata. Tambien aparece la posibili-
dad de emular un electrocardiografo grafico, con el cual se pueda monitorizar y visualizar
al momento la senal cardiaca, y practicamente al mismo tiempo, hacer un diagnostico.
Evidentemente, estas propuestas requieren de mayor investigacion, de dispositivos, capa-
citacion de usuarios, y, por ende, costos mas elevados.
Capıtulo 6
Referencias
[1] A. Mariel, “Un electrocardiografo inteligente de bajo coste”, Tesis ingenieril, Universi-
dad del Paıs Vasco, 2014. [En lınea]. Disponible en: https://addi.ehu.es/bitstream/handle/
10810/13185/AMariel memoria PFG 120614.pdf;sequence=1. [Accedido: 12-junio-2019]
[2] S. T. Perez. “Metodologıas de diseno de redes neuronales sobre dispositivos digitales
programables para procesado de senales en tiempo real”, Tesis doctoral, Universidad de
Las Palmas de Gran Canaria, 2015. [En lınea]. Disponible en: https://www.idetic.ulpgc.es
/idetic/images/ESTRUCTURA IDETIC/IDeTIC/I plus D/Tesis Doctorales /Santia-
go Perez Suarez/Tesis completa.pdf. [Accedido: 12-junio-2019]
[3] C. Juarez, N. Lozano, A. Soberanes, J. L. Sanchez, “Reconocimiento de patrones de
electrocardiografıa para diagnosticos de enfermedades cardiovasculares”, en 2015 VI
Congreso Nacional de Tecnologıa Aplicada a Ciencias de la Salud. [En lınea]. Disponible
en: https://www-optica.inaoep.mx/tecnologia salud/2015/memorias/pdf/MyT2015 67 E.pdf.
[Accedido: 12-junio-2019]
[4] C. E. Rose, M. T. Serna, “Generacion de alertas de anomalıas cardiacas usando un al-
goritmo inteligente hıbrido”, en 2015 37o International Congress of Electronic Enginee-
ring. [En lınea]. Disponible en: https://www.researchgate.net/publication/303875264
GENERACION DE ALERTAS DE ANOMALIAS CARDIACAS USANDO UN ALGORITMO
INTELIGENTE HIBRIDO. [Accedido: 12-junio-2019]
71
72 CAPITULO 6. REFERENCIAS
[5] C. Padilla-Navarro et al., “Algoritmos geneticos aplicados a la optimizacion de carac-
terısticas en la clasificacion de arritmias cardiacas utilizando los clasificadores KNN y
Naive Bayes”, Research in Computing Science, vol. 134, no. 5, pp. 55-68, 2017. [En
lınea]. Disponible en: http://www.rcs.cic.ipn.mx/rcs/2017 134/. [Accedido: 12-junio-
2019]
[6] B. Rivas, B. Robles, M. Sanchez, F. Suarez, “Determinacion del ritmo cardıaco en
tiempo real para el diagnostico de aflicciones relacionadas al corazon mediante la apli-
cacion de redes neuronales”, La simulacion en ingenierıa, transcendiendo fronteras, pp.
56-60, 2018. [En lınea].
[7] W. Ertel, “Introduction to Artificial Intelligence”, Springer, Londres, pp. 1-11, Londres.
[8] A. Garcıa, “Inteligencia Artificial: Fundamentos, practica y aplicaciones”, RC Libros,
Madrid, pp. 2-6, 2012. [En lınea]. Disponible en: https://books.google.com.mx/books
id=WDuqquRP70UC&printsec=frontcover &hl=es&source=gbs ge summary r&cad=0
#v=onepage&q&f=false [Accedido: 17-junio-2019]
[9] J. Carrasco, “Reconocimiento de patrones”, Instituto Nacional de Astrofısica Optica
y Electronica, 2019. [En lınea] Disponible en: https://ccc.inaoep.mx/ariel/recpat.pdf
[Accedido: 18-junio-2019]
[10] I. Aizenberg, “Complex-Valued Neural Networks with Multi-Valued Neurons”, Sprin-
ger, Berlin, pp. 3-5, 2011.
[11] IBM, “El modelo de redes neuronales”, 2019. [En lınea] Disponible en: https://www.ibm.com/
support/knowledgecenter /es/SS3RA7 sub/modeler mainhelp client ddita/components
/neuralnet/neuralnet model.html [Accedido: 19-Junio-2019]
[12] D. Matich, “Redes neuronales: Conceptos basicos y aplicaciones”, Catedra, Universidad
Tecnologica Nacional - Facultad Regional Rosario, 2011.
[13] S. Merck y Dohme, “Merck de informacion medica para el hogar”, OCEANO, Espana
pp. 70-85, 1997.
73
[14] Investigacion traslacional de arritmias cardiacas secundarias a canalopatıas ITACA-
CM, “Tipos de arritmias cardiacas” [En lınea] Disponible en: https://www.itaca.edu.es/Tipos-
Arritmias.htm [Accedido: 18 – junio-2019]
[15] Instituto del corazon en Texas, “Categorıa de arritmias” [En lınea] Disponible en:
https://www.texasheart.org/heart-health/heart-information-center/topics/categorias-de-
arritmias/ [Accedido: 18 de junio]
[16] Axis comunications, “Reconocimiento facial”, [En lınea] Disponible en: https://www.axis.com/es-
mx/solutions-by-application/facial-recognition [Accedido 17-junio-2019]
[17] The new york time “A.I Is helping scientists predict when and where the next big
earthquake Will be”, Thomas Fuller and Cade Metz, Articulo, [En lınea] Disponible en:
https://www.google.com/amp/s/www.nytimes.com/es/2018/10/30/inteligencia-artificial-
predecir-terremoto/amp/ [Accedido 16-junio-2019]
[18] W. B Rauch y Kindin, “Aplicaciones de la inteligencia artificial, en la actividad em-
presarial, la ciencia y la industria”, ediciones Dıaz de Santos, S.A, Madrid, pp 416-424,
1989. [En lınea] Disponible en: https://books.google.com.mx/books?id=LjW fRnueXrYC&pg=
PA478&lpg= PA478&dq=busqueda+de+crudo +aplicado+con+inteligencia +artifi-
cial&source= bl&ots= wHNdNh2HkD&sig=ACfU3U0OXmX cm2dogasZC-ZVArbc2ayWPA&
hl=es&sa=X&ved=2ahUKEw iWgrSW3fviAhVSRK0KHcDmChE4ChDoATA AegQI-
BRAB #v=onepage&q=busqueda %20 de %20crudo %20aplicado %20 con %20 inteli-
gencia
%20artificial &f=true [Accedido 16-junio-2019]
[19] Global media, “Crean sistema para identificar personas por su manera de caminar”,
[En lınea] Disponible en: https://www.globalmedia.mx/articles/Crean-sistema-para-
identificar-personas-por-su-manera-de-caminar [Accedido 18-junio-2019]
[20] Secretaria de salud de puerto rico, “Lectura de comprension e interpretacion del elec-
trocardiograma division de educacion continua”, Articulo, [En lınea] Disponible en:
https://onedrive.live.com/?cid= 5FCF22592AC65A69&id=5FCF22592AC65A69 %213987&
parId=5FCF22592AC65A69 %213982&o=OneUp [Accedido 18-junio-2019]
74 CAPITULO 6. REFERENCIAS
[21] MatLab, “Descarga de software”, [En lınea] https://la.mathworks.com/products/matlab.html
[Accedido 18-junio-2019]
Anexos A
Programacion de la interfaz
gui Singleton = 1;
gui State = struct (′guiName′,mfilename, ...
′guiSingleton′, guiSingleton, ...
′guiOpeningFcn′,@TablaOpeningFcn, ...
′guiLayoutFcn′, [], ...
if nargin && ischar(varargin1)
gui State.gui Callback str2func(varargin1);
end
if nargout
[varargout1:nargout] gui mainfcn(gui State, varargin:);
else
gui mainfcn(gui State, varargin:);
end
function Tabla OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
function varargout = Tabla OutputFcn(hObject, eventdata, handles)
varargout1 = handles.output;
function edit1 Callback(hObject, eventdata, handles)
inf = str2double(get(hObject,’String’));
75
76 ANEXOS A. PROGRAMACION DE LA INTERFAZ
if isnan(inf)
inf=0;
set(hObject, ’String’,inf);
errordlg(’El valor debe ser numerico’,’Error’)
end
x(1,1) = str2double(get(handles.edit1,’String’));
function edit1 CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end
function edit2 Callback(hObject, eventdata, handles)
sup = str2double(get(hObject,’String’));
if isnan(sup)
sup=0; set(hObject, ’String’,sup);
errordlg(’El valor debe ser numerico’,’Error’)
end
x(2,1) = str2double(get(handles.edit2,’String’));
function edit2 CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end
function edit3 Callback(hObject, eventdata, handles)
ritmo = str2double(get(hObject,’String’));
if isnan(ritmo)
ritmo=0;
set(hObject, ’String’,ritmo);
errordlg(’El valor debe ser numerico’,’Error’)
end
x(3,1) = str2double(get(handles.edit3,’String’));
function edit3 CreateFcn(hObject, eventdata, handles)
77
if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end
function pushbutton1 Callback(hObject, eventdata, handles)
A = x
trained net vars = load (’network3.mat’);
sim(handles.network3.mat, A)
B=ans
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 (4,1) >= 0.85)
set(handles.text4,’String’, ’Diagnostico: Pausa Irregular’)
elseif (B (5,1) >= 0.85)
set(handles.text4,’String’, ’Diagnostico: Ritmo Irregular’)
else
set(handles.text4,’String’, ’El diagnostico no es certero, realizar otra prueba’)
end
function pushbutton2 Callback(hObject, eventdata, handles)
set(handles.edit2,’string’,’ ’);
set(handles.edit3,’string’,’ ’);
set(handles.text4,’string’,’ ’);
function pushbutton3 Callback(hObject, eventdata, handles)
close(handles.output);
Anexos B
Ventanas de entrenamiento de las
redes
Red 1
Figura 49. Red 1.
78
79
Red 2
Figura 50. Red 2.
80 ANEXOS B. VENTANAS DE ENTRENAMIENTO DE LAS REDES
Red 3
Figura 51. Red 3.
81
Red 4
Figura 52. Red 4.
82 ANEXOS B. VENTANAS DE ENTRENAMIENTO DE LAS REDES
Red 5
Figura 53. Red 5 .
83
Red 6
Figura 54. Red 6 .
Anexos C
Datos recopilados de pacientes
Figura 55. Datos recopilados de pacientes.
84