Congreso Internacional de Investigación Tijuana....
Transcript of Congreso Internacional de Investigación Tijuana....
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 1
SECCIÓN III CIENCIAS COMPUTACIONALES
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 1
LA DESERCIÓN ESCOLAR DESDE EL PUNTO DE VISTA DE LA MINERÍA DE DATOS.
CASO DE ESTUDIO: TESJo, GENERACIONES 2003--2008
Resumen-- En este trabajo se presenta la propuesta para el
desarrollo de un sistema experto capaz de identificar automáticamente
y en tiempo real a los alumnos que se encuentre en riesgo deserción
escolar. La identificación de los alumnos en riesgo de deserción escolar se
llevara a cabo mediante un sistema de redes neuronales artificiales,
que será abastecido por estudios de inteligencia de negocios a través
de minería de datos y reconocimiento de patrones. La principal
aportación de este proyecto es reducir la intervención humana en la
detección de alumnos en riesgo de deserción escolar y de esta forma
ser eficiente en contextos donde la cantidad de alumnos y datos es
cuantiosa y que por ende el análisis humano de esta información sería
muy costoso en cuanto a tiempo y recursos humanos. Asimismo en este
trabajo se presentan los principales resultados obtenidos durante la
fase inicial del proyecto.
Palabras claves-- Deserción escolar, inteligencia de negocios, minería
de datos.
R. ALEJO (Tecnológico de Estudios
Superiores de Jocotitlán)
e-mail: [email protected]
L. GIL-ANTONIO (Tecnológico de Estudios
Superiores de Jocotitlán)
e-mail: [email protected]
E. LÓPEZ-GONZÁLEZ (Tecnológico de
Estudios Superiores de Jocotitlán)
e-mail: [email protected]
J.A. ANTONIO-VELÁZQUEZ (Tecnológico de Estudios Superiores de Jocotitlán)
e-mail: [email protected]
1. INTRODUCCIÓN
La deserción escolar es un problema que afecta a
prácticamente a todas las comunidades académicas desde
el nivel básico hasta el nivel superior. De acuerdo a la
Secretaría de Educación Pública, el nivel que presenta mayor deserción es el medio superior [1]. No obstante,
este problema, como ya se dijo antes, también se
encuentra en el nivel superior y es necesario abordarlo.
A nivel superior se ha propuesto la Tutoría como un
medio para tratar de resolver este problema [2]. Sin
embargo, no se ha traducido en una disminución del
índice de deserción.
Por otro lado, se han desarrollado números estudios para
tratar de entender este problema y como puede
solventarse. Estos estudios van desde los meramente pedagógicos o sociológicos (por ejemplo véanse las Ref.
[3] y [4]) hasta los más innovadores, es decir, los que
hacen uso de tecnologías emergentes como la minería de
datos (ver Ref. [5], [6] y [7]). La minería de datos es una
disciplina que busca la extracción de conocimiento de los
datos. Se auxilia de la estadística, la inteligencia
artificial, el aprendizaje automático entre otras
herramientas.
Se ha justificado el uso de la minería de datos en el
ámbito educativo porque cada vez existe más información y cada vez es más difícil procesarla con
métodos convencionales [8].
En este trabajo se presenta una propuesta para desarrollar
un sistema que sea capaz de identificar automáticamente
en tiempo real a los alumnos con altas probabilidades de
desertar en el Tecnológico de estudios Superiores de
Jocotitlán (TESJo). Asimismo se presentan resultados
preliminares obtenidos del análisis de los datos personales y académicos a través de minería de datos de
las generaciones 2003-2009.
La principal aportación de este trabajo es que presenta
algunas afirmaciones que son ciertas en el ámbito
académico del TESJo y que pueden servir para entender a
nuestra comunidad académica.
2. PLANTEAMIENTO DEL PROBLEMA
Al concluir cada semestre en la Carrera de Ingeniería en
Sistemas Computacionales del TESJo, la deserción de los alumnos es constante, debido a diversos factores de entre
los cuales se han identificado como relevantes los
siguientes:
a) Falta de información acerca de la carrera.
b) Falta de recursos económicos.
c) Falta de vocación por la carrera.
d) Bajo rendimiento académico.
De acuerdo a la información proporcionada por el
departamento de control escolar del TESJo sobre las generaciones del 2003 al 2009, se ha observado que en la
carrera de ISC se presenta un alto índice de deserción
escolar. La Fig. 2.1 muestra la cantidad de alumnos que
ingresaron y los alumnos que abandonaron la carrera.
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
Asimismo en esta figura se presenta un proceso de
extrapolación para los próximos tres años, es decir, se
presentan los índices de ingreso y deserción para 2010,
2011 y 2012. Estos resultados muestran información
alarmante en cuanto a los índices de deserción escolar, en
otras palabras, la deserción escolar seguirá aumentando
proporcionalmente al aumento de la matrícula de ingreso.
Fig. 2.1 Índices de deserción de la carrera de ISC del
TESJo.
Fuente: Elaboración propia
3. JUSTIFICACIÓN
En toda institución educativa el recurso más importante
son los alumnos, por lo tanto, es de suma importancia
conocer por qué los alumnos desertan y más aún
identificar a aquellos en riesgo de deserción escolar en
una fase temprana para poder establecer políticas y/o
estrategias que ayuden a reducir los índices de deserción.
Por estas razones el TESJo ha motivado al desarrollo de
nuevos proyectos que logren entender, analizar y en un
determinado momento prevenir este fenómeno.
En el laboratorio de reconocimiento de patrones y
minería de datos se está realizando un Sistema Experto
(basado en redes neuronales artificiales) que permita
identificar automáticamente a los alumnos que son
vulnerables a sufrir la deserción escolar y con ello el
sistema de tutorías se enfoque principalmente a un grupo
reducido de la población estudiantil y con esto se pueda
prevenir su deserción.
La identificación de alumnos en riesgo de deserción
escolar es generalmente una actividad puramente humana y lo que se busca en este proyecto es automatizar este
proceso (a través del uso de algoritmos inteligentes). Por
otro lado, la cantidad de alumnos en las Instituciones de
Educación Superior es cada día mayor y por lo tanto el
número de datos a analizar también lo es. Esto dificulta la
identificación de alumnos en riesgo de manera manual o
tradicional, por lo que el uso de herramientas
computacionales e inteligentes como las que se proponen
en este trabajo permitirá afrontar este reto.
4. METODOLOGÍA
Para desarrollar sistema experto propuesto (basado en
redes neuronales artificiales) que sea capaz de identificar
automáticamente a los alumnos que se encuentren en
riesgo de deserción escolar, se requiere de desarrollar las
siguientes fases:
1. Diseñar y desarrollar una infraestructura digital que
permita que el proceso de tutorías pueda ser
realizado en línea.
2. Aplicar técnicas de Minería de Datos y
Reconocimiento de Patrones a través de estudios de Inteligencia de Negocios para obtener información
relevante y tendencias de los alumnos que se
encuentran en riesgo de deserción escolar.
3. Desarrollar un modelo artificial basado en redes
neuronales para la identificación automática de los
alumnos en riesgo de deserción escolar.
4. Implementar el modelo artificial del punto anterior
en el sistema de tutorías.
5. Evaluar la efectividad del modelo de detección de
alumnos en riesgo.
6. Implementar el sistema de identificación de alumnos
en riesgo en el TESJo
En la sección 5 se presentan algunos de los principales
resultados obtenidos después de concluir la fase 1 e
iniciar con la fase 2. Los puntos 3, 4, 5, y 6 serán
desarrollados y presentados en trabajos futuros.
5. RESULTADOS PRELIMINARES
Actualmente se han realizado estudios con información
de generaciones anteriores (2003—2009), a través de
herramientas de minería de datos como las reglas de asociación y el clustering. Se han obtenido conclusiones
parciales sobre los factores que influyen en la deserción,
así como información que nos permitirá entender nuestro
contexto académico. A continuación se presentan los
principales resultados obtenidos del análisis de la
deserción escolar en la comunidad del TESJo.
1. Hay una fuerte relación entre alumnos que practican
futbol y tienen problemas económicos, por otro lado,
los alumnos que no practican deporte dicen no tener
problemas económicos. 2. La mayoría de alumnos que desertan tienen
problemas económicos.
3. Los alumnos que desertan tienen promedios de la
preparatoria de regulares a buenos.
4. La mayoría de los alumnos que desertan no han
dejado de estudiar antes de su deserción.
5. Hay una marcada diferencia entre las opiniones de
hombres y mujeres.
6. Los alumnos que ingresan a la carrera de ISC dice
conocer a que se refiere la carrera, sin embargo, la
idea que tienen sobre la carrera es errónea.
7. A partir de estos resultados se puede vislumbrar un panorama general del contexto de nuestra
comunidad estudiantil, por ejemplo la marcada
diferenciación entre las opiniones de hombres y
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
mujeres, o la relación entre el futbol y la
situación económica. Sin embargo, estos
resultados son preliminares y es necesario un estudio más extenso para dar mayor fiabilidad a
esta información y como consecuencia que
puedan ser usados como apoyo a la toma de decisiones.
6. IMPACTO SOCIAL, TECNOLÓGICO Y
ECOLÓGICO
En toda institución estudiantil lo más importante son los
alumnos por lo cual con el desarrollo de este proyecto
permitirá la identificación de alumnos en riesgo de
deserción para que se puedan tomar decisiones
encaminadas a combatir este problema.
Desde el punto de vista Tecnológico el impacto de este
proyecto es que se están aplicando tecnologías emergentes como la minería de datos y las redes
neuronales artificiales para tratar la deserción escolar. Lo
que cumple con los principios de innovación y desarrollo
tecnológico.
Desde un enfoque Ecológico, el impacto es que con el
cambio del proceso de tutorías de manera manual al
digital, se podrá reducir el uso de papel que actualmente
se utiliza, evitando así que en un futuro el papel se vuelva
basura. Finalmente, considerando el nivel de aplicación
práctico o económico del proyecto, se busca la protección legal del producto final (sistema experto) para su posible
comercialización o transferencia tecnológica a sectores
afines al contexto donde el proyecto fue desarrollado, por
ejemplo en el Sistema Nacional de Institutos
Tecnológicos (SNIT).
7. TRABAJOS RELACIONADOS
La aplicación de la minería de datos para tratar el
problema de la deserción escolar, no es nuevo. Se han
desarrollado números propuestas para enfrentar este reto
[8] por ejemplo en la Ref. [5] se muestra el uso de minería de datos para identificar las causas de deserción
en la facultad de Ingeniería de Sistemas de Universidad
Simón Bolívar. En [6] se presenta una propuesta de
soporte a las decisiones y de la gestión de la inteligencia
académica para apoyar a planificar la retención
estudiantil basada en la deserción de estudiantes. Se
centra en el uso de árboles de decisión. Un trabajo muy
similar al propuesto en este documento puede encontrarse
en [7]. En él se muestra un sistema de alerta temprana
para la identificación de alumnos en riesgo de deserción
escolar.
Como puede verse el problema abordado en este trabajo
no es nuevo ni mucho menos se ha investigado poco. Sin
embargo, consideramos que es necesario el diseño de
nuestro propio sistema de detección temprana de alumnos
en riesgo de desertar, porque las condiciones
sociológicas, económicas y tecnológicas son distintas en
cada región del mundo e inclusive en el mismo país
existen zonas completamente diferenciadas y en
ocasiones las distancias entre estas zonas son de unos
cuantos kilómetros.
8. CONCLUSIÓN Y TRABAJOS FUTUROS
Este trabajo muestra la propuesta para el desarrollo de un
sistema para detección automática de alumnos en riesgo
de deserción escolar. Se muestran resultados preliminares
que permiten entender el contexto académico de nuestra
comunidad estudiantil, los cuales ayudaran a una mejor
toma de decisiones.
Por otro lado, es necesario aclarar que este trabajo es
parte de la fase inicial del proyecto propuesto. Hasta
ahora solo se ha culminado la primera fase (ver sección 4), es decir, el desarrollo de la infraestructura necesaria
para llevar a cabo el proceso de tutoría en línea, lo que
permitirá obtener datos para procesarlos a través de
minería de datos. Asimismo se han aplicado técnicas de
minería de datos a información histórica de nuestros
alumnos y a partir de ella se han generado los resultados
presentados en la sección 5.
En conclusión el proyecto no ha sido concluido en su
totalidad y se espera en un futuro no lejano se pueda
concluir con todas la fases de desarrollo propuestas en la sección 4.
9. REFERENCIAS
[1] Secretaria de Educación Pública, “Reporte de la
Encuesta Nacional de Deserción en la Educación Media
Superior”, 2012.
[2] Institutos Tecnológicos, ―Manual del Tutor del
SNIT” Secretaria de Educación Pública. 2013.
[3] Luz Helena Rodríguez Núñez, Pbro. Francisco Javier
Londoño Londoño, ―Estudio sobre deserción estudiantil
en los programas de Educación de la Católica del Norte
Fundación Universitaria‖, Revista Virtual Universidad
Católica del Norte. No. 33. pp. 328 – 355, 2011.
[4] Vélez, A. & D. López. 2004. Estrategias para vencer la deserción Universitaria. Educación y
Educadores. Vol. 7: pp. 177-204, 2004.
[5] Azoumana, K. ―Análisis de la deserción
estudiantil en la Universidad Simón Bolívar, facultad
Ingeniería de Sistemas, con técnicas de minería de
datos‖. Pensamiento Americano, 41-51, 2013.
[6] Elmer Hugo González Herrera, ―Modelo de
Decisión Cualitativo Multi-Atributo y Gestión de
Inteligencia Académica para Apoyar la Planificación
Académica en la Retención Estudiantil de la Escuela de
Ingeniería de Computación y Sistemas de la UPAO
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
usando la Metodología DEXi‖, IV encuentro científico
internacional del Norte 2013. pp. 1--8. 2013.
[7] Carvajal Olaya, Patricia Montes García, Héctor
Hernán Trejos Carpintero, Álvaro Antonio Cárdenas,
Johanna, ―Sistema de Alertas Tempranas: una
herramienta para la identificación de riesgo de deserción
estudiantil, seguimiento académico y monitoreo a
estrategias‖, Tercera Conferencia sobre el Abandono en
la Educación Superior (III CLABES). Dpto. de Publicaciones de la E.U.I.T. de Telecomunicación. pp.
176--187. 2013.
[8] Vélez, A. & D. López. 2004. ―Predicción del
Fracaso Escolar mediante Técnicas de Minería de Datos‖.
IEEE-RITA, Vol. 7, Núm. 3, pp. 109—117, 2012.
______________________________________________
R. Alejo: Ingeniero en Sistemas Computacionales con estudios de
Maestría en Ciencias Computacionales y Doctorado en Sistemas
Informáticos Avanzados. Profesor a nivel licenciatura y posgrado con
más de 10 años de experiencia.
L. Gil-Antonio: Ingeniero en Electrónica y de Comunicaciones con
estudios de Maestría en Tecnología de Computo por el Instituto
Politécnico Nacional. Profesor a nivel licenciatura con más de 10 años
de experiencia.
Erika López González: Ingeniero en Computación con estudios de
Maestría en Tecnología de Computo por el Instituto Politécnico
Nacional. Profesor a nivel licenciatura con 8 años de experiencia.
J. A. Antonio-Velázquez: Ingeniero en sistemas computacionales con
estudios de Maestría en Tecnología de Computo por el Instituto
Politécnico Nacional. Profesor a nivel licenciatura con más de 9 años de
experiencia.
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 115
INVESTIGACIONES ACTUALES RELACIONADAS AL
RECONOCIMIENTO DE PATRONES
Resumen— Actualmente el Reconocimiento de Patrones y
Aprendizaje Automático se ha afianzado como un área de la
inteligencia artificial que busca adquirir e identificar objetos
(patrones), representarlos, clasificarlos y posteriormente evaluarlos
creando así un sistema de aprendizaje automático. El presente
artículo pretende mostrar las nuevas tendencias del reconocimiento de
patrones y aprendizaje automático para solucionar problemas reales,
tales como, reconocimiento de rostros, reconocimiento de movimiento
de objetos y colores para robots autónomos, en la alimentación para
diferenciar alimentos en mal estado con los que se pueden todavía comer, etc. Con la intención de conocer los avances de investigación
en reconocimiento de patrones que actualmente se estudian.
Palabras claves— Reconocimiento de patrones, aprendizaje
automático, aprendizaje supervisado, aprendizaje no supervisado.
Juan Alberto Antonio Velázquez Tecnológico de Estudios Superiores de
Jocotitlán Carretera Toluca-Atlacomulco KM.
44.8 Ejido de San Juan y San Agustín
Jocotitlán,
Alejo Eleuterio Roberto
Tecnológico de Estudios Superiores de
Jocotitlán Carretera Toluca-Atlacomulco KM. 44.8 Ejido de San Juan y San Agustín
Jocotitlán,
López González Erika
Tecnológico de Estudios Superiores de
Jocotitlán Carretera Toluca-Atlacomulco KM.
44.8 Ejido de San Juan y San Agustín
Jocotitlán,
Gil Antonio Leopoldo
(Tecnológico de Estudios Superiores de
Jocotitlán Carretera Toluca-Atlacomulco KM.
44.8 Ejido de San Juan y San Agustín
Jocotitlán,
Rosa María Valdovinos Rosas
Universidad Autónoma del Estado de México,
Facultad de Ingeniería Cerro de Coatepec
1. INTRODUCCIÓN
El reconocimiento de Patrones es una ciencia que
desciende de la rama de la inteligencia artificial que se
encarga de la descripción y clasificación
(reconocimiento) de objetos, personas, representaciones
de todo lo que interactúa con el ser humano y que al final
se puede representar computacionalmente.
Por ejemplo con la ayuda del reconocimiento de patrones
hoy en día se puede dar un diagnóstico más acertado para
encontrar espectros que diferencien individuos sanos a
individuos que están enfermos de enfermedades renales
crónicas [1]. El reconocimiento de la voz y sonidos se ha
empleado en la terapia del lenguaje en niños con
problemas psicomotores [2]. Con la ayuda del
reconocimiento de patrones y con la ayuda de los
síntomas en un paciente se puede determinar si contiene
la bacteria gonococcus o la bacteria Neisseria gonorrea
causantes de la gonorrea [3]. Por otro lado otros investigadores que estudian el área de robótica con visión
artificial han utilizado el reconocimiento de imágenes y
con la ayuda del reconocimiento de patrones manipular
un robot programado en un circuito FPGA y que fuera
capaz de reconocer objetos de colores utilizando una
cámara [4]. Otras áreas en las cuales se aplica el
Reconocimiento de patrones es el procesamiento de
imágenes satelitales, reconocimientos de rostros, control
de robots, reconocimiento de caracteres escritos, sistemas
de reconocimiento de voz, desarrollo de diarios, lectura de direcciones postales, [5] etc.
Se deduce por problemas de Reconocimiento de Patrones
a todos aquellos relacionados con la clasificación de
objetos y fenómenos que tienen factores que inciden en
los mismos.
Existen varios enfoques en el reconocimiento automático
de patrones. Los más utilizados son: Los que se basan en
la teoría de probabilidad y estadística, los que utilizan
funciones discriminantes, los que se basan en la neuro-computación y los que trabajan con algoritmos de
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 116
búsqueda de optimización basados en heurística entre
otros [5].
1.1 Características generales
Enfoque Estadístico. Una de las primeras herramientas
utilizadas en la solución de Reconocimiento de Patrones
es la Estadística; utiliza el Análisis Discriminante, la
Teoría de Probabilidad y el Análisis de Agrupamientos (Cúmulus, clúster) [6]. El enfoque estadístico es el más
simple de todos los enfoques y consiste en representar
cada patrón mediante un vector resultante del muestreo y
cuantificación de las señales externas y cada clase por
uno o varios patrones modelo. Ha sido aplicado en
muchos problemas, en particular cuando se relaciona con
imágenes y señales. Los estudios apropiados de variables,
la variabilidad de los patrones de una clase, las medidas
de semejanza entre patrones, así como la relación entre
patrones y clases y caracterizan a este enfoque son los
siguientes:
Existen dos diferentes formas de reconocimiento
estadístico que son [5]: El reconocimiento paramétrico y
el reconocimiento no paramétrico. Entre tanto que, el
reconocimiento paramétrico trabaja por medio de
métodos estadísticos como la Teoría de Decisión de
Bayes para calcular la probabilidad a priori de las clases.
El Reconocimiento no paramétrico dispone de un
conjunto de patrones que se representan en forma de
vector y utiliza funciones discriminantes donde se
establecen regiones en un universo de estudio donde se
encuentran las clases a las que contienen a los patrones y para determinar a la clase que pertenece un patrón nuevo
necesita la información de éste que se proporciona por
los patrones de entrenamiento [7].
1.2 Enfoque sintáctico estructural
Este enfoque se deriva de la Teoría de los lenguajes
formales y su origen está relacionado con el
reconocimiento de imágenes y señales. Por ejemplo, si
existe una señal electrocardiográfica ésta se puede
descomponer en partes. Este tipo de reconocimiento busca las relaciones estructurales que guardan los objetos
de estudio, es decir busca la cantidad de información que
un objeto x tiene sobre un objeto y, y el metalenguaje con
el que puede ser capaz de describirse, utilizando
descriptores sintácticos con la ayuda de la teoría de
lenguajes formales [2].
En otras palabras, el propósito es encontrar la gramática
cuyo lenguaje estaría formado sólo por señales que
estarían estrechamente vinculadas unas con otras y
aquellas señales que no tuvieran que ver con las primeras,
responderían a gramáticas diferentes, por lo que pertenecerían a otro lenguaje.
1.3 Redes neuronales artificiales
Este tipo de enfoque utiliza una estructura formada por
varios nodos (neuronas) que se interconectan entre sí
mediante pesos y que se concentran en diferentes capas
(de entrada, oculta por lo general). Esta estructura es
entrenada con los patrones disponibles, de tal manera que
al finalizar el entrenamiento, la red neuronal tenga la
capacidad de etiquetar nuevos patrones de forma
eficiente y en poco tiempo.
Es una herramienta que debido a su alto poder de
clasificación y resolución de problemas del tipo no lineal
se utiliza hoy en día para la solución de problemas de
reconocimiento de patrones aunque puede tener algunos
inconvenientes como el desconocimiento a priori de la
estructura de capas y el número de nodos necesarios para
cada problema, contar con un aprendizaje excesivamente
costoso y tener problemas de caer en mínimos locales
durante su entrenamiento [6].
1.4 Enfoque de reconocimiento lógico combinatorio de
patrones
Este enfoque trabaja en la imagen del modelado de un
problema y debe ser lo más parecido a la realidad del
mismo, sin hacer suposiciones que carezcan de
fundamento. Las ideas centrales consisten también en
suponer que los objetos se describen por medio de una
combinación de rasgos numéricos y no numéricos, y los
distintos valores pueden ser procesados por funciones
numéricas [8]. Utiliza un fundamento teórico-matemático
basándose en la lógica matemática, la teoría de testores,
la teoría clásica de conjuntos, la teoría de los subconjuntos difusos, la teoría combinatoria y las
matemáticas discretas en general.
2. CLASIFICACIÓN EN EL RECONOCIMIENTO
DE PATRONES.
En la clasificación de patrones se dice que dado un
universo de estudio dividido en clases y una muestra de
objetos ya clasificados, se tienen que buscar mecanismos
que permitan clasificar nuevos objetos (patrones) [6].
El proceso de clasificación consiste en incorporar
información sobre un patrón o conjunto de entrenamiento
en el diseño del clasificador que incluye un tipo de
aprendizaje [5]. Existen 3 tipos de aprendizaje que son: el
aprendizaje supervisado, no supervisado y
semisupervisado o parcialmente supervisado. En el
primero se cuenta con un conjunto de patrones pero
también llamado muestra de entrenamiento o conjunto de
datos del entrenamiento (CE). Un experto humano es
quien realiza la clasificación según sus propiedades [9];
para resolver problemas de clasificación supervisada se
han perfeccionado gran cantidad de métodos como: clasificadores Bayesianos, arboles de decisión, redes
neuronales, máquinas de vectores de soporte, vecinos
más cercanos, algoritmos de votación, clasificadores
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 117
basados en patrones, etc. [6]. En el aprendizaje no
supervisado también conocido como agrupamiento [6],
que utiliza algoritmos conocidos como auto-asociativos y
no requiere de un etiquetado previo en los patrones de
entrada y utiliza técnicas de clustering [5]. El aprendizaje
no paramétrico (por agrupamiento) [10], se divide en tres
métodos de agrupamiento, jerárquicos, particionales y
basados en densidad [7]:
En el agrupamiento jerárquico el conjunto de datos se va
particionando por niveles, en cada nivel se unen o se
dividen en dos grupos del nivel anterior, puede ser
aglomerativo o divisivo y éstos en su resultado gráfico es
mediante dendrogramas.
En las aglomerativas: Se utiliza un acercamiento
ascendente: cada observación comienza en su propio
grupo, y los pares de grupos son mezclados mientras uno
sube en la jerarquía.
En las divisivas: Es un acercamiento descendente: todas las observaciones comienzan en un grupo y generalmente
se realizan divisiones mientras uno baja en la jerarquía.
En el agrupamiento del tipo particional son los que al
inicio realizan una división de los datos en grupos y
posteriormente mueven los objetos de un grupo a otro
según se optimice alguna función objetivo.
Los algoritmos basados en densidad enfocan el problema
de la división de un tipo de datos en grupos y se toma en
cuenta la distribución de densidad de los puntos, de modo
que los grupos que se forman tienen una alta densidad de puntos en su interior mientras que entre ellos aparecen
zonas de baja densidad.
Agrupamiento Restringido: El número de grupos está
previamente definido. Esto resulta útil cuando se tiene
conocimiento acerca de la estructura del universo de
estudio, pero se desconoce la clasificación de la muestra.
Agrupamientos Libres: El número de grupos es
desconocido. Éste es el caso más general, sólo cuenta con
una muestra de objetos, pero se desconoce la forma en que se estructura el universo. Y en el aprendizaje
parcialmente supervisado se combinan las 2 técnicas
anteriores, pero se parte de un conjunto pequeño de
patrones de entrenamiento que va creciendo a medida que
hay nuevos patrones sin etiquetar [11] y su objetivo es
aumentar el conocimiento durante la fase de
clasificación, facilitando así la simplificación de
obtención de patrones etiquetados.
3. Aplicaciones actuales y Tendencias en el
Reconocimiento de Patrones
La historia de reconocimiento automatizado de patrones
se remonta a la llegada de la informática moderna a
través de mucho tiempo desde la aparición de la
inteligencia artificial como resultado de la psicología
cognitiva y la lógica matemática donde se incluyen
solución a diagnósticos de fallas, robótica y suministro de
asesoría experta; el concepto de inteligencia artificial se
debe a John McCarthy quien en 1956 al discutir la
posibilidad de construir máquinas que hicieran
operaciones inteligentes acuño este término [12].
El reconocimiento de patrones como una rama que desciende de la inteligencia artificial fue reconocido por
el investigador King-Sun Fu en el año de 1971 [13].
Desde entonces, la popularidad y el crecimiento del
campo de reconocimiento de patrones han sido
alimentados por el mismo significado científico y su
aplicabilidad al mundo real.
El reconocimiento de patrones es un área de
investigación muy desafiante y multidisciplinaria, atrae a
investigadores y profesionales de muchos campos,
incluyendo la informática, la inteligencia, la estática, la
ingeniería y las ciencias médicas computacionales, por mencionar sólo unos pocos. A continuación se muestran
algunas de las aplicaciones y tendencias de
Reconocimiento de Patrones hoy en día.
3.1 Reconocimiento de Escritura cursiva (manuscrito)
El reconocimiento de escritura cursiva o escritura a
mano, es una tarea difícil para muchas aplicaciones del
mundo real, tales como la autenticación de documentos,
procesamiento de formularios, el reconocimiento de la
dirección postal, máquinas de lectura para ciegos, reconocimiento cheque bancario, y la interpretación de
documentos históricos. Al respecto Verma y Blumenstein
[14], revisan las técnicas de reconocimiento de escritura
existentes y presenta el estado actual de la técnica en el
reconocimiento de escritura a mano cursiva.
El artículo también presenta estrategias de segmentación
y un enfoque basado en segmentación para el
reconocimiento automático de la escritura cursiva sin
restricciones. También se ofrece una revisión exhaustiva
de la literatura con las técnicas básicas y avanzadas y resultados de investigación en reconocimiento de
escritura para estudiantes de posgrado, así como para
investigadores avanzados.
En este trabajo se utilizó la técnica de clasificación por
aprendizaje supervisado donde el autor propone en
primer lugar, se propone un método de segmentación
basado en curvas de nivel, el cual soluciona el primer
problema con la forma delineada del caracter. Un
enfoque de extracción del contorno para el caracter entre
dos puntos de segmentación es significativa y útil.
La extracción de contorno es muy importante porque una
extracción basada en una disección vertical puede cortar
un carácter a la mitad o de manera inadecuada. El
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 118
contorno entre dos puntos consecutivos de segmentación
se extrae utilizando prioridad y enfoque basado en la
segmentación forzada, que se basa en la evaluación de
precedencia y la regla para forzar un punto de
segmentación para el reconocimiento del carácter. Por
último, se propone un enfoque de validación neuronal
para eliminar puntos de segmentación incorrectos. Este
enfoque se basa en tres clasificadores que utilizan
perceptrones multicapa (MPLs) y máquinas de vectores soporte (SVMs). El éxito de las técnicas basadas en redes
neuronales para el reconocimiento numérico y de
caracteres ha dado la motivación para su uso.
El reciente éxito en la aplicación de SVMs en el área de
reconocimiento de escritura, justifica su uso junto con
técnicas basadas en redes neuronales, en algunos casos
superando a las redes neuronales. El primer clasificador
es entrenado con información de trazos izquierdos y
derecho del caracter. El segundo clasificador es
entrenado con información descriptiva desde el punto
mismo de segmentación. El tercer clasificador es entrenado con los caracteres adyacentes o compatibles.
Los núcleos finales se fusionan, y se eliminan los puntos
de segmentación dando por resultado un carácter
reconocible.
3.2 Técnicas de juego con elasticidad, para el
reconocimiento de caracteres manuscritos.
El investigador Seiichi Uchida de Kyushu University de
Japón comenta en su artículo [15], un estudio de las
características de la adaptación elástica (elastic matching, EM), que son técnicas empleadas en el reconocimiento
de caracteres manuscritos. EM a menudo se denomina
plantilla deformable, adaptación flexible, o comparación
de plantillas no lineal, y se define como el problema de
optimización de la deformación de dos dimensiones
(2DW) que especifica la correspondencia píxel a píxel
entre dos patrones de imagen de carácter sometidos a
elasticidad.
La distancia de los puntos en un patrón deformable es
evaluada bajo la optimización 2DW y es invariante al rango de deformaciones geométricas de cada caracter.
Por lo tanto, mediante el uso de la distancia EM como
una función discriminante, los sistemas de
reconocimiento robustos a las deformaciones de
caracteres escritos a mano se pueden optimizar más
fácilmente.
En el trabajo realizado por estos investigadores, se
proponen técnicas de EM donde se clasifican según el
tipo de 2DW y las propiedades de cada clase a utilizar.
Varios temas alrededor de EM, como la categoría de
dependiente deformación de los caracteres escritos a mano que también se discuten.
Figura 1. Reconocimiento de 2 patrones A y B donde se aplica la asignación de deformación 2D-2D y posteriormente 2DW
donde se define la diferencia entre dos imágenes de caracteres escritos a mano [15]
Fuente: Elaboración propia
Las técnicas EM para el reconocimiento de escritura a
mano en base a la formulación 2DW que en el cual uno
de los 2 factores determinan las características de EM. Se
estudian 2 tipos de clases paramétrico 2DW basado en
EM y no paramétrico 2DW basado en EM.
Figura 2. Técnicas de clasificación paramétricas y no
paramétricas EM empleadas en el reconocimiento de caracteres manuscritos [15]
Fuente: Elaboración propia
La mayoría de las técnicas de EM paramétricos para el
reconocimiento de caracteres manuscritos suponen que
las deformaciones geométricas de caracteres escritos a
mano pueden ser descritos por algunas transformaciones
lineales. Wakahara y sus colegas han propuesto técnicas
afines a 2DW basados en transformación, llamados GAT
(transformación global afín) [16], para el reconocimiento
de caracteres manuscritos. En GAT, 2DW se describe por una sola transformación afín global. El problema de
optimización de GAT es aproximado como un problema
lineal mediante la fijación de los parámetros en la parte
no lineal de una función objetivo a valores constantes.
Este problema puede ser resuelto aproximada por el
método de iteración sucesiva.
En la clase no paramétrico 2DW, cada variable controla
un pixel correspondiente y representa una medida que
controla a 2DW indirectamente. Para clasificar los puntos
mediante la función no paramétrico y continua 2DW, a menudo se asume como una función continua y derivable
que optimiza por alguna estrategia iterativa donde 2DW
se actualiza. En este sentido la clase no paramétrica y
continua 2DW es similar en paramétrico 2DW. Usando la
relajación determinística se puede ver como una
estrategia de optimización iterativo para problemas
variacionales. Cuando estrategia de optimización para los
problemas variacionales. Al optimizar con clases no
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 119
paramétricas y continua 2DW por relajación determinista
y usando la ecuación de Euler-Lagrange se obtiene un
sistema de ecuaciones no lineales para resolver el
problema elástico de los caracteres.
3.2 Reconocimiento de Rostros
El reconocimiento automático facial, sirve hoy en día
para identificar a los individuos mediante la explotación de las características distintivas de la superficie del rostro
humano, las curvas de la cuenca de los ojos, la nariz y la
barbilla, donde el tejido y el hueso son más evidentes y
que no lo hacen cambiar con el tiempo [17]. Este
reconocimiento se hace con la ayuda de una
computadoras que identifica automáticamente a una
persona mediante una imagen digital mediante el análisis
de las características faciales de una persona extraídas de
la imagen o de un fotograma de video y mediante
técnicas como el procesado de imágenes, reconocimiento
de patrones, visión por computadoras y redes neuronales
puede ayudar a reconocer un rostro. En el trabajo realizado por Tin Shan, Abbas Bigdeli, Brian Lovell y
Shaokang Chen [18] se habla de la problemática existente
en la adquisición de imágenes, tales como el ángulo de la
iluminación, la expresión facial y el pose de la cabeza. La
precisión de adquisición puede caer a 10% o incluso a
menos en condiciones de adquisición de imágenes no
controladas. Tales condiciones se encuentran a menudo
en la captura automática de la identidad para la vigilancia
de vídeo y para la identificación de rostros por medio de
una cámara del teléfono. De hecho, el teléfono móvil es
una ayuda ya que su cámara con alta resolución para el reconocimiento avanzado de patrones en rostros. Muchos
teléfonos modernos pueden reconocer de forma fiable
aún en ambientes ruidosos. El rendimiento de los
sistemas de reconocimiento facial se reduce
significativamente cuando grandes variaciones pose están
presentes. Se han propuesto muchos enfoques para
compensar el cambio pose. Wiskott, Fellous, Kuiger, y
von der Malsburg extienden el DLA (arquitectura de
enlace dinámico) reconocedor de caras basado para hacer
frente a grandes variaciones de pose. La imagen de la
cara está representada por un gráfico de marcado llamado el gráfico racimo de rostros (FBG, face bunch graph) que
consiste en N nodos conectados a E bordes. Los nodos
están localizados como puntos de referencia faciales xn,
n=1,…,N, que son llamados puntos faciales.
En la Biomedicina se ha logrado avances como lo
mencionado por [19], en clasificación de imágenes en la
medicina. Es una de las metodologías más utilizadas en el
campo de la biomedicina para detección de anomalías en
la anatomía del cuerpo humano. La clasificación de la
imagen cerebral pertenece a una amplia categoría de
reconocimiento de patrones en las que diferentes imágenes anormales se agrupan en incomparables
categorías basadas en la naturaleza de estas patologías
que dañan al cerebro.
Figura 3. Imagen del cerebro para su estudio en la localización de patologías [19].
Fuente: Elaboración propia
Hoy en día, estas técnicas son automatizadas. La aplicación de técnicas de inteligencia Artificial (AI) para
el reconocimiento de patrones es explorado en el
contexto de Resonancia Magnética (RM) anormal para la
clasificación de imágenes del cerebro con patologías
extrañas. La teoría ilustra la categoría detrás de las
técnicas de IA y su efectividad para su aplicación
práctica en la clasificación de imágenes médicas. Aparte
de las técnicas de IA como las redes neuronales, la teoría
fuzzy y algoritmos genéticos también se tratan en esta
investigación. En la robótica y con la ayuda del
reconocimiento de imágenes donde se aborda el
problema del reconocimiento de señales generadas por una persona para guiar a un robot. En el trabajo realizado
por [20], donde el método propuesto se basa en el análisis
de color de vídeo de una persona que se mueve por señas.
El análisis consiste en la segmentación de medio cuerpo,
el brazo y la ubicación del antebrazo con ayuda del
reconocimiento de las posiciones del brazo y el
antebrazo. El método propuesto fue probado
experimentalmente en vídeos con diferentes colores de
destino y las condiciones de iluminación. Las
evaluaciones cuantitativas indican 97.76% de la
detección correcta de los signos en 1.807 frames de video.
3.3 Reconocimiento de patrones en la alimentación.
En otro caso como la alimentación se dice en [21] que la
caracterización y clasificación de las tortillas de maíz
resulta ser un proceso extremadamente delicado y difícil
cuando se trata de regulaciones para
importación/exportación y certificación de procesos de
producción. En este trabajo se presenta un método para la
extracción de características no invasivas, basado en
imagen digital y una serie de procedimientos para caracterizar diferentes cualidades de las tortillas de maíz
para su posterior clasificación. La novedad en todo este
método radica en el extremadamente y reducido conjunto
de características necesarias para la caracterización;
tomando en cuenta sólo las características geométricas y
de color. No obstante, en este conjunto de características
puede evaluar diversos elementos de calidad como la
homogeneidad del proceso de horneado y otros por igual.
Los resultados experimentales en un tamaño muestra de
600 tortillas muestran el método presentado en torno al
95% de efectividad en la calidad de las mismas.
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 120
3.4 Reconocimiento de patrones en la seguridad
informática.
En lo que se refiere a la seguridad informática se
menciona en el trabajo [22], donde se captura el tráfico
de red y se ve que cada vez es mayor los incidentes por
ataques, debido al uso creciente de dispositivos
inteligentes e Internet. Importe de los estudios de detección de intrusos se centró en la selección o
reducción característica porque algunas de las
características son irrelevantes y redundantes, que resulta
largo proceso de detección y
degrada el rendimiento de un sistema de detección de
intrusiones (IDS). El propósito de este estudio es
identificar importantes características de los tipos de
intrusiones seleccionados en la construcción del IDS que
es computacionalmente eficiente y efectiva. Para ello se
evalúa el funcionamiento de los métodos de selección de
características estándar; CFS (basada en la selección de
correlación característica), IG (Ganancia de Información) y GR (Radio de ganancia). En este artículo, se propone
un nuevo método de selección de características
utilizando la función de la media del total en cada clase.
Se aplica un algoritmo clasificador basado en árboles,
para evaluar el método de reducción de características. Se
compara sus resultados del método propuesto con otros
métodos mencionados en otros trabajos.
3.5 Reconocimiento de patrones en la predicción de
riesgos en los costos de crédito.
En el trabajo realizado por R. Alejo, A.I. Marqués, J.S.
Sánchez y J.A. Antonio-Velázquez [24], donde se
menciona que las aplicaciones prácticas de la evaluación
del riesgo de crédito donde a menudo el tomar
decisiones incorrectas en el ámbito financiero debido a la
falta de datos suficientes por defecto. La difícil cuestión
de la distribución de clases muy desigual entre clientes
morosos y clientes no morosos se toma e a través de una
solución algorítmica basada en el aprendizaje del costo
razonable. El estudio se llevó a cabo en la red neuronal
perceptrón multicapa, quién pertenece a la solución de aprendizaje supervisado, popular a través de tres
funciones de costos de clasificación errónea, que se
incorporan en el proceso de formación. Los resultados
experimentales sobre los conjuntos de datos de crédito de
la vida real muestran que las funciones de costos
propuestos para formar una red de este tipo neural son
muy eficaces para mejorar la predicción de los ejemplos
que pertenecen a la (minoritaria) clase moroso.
3.5.1 Protocolo Experimental
Se han tomado los conjuntos de datos para probar el rendimiento de las estrategias investigadas en el trabajo.
Los conjuntos de datos australianos, alemanes y
japoneses utilizados son de la base de datos del
repositorio UCI Machine Learning [25]. Los datos de la
UCSD establecen correspondiente a una versión reducida
de una base de datos utilizada en el Concurso de Data
Mining en el 2007 organizado por la Universidad de
California en San Diego y por la Fair Isaac Corporation.
El conjunto de datos de Irán [26], trata de una
modificación de una base de datos de clientes
corporativos de un pequeño banco privado en Irán.
Cada juego original, excepto la base de datos de Irán
debido a su extremadamente alta relación de
desequilibrio (iRatio = 19), ha sido alterada por azar
bajo-muestreo de la clase minoritaria de morosos, lo que
produce seis conjuntos de datos con diferentes
desequilibrio ratios, iRatio = {4, 6, 8, 10, 12, 14}. Por lo
tanto, hemos obtenido un total de 25 conjuntos de datos.
La Tabla 1 resume las principales características de los
conjuntos de datos, incluidas la relación de desequilibrio,
es decir, el número de ejemplos no predeterminados
dividido por el número de los casos predeterminados.
Tabla 1. Algunas características de los conjuntos de datos utilizados en los experimentos. Tener en cuenta que estaban representadas todas las variables de entrada como valores
numéricos
Fuente: Elaboración propia
Fue adoptado un método de validación cruzada de 5
veces para estimar el rendimiento:
Cada conjunto de datos se ha dividido en cinco bloques
estratificados o pliegues de tamaño N / 5 (donde n denota el número total de ejemplos en el conjunto de datos).
Posteriormente, cinco iteraciones de la formación y la
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 121
prueba se realiza de tal manera que en cada iteración un
pliegue diferente de los datos se lleva a cabo de salida
para la prueba mientras que los cuatro pliegues restantes
se utilizan para la formación el clasificador. En
consecuencia, los resultados corresponden a la media de
los cinco atributos calculados.
Los cuatro modelos MLP diferentes se han aplicado a los
conjuntos de entrenamiento desequilibradas.
Para cada MLP que consiste en una capa oculta con
cuatro neuronas, la tasa de aprendizaje y el impulso se
han fijado en 0,1 y 0,01, respectivamente, mientras que la
interrupción criterio ha sido fijada a cualquiera de 25.000
épocas o MSE = 0,001.
La mayoría de las aplicaciones de puntuación de crédito a
menudo emplean la precisión de clasificación (ACC) y/o
las tasas de error para estimar el rendimiento de los
sistemas de aprendizaje. Sin embargo, evidencias
empíricas y evidencias teóricas muestran que estas medidas son parciales con respecto a los datos de
desequilibrio y las proporciones de las clasificaciones
correctas e incorrectas.
Para hacer frente a los problemas del desequilibrio de
clases, el receptor de funcionamiento característico
(ROC), se sugiere como una herramienta adecuada para
la visualización y la selección de los clasificadores
basados en hacer predicciones de riesgo de crédito
precisas el equilibrio entre los beneficios (verdaderos
positivos) y costos (falsos positivos). Una representación cuantitativa de una curva de ROC es el área debajo de
ella (AUC). Por sólo una carrera de un clasificador, el
AUC puede calcularse como AUC= (sensibilidad
especificidad +) / 2, donde la sensibilidad es el porcentaje
de malos ejemplos que se han predicho correctamente,
mientras que la especificidad corresponde al porcentaje
de buenos casos que se predijeron son buenos.
4. CONCLUSIONES
En los trabajos anteriormente citados nos ayudan a comprender como el reconocimiento de patrones es una
ciencia computacional que ayuda a solucionar
problemáticas mediante el estudio de las clases
representadas en diversas formas pero categorizadas en
su estudio en 2 tipos de aprendizaje que son el
aprendizaje supervisado y no supervisado que ayudan a
los investigadores hoy en día a utilizar cada vez más
técnicas de reconocimiento de patrones en especial en lo
relacionado con el aprendizaje no supervisado en el cual
un experto humano no está al pendiente de los resultados
obtenidos.
Se espera que en un futuro no muy lejano se tengan
noticias sobre nuevas expectativas en lo relacionado al
reconocimiento de patrones.
5. REFERENCIAS
[1] L. A. Gonzalez-Naranjo, G. M. Vasquez y L. A.
Ramírez Gómez, «End-Stage Renal Disease in Systemic
Lupus Erythematosus,» Revista Colombiana de
Reumatología, vol. 16, nº 2, pp. 75-81, 2009.
[2] J. A. Franco Galván, «RECONOCIMIENTO DE
VOZ PARA NIÑOS CON DISCAPACIDAD EN EL
HABLA,» Universidad de las Americas de Puebla, Puebla, Puebla, 2004.
[3] Umoh, U.A, A. A. Umoh, G. G. James, U. U.
Oton, J. J. Udoudo y E. B., «Design of Pattern
Recognition System for the Diagnosis of Gonorrhea
Disease,» International Journal of Scientific &
Technologic Research, vol. 1, pp. 5-8, 2012.
[4] J. Pérez León, J. H. Sossa Azuela y L. A. Villa
Vargas, Tele-manipulación de objetos mediante un robot
Khepera II, Vols. 1 de 2c-30, México D.F.: CIC IPN,
2009, pp. 30-35.
[5] R. M. Valdovinos Rosas, Técnicas de
Submuestreo, Toma de Decisiones y Análisis de Diversidad en Aprendizaje Supervisado con Sistemas
Múltiples de Clasificación., Castelló de la Plana, España:
Universitat Jaume I, 2006.
[6] J. A. Carrasco Ochoa y J. F. Martínez Trinidad,
«Theory of Pattern Recognition,» Komputer Sapiens, vol.
II, nº III, pp. 5-9, 2011.
[7] D. Pascual, F. Pla y S. Sánchez, «Algoritmos de
agrupamiento,» Universida Jaume I, pp. 163-175, 2007.
[8] X. Olvera-Rocha y M. Ortiz-Posadas,
«Diagnóstico Diferencial de Glaucoma Mediante el
Enfoque Lógico-Combinatorio de Reconocimiento de Patrones,» Serie Verde, pp. 674-677, 2011.
[9] C. Soto y C. Jiménez, «APRENDIZAJE
SUPERVISADO PARA LA DISCRIMINACIÓN Y,»
scielo, vol. 1, pp. 26-33, 2011.
[10] D. E. Pinto Avendaño, P. Rosso y H. Jiménez
Salazar, Tratamiento de Textos Cortos: Agrupamiento y
Evaluaci´on, Valencia, España: Universidad Politécnica
de Valencia, 2007.
[11] O. Chapelle, B. Schölkopf y A. Zien, Semi-
Supervised Learning, Massachusetts: The MIT Press,
2006. [12] A. Pazos , N. Pedreira, J. R. Rabuñal y J.
Pereira, «Inteligencia Artificial y Computación
Avanzada,» Inteligencia Artificial y Computación
Avanzada, vol. 1, nº 13, pp. 9-34, 2007.
[13] P. S.P Wang, Pattern Recognition, Machine
Intelligence and Biometrics, Beijing, China: Higher
Eduacation Press, Beijing, 2011.
[14] B. Verma y M. Blumenstein, «Fusion of
Segmentation Strategies for Off-Line Cursive
Handwriting Recognition,» Pattern Recognition
Technologies and Applications: Recent Advances, vol. 1,
nº 1, pp. 1-16, 2008. [15] S. Uchida, «Elastic Matching Techniques for
Handwritten Character Recognition,» Pattern
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 122
Recognition Technologies and Applications Recent
Advances, vol. 1, nº 1, pp. 17-38, 2008.
[16] S. Makino y T. Wakahara, «Affine-Invariant
Recognition of Face Images Using GAT Correlation,» in
Proceedings of International Workshop on Advanced
Technology 2006, vol. 1, pp. 279-284, 2006.
[17] M. Williams, «Technology Review,» Better
Face-Recognition Software, 30 Mayo 2007. [En línea].
Available: http://www.technologyreview.com/news/407976/better-
face-recognition-software/. [Último acceso: 23 09 2014].
[18] T. Shan, A. Bigdel y S. Chen, «Robust Face
Recognition Technique for a Real-Time Embedded Face
Recognition System,» Pattern Recognition Technologies
and Applications: Recent Advances, vol. 1, nº 1, pp. 188-
211, 2008.
[19] D. J. Hemanth y J. Anitha, «Tecniques for
Pattern Recognition in Biomedical Image Processing
Applications (IRMA),» Information Resources
Management Association, vol. 2, nº 1, pp. 711-716, 2013.
[20] L. Saldivar-Piñon, M. I. Chacon-Murguia, R. Sandoval-Rodriguez y J. Vega-Pineda, «Human Sign
Recognition for Robot Manipulation,» Pattern
Recognition, Lecture Notes in Computer Science 4th
Mexican Conference, MCPR 2012, vol. 7329, pp. 107-
116, 2012.
[21] M. A. Moreno-Armendariz, S. Godoy-Calderón,
H. Calvo y O. M. Rojas-Padilla, «Assessing the Quality
Level of Corn Tortillas with Inductive Characterization
and Digital Image Analysis,» Pattern Recognition,
Lecture Notes in Computer Science 4th Mexican
Conference, MCPR 2013, vol. 7914, pp. 40-53, 2013. [22] C. Hee-su, J. Byung-oh, C. Sang-Hyun y P.
Twae-kyung, «Feature Selection for Intrusion Detection
using NSL-KDD,» Recent Advances in Computer
Science, pp. 184-187, 2013.
[23] J. A. C. Ochoa, «Reconocimiento de Patrones,»
2004. [En línea]. Available:
http://ccc.inaoep.mx/~ariel/recpat.pdf. [Último acceso:
26 Agosto 2014].
[24] R. Alejo, V. García, A. I. Marqués, S. J. S. y A.-V.
J.A, «Making Accurate Credit Risk Predictions with
Cost-Sensitive MLP Neural Networks,» Management Intelligent Systems, Advances in Intelligent Systems and
Computing, vol. 220, pp. 1-8, 2013.
[25] Frank, A., Asunción, A.: UCI Machine learning
repository (2010), http://archive.ics.uci.edu/ml.
[26] Sabzevari, H., Soleymani, M., Noorbakhsh, E.: A
comparison between statical and datamining methods for
credit scoring in case of limited avalable data. In: Proc.
the 3rd CRC Credit Scoring Conference (2007).
______________________________________________ Juan Alberto Antonio Velázquez: Ingeniero en sistemas
Computacionales con estudios de Maestría en Tecnologías de Cómputo
en el Centro de Investigación y Desarrollo Tecnológico en Cómputo del
Instituto Politécnico Nacional. Actualmente se desarrolla en el área de
investigación en el Tecnológico de Estudios Superiores de Jocotitlán en
la línea de investigación de Aplicaciones de minería de datos y
reconocimiento de patrones para el apoyo en la toma de decisiones y
aplicaciones de redes y sistemas distribuidos además de colaborar en el
Centro Universitario de Ixtlahuaca.
Roberto Alejo Eleuterio: Ingeniero en sistemas computacionales, con
estudios de maestría en ciencias de la ingeniería en el Instituto
Tecnológico de Toluca, además de doctorarse en la universidad Jaume I
en Castello de la Plana España: Actualmente desarrolla trabajos de
investigación en minería de datos y reconocimiento de patrones en el
Tecnológico de Estudios Superiores de Jocotitlán en la línea de
investigación de Aplicaciones de minería de datos y reconocimiento de
patrones para el apoyo en la toma de decisiones y aplicaciones de redes
y sistemas distribuidos además de colaborar en el Centro Universitario
de Ixtlahuaca como profesor de posgrado en el programa de maestría en
TIC’s. Candidato a SNI Conacyt.
Erika López González: Ingeniera en Computación con estudios de
Maestría en Tecnologías de Cómputo en el Centro de Investigación y
Desarrollo Tecnológico en Cómputo del Instituto Politécnico Nacional.
Actualmente se desarrolla en el área de investigación en el Tecnológico
de Estudios Superiores de Jocotitlán en la línea de investigación de
Aplicaciones de minería de datos y reconocimiento de patrones para el
apoyo en la toma de decisiones y aplicaciones de redes y sistemas
distribuidos.
Leopoldo Gil Antonio: Licenciado en electrónica con estudios de
Maestría en Tecnologías de Cómputo en el Centro de Investigación y
Desarrollo Tecnológico en Cómputo del Instituto Politécnico Nacional.
Actualmente se desarrolla en el área de investigación en el Tecnológico
de Estudios Superiores de Jocotitlán en la línea de investigación de
Aplicaciones de minería de datos y reconocimiento de patrones para el
apoyo en la toma de decisiones y aplicaciones de redes y sistemas
distribuidos.
Rosa María Valdovinos Rosas: Doctora en la universidad Jaume I en
Castello de la Plana España. Profesor-Investigador de Tiempo
Completo en la Facultad de Ingeniería de la UAEM en la División de
Computación
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 123
DESARROLLO DE UN MODELO GA-MLP PARA EL DIAGNÓSTICO DE NEFROPATÍA
DIABÉTICA BASADO EN INFORMACIÓN PROTEÓMICA EN ORINA
Resumen— En este trabajo se desarrolló un modelo basado en la
estrategia algoritmo genético-red neuronal backpropagation para el
diagnóstico no invasivo de nefropatía diabética basado en la
información proteómica contenida en muestras de orina.
Se seleccionaron 373 pacientes que presentan diabetes y 68 que
presentan nefropatía diabética. El análisis de las muestras de orina y
la obtención de los datos fue mediante espectrometría de masas y dio
como resultado 5010 péptidos distintos. Se utilizaron 30
biomarcadores péptidos más significativos, seleccionados mediante un
algoritmo genético, con estos se desarrolló un modelo basado en la red neuronal backpropagation, utilizando como método de
optimización el gradiente conjugado escalado en el ajuste de los pesos
de la red y el método early-stopping para evitar el sobre
entrenamiento. El modelo neuronal logró diagnosticar la nefropatía
diabética con 97.7% de aciertos con una sensibilidad de 100% y
especificidad de 97.6%.
Los resultados de esta investigación sugieren que es factible el uso de
un modelo neuronal entrenado con información proteómica para el
diagnóstico de la nefropatía diabética.
Palabras claves— Algoritmos Genéticos, Nefropatía Diabética,
Proteómica, Redes Neuronales.
Mario Alberto González Avalos
Ingeniero en Electrónica
Instituto Tecnológico de Durango
Jesús Celis Porras
Doctorado en Ciencias de la Computación Instituto Tecnológico de Durango
Francisco Javier Godínez García
Doctorado en Ciencias en Ingeniería
Bioquímica
Instituto Tecnológico de Durango
1. INTRODUCCIÓN
La diabetes mellitus (DM) es un conjunto de trastornos
metabólicos [1], que afecta a diferentes órganos y tejidos,
como son los riñones; dura toda la vida y se caracteriza
por un aumento de los niveles de glucosa en la sangre, el
daño que el exceso de glucosa en sangre causa a las nefronas se llama nefropatía diabética. , los
principales síntomas son:
a) Ascitis (acumulación de líquido en el espacio
que existe entre el revestimiento del abdomen y
los órganos abdominales)
b) Edema de miembros inferiores
c) Pérdida de apetito
d) Cansancio
La nefropatía diabética es responsable de cerca del 30%
de los enfermos en diálisis periódica y la primera causa
de trasplante renal en los países occidentales [2]. Las proteínas son partes vitales de los organismos vivos, ya
que son los componentes principales de las rutas
metabólicas de las células. La descripción del proteoma
permite tener una imagen dinámica de todas las proteínas
expresadas, en un momento dado y bajo determinadas
condiciones concretas de tiempo y ambiente. El estudio y
comparación sistemáticos del proteoma en diferentes
situaciones metabólicos y/o patológicos permite
identificar aquellas proteínas cuya presencia, ausencia o
alteración se correlaciona con determinados estadios
fisiológicos. En el caso concreto del análisis proteómico asociado a patologías concretas, es posible identificar
proteínas que permitirían diagnosticar la enfermedad o
pronosticar la evolución de la misma. Dichas proteínas se
conocen con el nombre genérico de biomarcadores [3].
Las redes de neuronas artificiales (RNA) son un
paradigma de aprendizaje y procesamiento
automático inspirado en la forma en que funciona el sistema nervioso de los animales. Se trata de
un sistema de interconexión de neuronas que colaboran
entre sí para producir un estímulo de salida.
El Primer modelo de red neuronal fue propuesto en 1943
por McCulloch y Pitts en términos de un modelo
computacional de "actividad nerviosa". El modelo de
McCulloch-Pitts es un modelo binario, y cada neurona
tiene un escalón o umbral prefijado [4]. Este primer
modelo sirvió de ejemplo para los modelos posteriores de
Jhon Von Neumann, Marvin Minsky, Frank Rosenblatt, y
muchos otros.
Cada neurona recibe una serie de entradas a través de
interconexiones y emite una salida. Esta salida viene
dada por tres funciones [5]:
1. Una función de propagación, que por lo general
consiste en el sumatorio de cada entrada multiplicada
por el peso de su interconexión (valor neto). Si el
peso es positivo, la conexión se
denomina excitadora; si es negativo, se
denomina inhibitoria.
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México.
2. Una función de activación, que modifica a la
anterior. Puede no existir, siendo en este caso la
salida la misma función de propagación.
3. Una función de transferencia, que se aplica al valor
devuelto por la función de activación. Se utiliza para
acotar la salida de la neurona y generalmente viene
dada por la interpretación que queramos darle a
dichas salidas. Algunas de las más utilizadas son
la función sigmoidea y la tangente hiperbólica.
Las RNA tienen muchas ventajas debido a que está
basado en la estructura del sistema nervioso,
principalmente el cerebro.
a) Aprendizaje: Las RNA tienen la habilidad de
aprender mediante una etapa que se llama etapa
de aprendizaje. Esta consiste en proporcionar a
la RNA datos como entrada a su vez que se le
indica cuál es la salida (respuesta) esperada.
b) Auto organización: Una RNA crea su propia
representación de la información en su interior, descargando al usuario de esto.
c) Tolerancia a fallos: Debido a que una RNA
almacena la información de forma redundante,
ésta puede seguir respondiendo de manera
aceptable aun si se daña parcialmente.
d) Flexibilidad: Una RNA puede manejar cambios
no importantes en la información de entrada,
como señales con ruido u otros cambios en la
entrada.
e) Tiempo real: La estructura de una RNA es
paralela, por lo cual si esto es implementado con computadoras o en dispositivos
electrónicos especiales, se pueden obtener
respuestas en tiempo real.
Una aplicación común de las redes neuronales estáticas
es la clasificación de patrones en clases. La capacidad de
aprender con ejemplos y clasificar patrones, son
cualidades de las redes neuronales multicapa que se han
explotado en medicina, por ejemplo en [6]:
Deficiencias en el sistema inmune y alergias
Enfermedades oculares
Detección de infartos
Segmentación de imágenes del cerebro
Diagnóstico de la enfermedad de Alzheimer
2. METODOLOGIA
Utilizando una base de datos generada mediante la
técnica de espectrometría de masas con muestras de orina
de un total de 373 pacientes que presentan diabetes y 68
pacientes que presentan nefropatía diabética, se obtuvieron 5010 péptidos distintos para representar el
proteoma de bajo peso molecular del sistema bajo
estudio.
La reducción de dimensionalidad fue realizada mediante
un algoritmo genético, estos corresponden a una de las
distintas técnicas conocidas bajo el nombre de
computación evolucionaria, que están inspiradas en el
concepto de la evolución biológica. La idea principal es
que cada individuo de una población representa una
posible solución al problema de optimización que se
desea resolver y de acuerdo a la adaptación de cada
individuo al problema presentado (medida dada por una función objetivo determinada), se producirá la evolución
de la población. Con ello se generan nuevas posibles
soluciones que corresponderán al resultado de procesos
de recombinación de los distintos individuos iniciales.
También se puede considerar la introducción de nuevas
soluciones realizando mutaciones sobre los individuos
existentes [7].
El modelo de red neuronal usado es de la arquitectura
perceptrón multicapa (MLP) entrenada mediante la regla
de aprendizaje backpropagation [8] su correspondiente es
la Ec 1. El perceptrón multicapa está formado por una capa de entrada, una capa de salida y una o más capas
ocultas o intermedias; la información se transmita desde
la capa de entrada hasta la capa de salida y cada neurona
está conectada con todas las neuronas de la siguiente
capa.
( ) ( ) (1)
Donde:
= Peso entre la neurona i y la neurona j.
Numero de iteración.
= Tasa de aprendizaje.
= Error de la neurona j para el patrón p.
= Error de la neurona i para el patrón p.
= Momento.
Como método de optimización se utilizó el gradiente
conjugado escalado y el método early-stopping para
evitar el overfitting o sobre entrenamiento. La
metodología early-stopping consiste en realizar una
pasada por los patrones del conjunto de validación
después de cierto número de pasadas por los patrones del
conjunto de entrenamiento, de forma que se pueda hacer
un seguimiento tanto del error de entrenamiento como del
de validación; cuando se aprecie un aumento apreciable
del error de validación se detendrá proceso de
entrenamiento de la red neuronal puesto que se puede
asegurar que si se continuara, se produciría el overfitting con lo que la capacidad de generalización y predicción de
la red se vería claramente perjudicada.
2.1 RESULTADOS
La reducción de dimensionalidad se realizó usando un
algoritmo genético con una tamaño de población de 120
individuos, después de 50 iteraciones arrojó como
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México.
resultado 30 biomarcadores significativos para el
diagnóstico de nefropatía diabética.
Se utilizó una red neuronal backpropagation, cuya
arquitectura consistió en 10 neuronas en la capa oculta,
con funciones de activación del tipo tangencial
sigmoidales y 2 neuronas en la capa de salida con
funciones de activación del tipo exponencial normalizado
(softmax), se entrenó la red con 331 señales de las cuales 293 corresponden a pacientes que presentan diabetes y 38
a pacientes que presentan nefropatía diabética, durante 19
épocas donde su mejor rendimiento fue para un error de
0.1937 para lo cual se utilizó como método de
optimización el gradiente conjugado escalado en el ajuste
de los pesos de la red y para evitar el sobre entrenamiento
se utilizó el método early-stopping, con un grupo de
validación de 66 señales. La figura 1 muestra las curvas
de rendimiento.
.La medicina es una ciencia de probabilidades y un arte
de manejar la incertidumbre. Dicha incertidumbre se extiende no sólo a las actividades preventivas,
terapéuticas y pronosticas sino también a las
diagnósticas.
Es evidente que una buena prueba diagnóstica es la que
ofrece resultados positivos en enfermos y negativos en
sanos, es decir sensibilidad y especificidad.
Sensibilidad
Es la probabilidad de clasificar correctamente a un individuo enfermo, es decir, la probabilidad de que para
un sujeto enfermo se obtenga en la prueba un resultado
positivo. La sensibilidad es, por lo tanto, la capacidad del
test para detectar la enfermedad.
Es fácil estimar la sensibilidad como la proporción de
pacientes enfermos que obtuvieron un resultado positivo
en la prueba diagnóstica, su correspondiente es la Ec 2.
De ahí que también la sensibilidad se conozca como
―fracción de verdaderos positivos (FVP)‖.
(2)
Especificidad
Es la probabilidad de clasificar correctamente a un
individuo sano, es decir, la probabilidad de que para un
sujeto sano se obtenga un resultado negativo. En otras
palabras, se puede definir la especificidad como la
capacidad para detectar a los sanos, la especificidad se
estimaría con la Ec. 3, de ahí que también sea
denominada ―fracción de verdaderos negativos (FVN)‖.
(3)
El modelo neuronal logró diagnosticar la nefropatía
diabética con 97.7% de aciertos con una sensibilidad de
100% y especificidad de 97.6% a partir de un conjunto de
prueba de un total de 53 señales. La figura 2 muestra la
matriz de confusión correspondiente.
Figura 1 Curvas de Rendimiento
Fuente: Elaboración propia
Figura 2 Matriz de Confusión
Fuente: Elaboración propia
3. CONCLUSIONES Y RECOMENDACIONES
El uso de las redes neuronales es una gran opción para el
diagnóstico de diferentes patologías; los resultados de
esta investigación sugieren que es factible el uso de un
modelo neuronal entrenado con información proteómica para el diagnóstico de la nefropatía diabética, facilitando
así el trabajo clínico.
Esta investigación solo demuestra que es posible el uso
de redes neuronales en el ámbito del diagnóstico médico,
para crear un modelo neuronal realmente aplicable se
debe contar con una gran cantidad de sujetos de prueba,
lo que lleva a un trabajo de investigación más completo.
4. REFERENCIAS
[1] Harrison, Principios de Medicina Interna, 16a
edición
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México.
[2] World Health Organization Department of
Noncommunicable Disease Surveillance
[3] Hanash SM, Pitteri SJ, Faca VM. Mining the
plasma proteome for cancer biomarkers. Nature. 2008
Apr 3;452(7187):571-9. Review. PubMed PMID:
18385731.
[4] S. Y. Kung Digital neural networks, 1993, PTR
Prentice Hall, Inc.
[5] C.Lau, Neural Networks, Theoretical Foundations and Analysis", 1991, IEEE Press
[6] Gorban, A.N. et al. Medical, psychological and
physiological applications of multineuron neural
simulator. Proceedings of the Secon Intemational
Symposium on Neuroinformatics and Neurocomputers
1995
[7] Holland J.H., Adaptation in natural and artificial
systems, MIT Press, Cambridge, Second edition, 1992.
[8] S. Y. Kung, ―Digital neural networks‖ 1993 by PTR
Prentice Hall, Inc.
______________________________________________ Mario Alberto González Avalos: Ingeniero en Electrónica por el
Instituto Tecnológico de Durango, actualmente estudiante de Maestría
en Ciencias en Ingeniería Electrónica en el Instituto Tecnológico de
Durango. Áreas de interés: Procesamiento Digital de Señales, Redes
Neuronales.
Jesús Celis Porras: Doctorado en Ciencias de la Computación por el
Centro de Investigación en Computación del Instituto Politécnico
Nacional. Actualmente es profesor-investigador en el programa de
posgrado de la Maestría en Ciencias en Ingeniería Electrónica del
departamento de Ingeniería Eléctrica y Electrónica del Instituto
tecnológico de Durango. Áreas de interés: Redes Neuronales, Redes
Bayesianas, Algoritmos Genéticos.
Francisco Javier Godínez García: Doctorado en Ciencias en
Ingeniería Bioquímica por el Instituto Tecnológico de Durango,
Maestría en Ciencias en Ingeniería eléctrica por el Instituto Tecnológico
de la Laguna. Actualmente es profesor investigador en el programa de
Maestría en Ciencias en Ingeniería Electrónica de Instituto Tecnológico
de Durango. Áreas de interés: Procesamiento de Señales Eléctricas,
Instrumentación y Control y Aplicación de Técnicas
de Inspección Eléctricas (Ultrasonido, Infrarrojo, RF y Magnéticas).
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 127
MODELO BASADO EN UNA RED NEURONAL BACK PROPAGATION PARA LA
DETECCIÓN DE VPH DE ALTO RIESGO A PARTIR DE INFORMACIÓN GENETICA
Resumen— Se desarrolló un modelo neuronal de diagnóstico del
VPH de alto riesgo utilizando una base de datos con 109 señales
recolectadas a partir de muestras de captura de híbridos de exudado
vaginal para lo cual se utilizó un dispositivo electrónico, el cual emite
luz ultravioleta en el rango UV-A. El siguiente paso fue realizar el
procesamiento de señales aplicando la transformada rápida de
Fourier y se aplicó el algoritmo de análisis de varianza ANOVA. Se
obtuvieron un total de 23 frecuencias significativas en cada señal. Por
último se construyó la red neuronal back propagation, se entrenó con
82 señales. El modelo neuronal logró diagnosticar la presencia del VPH con 90.9% de aciertos con una sensibilidad de 100% y
especificidad de 88.9%. A partir de los resultados obtenidos podemos
concluir que el modelo neuronal podría ser una opción viable para el
diagnóstico dela presencia del VPH.
Palabras claves— Anova, Red neuronal, Ultravioleta, VPH.
Juan Andrés Díaz García
Instituto Tecnológico de Durango
Jesús Celis Porras
Instituto Tecnológico de Durango
Rubén Guerrero Rivera
Instituto Tecnológico de Durango [email protected]
Elva Marcela Coria Quiñones
Universidad Juárez del Estado de Durango
1. INTRODUCCIÓN
El virus del papiloma humano (VPH) representa un
importante problema de salud a nivel mundial ya que es
la infección de transmisión sexual más común, existen
más de cien tipos del VPH aunque solo 20 se consideran
de alto riesgo por ser los causantes de diferentes tipos de
cáncer principalmente el cáncer cervico-uterino [1]. En la
actualidad existen diversos métodos para la detección del
VPH como:
a) Captura de híbridos: Aunque se ofrece de forma
gratuita, tiene limitaciones como el gran número
de falsos positivos y negativos.
b) Reacción en Cadena de Polimerasa (PCR),
técnica de patología molecular con la que se
puede conocer exactamente el virus que causa la
infección.
c) Papanicolaou y la colposcopia, que son relativamente económicas, pero tienen
sensibilidades del 51 y 38%, respectivamente.
Las características de las redes neuronales las hacen
bastante apropiadas para aplicaciones en las que no se
dispone a priori de un modelo identificable que pueda ser
programado, pero se dispone de un conjunto básico de
ejemplos de entrada (previamente clasificados o no).
Asimismo, presentan una alta tolerancia tanto al ruido
como a la disfunción de elementos concretos.
Las redes neuronales tienen aplicaciones en una amplia gama de campos esto incluye problemas de clasificación
y reconocimiento de patrones de voz, imágenes, señales,
etc. Asimismo se han utilizado para encontrar patrones de
fraude económico, hacer predicciones en el mercado
financiero, hacer predicciones de tiempo atmosférico, y
recientemente han incursionado en el campo de la
medicina logrando resultados aceptables en el
diagnóstico e identificación de enfermedades [2].
2. METOLOGÍA
Se diseñó y construyó un dispositivo electrónico para el
análisis de las señales el cual consiste en un LED que
emite luz ultravioleta a una longitud de onda de 350nm y un fotodiodo UV además de una interface entre el
dispositivo y la computadora para la visualización y
captura de las señales (Figura 1).
La medición se realizó sobre muestras de captura de
híbridos de exudado vaginal que fueron colocadas una
por una en una probeta de cuarzo donde se realizó la
medición. Utilizando las señales que previamente fueron
capturadas se construyó la base de datos con 109
muestras de las cuales 66 muestras contienen el virus del
papiloma humano de alto riesgo y 43 contienen el virus del papiloma humano de bajo riesgo.
Figura 1. Dispositivo Electrónico de Captura de Señales
Fuente: Elaboración propia
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 128
Una vez construida la base de datos se procede a
convertirla al dominio de la frecuencia utilizando la
transformada rápida de Fourier (FFT) Ec.(1).
(1)
La base de datos en el dominio de la frecuencia nos
aporta mayor cantidad de información y hace que la señal
sea más descriptiva. Se prosiguió analizando la base de
datos para determinar el tipo de distribución para esto se
utilizó la prueba de normalidad q-q plot, obteniendo la
gráfica de la figura 2 donde se puede ver que la línea azul
intenta seguir la línea punteada color rojo, esto nos indica
que la distribución es normal sin embargo en los
extremos tiende a separarse de la línea roja y esto indica
que es una distribución normal sesgada. También se realizó la prueba de Bartlett para determinar la
homogeneidad en las varianzas Ec. (2).
Figura 3. Grafica Q-Q Plot
Fuente: Elaboración propia
(2)
Una vez que se conoce el tipo de distribución se puede
tomar una decisión respecto a que método de selección
de características utilizar. Para realizar una extracción de
características con la finalidad de seleccionar únicamente
las frecuencias importantes en la señal desechando las
que no aportan información útil para esto aplicamos el
algoritmo de análisis de varianza ANOVA Ec. (3) el cual
es utilizado para establecer si existen diferencias
significativas en las medias entre dos o más muestras. Su
nombre deriva del hecho que las varianzas son usadas
para establecer las diferencias entre las medias [3][4].
(3)
Por último se construyó un modelo basado en la red
neuronal back propagation, se entrenó con 82 señales,
48 de bajo riesgo y 34 de alto riesgo, se realizaron
corridas de la modelo comenzando con una neurona en la
capa oculta e incrementando el número de neuronas hasta
obtener un modelo con una predicción aceptable, para
disminuir el error se utilizó como método de optimización gradiente conjugado escalado en el ajuste
de los pesos de la red y el método de detección temprana,
para evitar el sobre-entrenamiento, se utilizó un grupo de
validación de 16 señales, 11 de bajo riesgo y 5 de alto
riesgo [5].
La intención de este trabajo no es reemplazar a los
métodos ya existentes únicamente se propone un método
alternativo de diagnóstico del VPH de alto y bajo riesgo
utilizando un modelo neuronal back propagation basado
en la información genética contenida en las frecuencias del espectro de Fourier a partir de señales en el rango de
UV-A.
3. RESULTADOS
Los resultados que arrojaron la prueba de normalidad Q-
Q Plot y la prueba de Bartlett indicaron que la
distribución es normal y con varianzas iguales por lo que
se tomó la decisión de utilizar el algoritmo ANOVA
como selector de características.
Con la aplicación del algoritmo ANOVA se logró extraer 23 frecuencias importantes de 1024 que se tenían
inicialmente, la arquitectura de la red con la que se
obtuvieron los mejores resultados consistió en 10
neuronas en la capa oculta, con funciones de activación
del tipo tangencial sigmoidales y 2 neuronas en la capa
oculta con funciones de activación del tipo tangencial
sigmoidales, el método de optimización logró reducir el
error a 0.493 (Figura 3), el modelo neuronal logró
diagnosticar la presencia del VPH con 90.9% de aciertos
con una sensibilidad de 100% y especificidad de 88.9% a
partir de un conjunto de prueba de un total de 11 señales, 9 de bajo riesgo y 2 de alto riesgo (Figura 4).
Figura 6. Grafica de entrenamiento de la red neuronal
Fuente: Elaboración propia
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 129
Figura 7. Matriz de confusión.
Fuente: Elaboración propia
4. CONCLUSIONES
A partir de los resultados obtenidos podemos concluir
que el modelo neuronal podría ser una opción viable
para el diagnóstico dela presencia del VPH.
5. REFERENCIAS
[1] M. Castaño Ignacio, G. Hurtado Estrada, Test de
VPH (captura de híbridos II) en pacientes tratadas con
radiofrecuencia, Vol. IV, No. 1 enero-abril 2012 pp 13-
21
[2] R Dybowski, V Gant, Artificial neural networks in
pathology and medical laboratories, The Lancet, Volume
346, Issue 8984, 4 November 1995, Pages 1203-1207,
ISSN 0140-6736,
[3] P. Duhamel, M. Vetterli, Fast fourier transforms: A
tutorial review and a state of the art, Signal Processing,
Volume 19, Issue 4, April 1990, Pages 259-299, ISSN
0165-1684,
[4] Paul Pavlidis, Using ANOVA for gene selection from microarray studies of the nervous system, Methods,
Volume 31, Issue 4, December 2003, Pages 282-289,
ISSN 1046-2023.
[5] Baxt WG. Use of an Artificial Neural Network for the
Diagnosis of Myocardial Infarction. Ann Intern Med.
1991;115:843-848. doi:10.7326/0003-4819-115-11-843 _________________________________________________________
Juan Andrés Díaz García: Ingeniero en Electrónica, estudiante de la
Maestría en Ciencias en Ingeniería Electrónica en el Instituto
Tecnológico de Durango.
Jesús Celis Porras. Doctorado en Ciencias de la Computación por el
Centro de Investigación en Computación del Instituto Politécnico
Nacional. Actualmente es profesor-investigador en el programa de
posgrado de la Maestría en Ciencias en Ingeniería Electrónica del
departamento de Ingeniería Eléctrica y Electrónica del Instituto
tecnológico de Durango. Áreas de interés: Redes neuronales, Redes
Bayesianas, Algoritmos Genéticos.
Elva Marcela Coria Quiñones. Maestría en Química Analítica
Aplicada en la Universidad Regiomontana de Monterrey. Actualmente
somos colaboradora en el Instituto de Investigación Científica de la
Universidad Juárez del Estado de Durango. Áreas de Interés Manejo y
Determinaciones mediante equipos instrumentales aplicados a la
Química Analítica.
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 130
INTERFAZ DE RECONOCIMIENTO DE MOVIMIENTOS PARA EL
LENGUAJE DE SEÑAS MEXICANO IMPLEMENTANDO EL KINECT
Resumen— Con el avance de la tecnología y el desarrollo de nuevas
aplicaciones que facilitan la vida cotidiana son más empleadas, por
tal motivo en este trabajo se estudió el lenguaje de señas, ocupando
principalmente palabras y el abecedario utilizando los movimientos
más comunes para desarrollar una interfaz interactiva que traduzca
palabras del lenguaje de señas mexicano al idioma español, lo que es
un preámbulo al desarrollo de una interfaz terapéutica para el área de
gerontología, usando la tecnología del kinect de Microsoft; la
metodología empleada para el desarrollo, es scrum que es ágil y
flexible para gestionar el desarrollo de software.
Palabras claves— kinect, reconocimiento
Erika López González
Tecnológico de Estudios Superiores de
Jocotitlán
Juan A. Antonio Velázquez
Tecnológico de Estudios Superiores de
Jocotitlán
Roberto Alejo Eleuterio
Tecnológico de Estudios Superiores de
Jocotitlán
Leopoldo Gil Antonio
Tecnológico de Estudios Superiores de
Jocotitlán
1. INTRODUCCIÓN
Uno de los dispositivos que ha surgido en la actualidad es
el Microsoft kinect, el objetivo de este trabajo es utilizar
esa tecnología para generar una interfaz traductora de
palabras del lenguaje de señas que sirva como base en la toma de movimientos para las terapias que se aplican en
la Gerontología y puedan ofrecer una mejor calidad de
vida al adulto mayor.
La universidad CES de Colombia publicó el artículo
Traducción automática del lenguaje dactilológico de
sordos y sordomudos mediante sistemas adaptativos. En
este artículo se presenta el desarrollo de un sistema
integrado de hardware y software, para el reconocimiento
automático del lenguaje dactilológico de señas Betancur
B.D[1 ]. El hardware está compuesto por un sistema
inalámbrico adherido a un guante, el cual posee un conjunto de sensores que capturan una serie de señales
generadas por los movimientos gestuales de la mano, y
un modelo por adaptación basado en los principios de la
computación neuronal, el cual permite su reconocimiento
en términos de un lenguaje dactilológico en particular.
Los resultados arrojados por el sistema integrado
mostraron gran efectividad en el reconocimiento de las
vocales que conforman el lenguaje dactilológico en
español, esto gracias a la capacidad que posee el modelo
de asociar un conjunto de señales de entrada, sin embargo la principal desventaja que presenta este proyecto es el
uso del guante dactilológico ya que es un dispositivo
construido por múltiples sensores en cada dedo, lo cual
hace que la fabricación y uso de dicho dispositivo no sea
rentable y el coste sea mayor.
Microsoft también tiene en desarrollo programas para
ayudar a ciegos y sordos en el Centro de Investigación de
Microsoft en India Escandell D.[2], los programas tienen dos objetivos, uno de ellos es traducir las señas realizadas
por un usuario a texto, y otra es representar en el monitor
el texto introducido por un usuario mediante imágenes,
Onís, es un proyecto argentino desarrollado por 5
alumnos, el cual principalmente tiene los mismos
objetivos que los proyectos desarrollados por Microsoft.
Además Daniel Martínez Capilla de la Universidad de
Tennessee desarrollo un Traductor del Lenguaje de Señas
usando Microsoft Kinect XBOX 360 basándose en los
movimientos del cuerpo y estos los obtiene con la ayuda
de la API Skeleton la cual simula el cuerpo y permite identificar los movimientos Martínez C.D. [3].
En México no se han difundido proyectos
implementando el Kinect, se ha optado por otras
alternativas como el uso de un guante electrónico que
transforma movimientos de la mano en palabras que
aparecen escritas en una pantalla de cristal líquido
desarrollado por alumnos del Instituto Politécnico
Nacional (IPN) Becerril D.J et.al. [4].
Una de las principales limitaciones que presentan las personas con discapacidad auditiva está directamente
relacionada con su dificultad para interactuar con otras
personas, ya sea de forma verbal o a través de sistemas
auxiliares basados en voz y audio. Por consecuencia la
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 131
dificultad que la práctica y el uso del lenguaje de señas,
obstaculizan establecer una comunicación por parte de
los educandos con discapacidad auditiva, se propone un
software interactivo por medio de kinect que ayude a
practicar el lenguaje de señas por medio de
reconocimiento de movimientos.
2. TÉCNICAS
El kinect es un dispositivo creado por Microsoft para su
videoconsola Xbox 360. Permite a los usuarios controlar
e interactuar con la consola sin necesidad de tener
contacto físico con un controlador de videojuegos
tradicional, mediante una interfaz natural de usuario que
reconoce gestos, comandos de voz, y objetos e imágenes.
El sensor Kinect es capaz de capturar el mundo que lo
rodea en 3D mediante la combinación de la información
obtenida de la cámara RGB y del sensor de profundidad.
El resultado de esta combinación es una imagen RGB-D
(color + profundidad) con una resolución de 320x240,
donde a cada uno de los píxeles se le asigna dicha información. Microsoft [6].
El nombre Scrum deriva de una analogía con el Rugby:
en este deporte se llama Scrum una manera de reiniciar
rápidamente el juego cuando se haya interrumpido por
alguna infracción accidental, así Scrum se ha
desarrollado anteponiendo las prioridades de unos
proyectos concretos a las reglas de la Ingeniería del
Software. Scrum es una metodología ágil y flexible para
gestionar el desarrollo de software, Softeng [8].
2.1 PRODUCT BACKLOG
En esta fase del proyecto se determinaron y analizaron
las principales ideas y se priorizaron, en este sentido el
conocer la estructura básica y nomenclatura del lenguaje
de señas estándar en México; trabajar con una
implementación adecuada del Kinect como herramienta
para leer el lenguaje de señas.
Así mismo diseñar una aplicación capaz de almacenar
configuraciones del lenguaje de señas obtenidas del modelo virtual que a la vez obtiene las configuraciones
de una persona haciendo uso del Kinect. Generar un
software interactivo traductor de palabras del lenguaje de
señas mexicano como ayuda, usando como herramienta
el Kinect, considerando que es una aplicación de bajo
costo y mejora la interacción entre el usuario y el
software en comparación con la aplicación del guante
dactilológico.
También fueron usados los siguientes requerimientos:
Microsoft Visual Studio Ultimate 2013.
Kinect de primera generación.
Kinect for Windows developer Toolkit v1.8.0.
Windows 7 Professional.
Procesador Intel Core i3 2.40 GHz.
3 Gb Memoria RAM.
Skeletal Tracking que permite reconocer el cuerpo y
seguir acciones.[9]
Api Skeleton.
SkeletonFrame.
Shape (es un UIElement de windows para dibujar
formas, con el se dibujaron las líneas)
2.2 SPRINT PLANNING
En esta parte del trabajo se realizó un estudio sobre el
lenguaje de señas estándar de México (LSM)
fundamentado en el DIELSELME (Diccionario Español
de Lengua de Señas Mexicano) que establece un total de
535 palabras del español las que asocian 608 señas.
Como parte inicial del trabajo se ejecutó el código de
SkeletonBasics-WPF de esta manera se exhiben los
elementos que componen un traking default del Kinect.
Se identificaron 20 elementos, figura1, sin embargo el
lenguaje de señas mexicano trabaja con la parte superior del cuerpo es por ello que se hace notoria la importancia
de ésta, generando una nueva manera de traking
considerando los siguientes:
a) HAND_RIGHT,
b) WRIST_RIGHT,
c) ELBOW_RIGHT,
d) SHOULDER_RIGHT,
e) HAND_LEFT,
f) WRIST_LEFT,
g) ELBOW_LEFT,
h) SHOULDER_LEFT, i) HEAD,
j) SHOUL_DERCENTER,
k) SPINE,
l) HIP_CENTER.
Figura 1. SkeletonBasics-WPF
Fuente: Realización propia
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 132
Los movimientos son llamados formas en el lenguaje de
señas los cuales son recibidos por el Kinect, el cual
maneja los movimientos de un modelo virtual de la
persona.
Los elementos que se utilizaron para el traking, se
trabajan de forma individual lo que representa mayor
tiempo para plasmarlos de manera gráfica por las
propiedades que presentan, además de causar un mayor consumo de recursos por parte del sistema operativo, al
estar al tanto de esta situación, y como propuesta se crean
4 arreglos para el traking con los elementos necesarios ya
que se reduce el tiempo de traking, por ende se
disminuye la carga de trabajo para el sistema operativo y
los elementos por cada arreglo fueron:
Arreglo 1 Extremidad Derecha: HandRight,
WristRight, ElbowRight, ShoulderRight.
Arreglo 2 Extremidad Izquierda: HandLeft, WristLeft, ElbowLeft, ShoulderLeft.
Arreglo 3 Torso: Head, ShoulderCenter, Spine,
HipCenter.
Arreglo 4 Hombros: ShoulderLeft, ShoulderCenter,
ShoulderRight.
2.3 Sprint Backlog
Se asignaron diferentes tareas y se revisan los avances
citados adelante.
Para generar una salida a color, se ocupa la cámara RGB
la cual ejecuta la lectura frente al sensor Kinect, pero esto
involucro hacer un mapeo, ya que existe una separación
física entre ambas cámaras (Profundidad y RGB) lo que
no permite que las lecturas estén alineadas de una manera
exacta, por lo que se utilizo el método:
CoordinateMapper.MapSkeletonPointToColorPoint que
proporciona el Kinect.
Las articulaciones del cuerpo del kinect no son estables,
la mayor parte del tiempo está oscilando y la razón son
las condiciones óptimas de iluminación, por ello se
agregó un rango de aceptación a la trayectoria.
Una matriz que divide el área del cuerpo exactamente en
16 partes para conocer la posición en la que se
encuentran las manos en el plano gesto espacial y que al
mismo tiempo permita el control de manera gradual de la
oscilación presentada, la tolerancia de 5 unidades
cardinales para que sea efectivo el cambio de posición, si la lectura de la mano derecha se toma en la posición
número 1 y esta se mueve dentro del rango permitido la
lectura se efectuara pero continuara estando en la
posición del arreglo 1, lo que se observa en la figura 2.
Figura 2. Matriz corporal y manejo de oscilación
Fuente: Realización propia
Para el trabajo con el tracking de los dedos se propone
trabajar con 3D Hand and Finger Recognitionusing
kinect el cual describe un método robusto y eficiente para realizar un seguimiento de la mano y los dedos en tiempo
real utilizando el dispositivo kinect. Este dispositivo
permite obtener una imágen de profundidad, en lugar de
una imágen normal RGB, lo que da más información que
una cámara normal. Este tipo de imágenes son más útiles
para el seguimiento y, se representar los puntos
relevantes en un espacio 3D.
Los procedimientos necesarios para realizar un
seguimiento de las manos con sus respectivos
componentes (palma y punta de los dedos) propuestos en
el trabajo de F. Trapero Cerezo. Lo primero fue trabajar con la profundidad, para esto se basa en la proximidad
del kinect y en los pixeles de la cámara, considerando
adaptar la resolución de 320x240 pixeles, porque da la
suficiente definición para distinguir el contorno de las
manos, lo que reduce considerablemente el número de
operaciones, así mismo, se generó una matriz que
contiene los pixeles e indica la cercanía de los mismos,
permitiendo acceder a los datos de una manera más fácil.
Para el contorno de la mano, se calcula aplicando el
"algoritmo de la tortuga ―, una vez que un punto se añade
al contorno de una parte, este punto se marcará como visitado. Así que, después de terminar el contorno de una
parte, la aplicación busca otro punto del contorno para
calcular el contorno ordenado de la otra mano. Si todo el
contorno de puntos se ha visto, no hay más manos para
analizar. Si el contorno es pequeño en comparación con
el número total de puntos de contorno, se debe descartar.
Posteriormente se continúa con el centro de la palma, que
es uno de los puntos que proporciona mucha de la
información. Este punto indica dónde está la mano, junto
con las yemas de los dedos, puede ser utilizado para
calcular información relevante para identificar gestos. El
centro de la mano es, por lo general, el círculo mayor que cabe dentro del contorno de la mano. Con el fin de
encontrar este punto, se calculan las distancias mínimas
de cada interior que apunta a cada punto del contorno, y
desde estas distancias se selecciona el máximo, como se
observa en la figura 3.
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 133
Figura 3. Cálculo del centro de la palma de la mano.
Fuente: Realización propia
3. RESULTADOS Y DISCUSIONES
Como parte de los resultados parciales utilizando los
arreglos antes descritos para captar las partes superiores
del cuerpo y asociando los patrones de posición se logran
ejecutar las palabras, donde la trayectoria del movimiento
es la misma con ambos brazos, la asociación de patrones
de posiciones con palabras será mostrada una vez que
coincida con los movimientos corporales capturados por
el kinect; en la figura 4, donde se observa este resultado.
Figura 4. Palabras capturadas
Fuente: Realización propia
En el trabajo del traqueo de las manos se ha obtenido el
conteo de los números del 1 al 10 y las letras del
abecedario, la interpretación del lenguaje dactilológico
ejecuta un conteo de los dedos identificados que se
involucran al momento de la ejecución de la seña, esto se
muestra en la figura 5, sección a) se asigna un
identificador para cada dedo de ambas manos esto para
comparar la cantidad e identificar los que forman parte
del conteo y asignar un significado al momento de la lectura de la seña; sección b) con el mismo principio se
realiza la interpretación de las letras que conforman el
abecedario.
Figura 5. Señales dactilológicas
a) Conteo de dedos (números). b) Letras
Fuente: Realización propia
4. CONCLUSIONES Y RECOMENDACIONES
Se conoció el lenguaje de señas y la variación que se
tiene en la región de Ixtlahuaca, del mismo modo se
realizó un ambiente para poder interpretar las lecturas a
un ambiente gráfico y tener un medio de visualización
para identificar los comportamientos del software en
ejecución también se interpretaron palabras usando
ambas manos.
Así mismo se formó el traqueo de los dedos de las
manos, hasta el grado de hacer un conteo, identificar números y letras. Hasta el momento se han logrado
resultados favorables, contar con la traducción de señas
en donde la dactilología de las manos no se encuentra
notable, ha permitido lograr un éxito y un alcance vial
para la continuidad y vida del proyecto, sin embargo se
pretende alcanzar la traducción de las señas dividendo
cada una de ellas por campos semánticos y trabajarlo con
prioridades según las técnicas de aprendizaje sobre el
lenguaje de señas.
5. RECOMENDACIONES
Las soluciones técnicas utilizadas aún son iníciales es
necesario implementar filtros digitales para reducir el
temblor, algunas técnicas de segmentación más robustas
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 134
y sobre todo sistemas de reconocimiento más robusto.
Hace falta mucho por hacer.
6. REFERENCIAS
[1] Betancur B.D; Vélez G. M; Peña P. A. Traducción
automática del lenguaje dactilológico de sordos y
sordomudos mediante sistemas adaptativos [online].
(2013) p.1-13. [2] Escandell D. Microsoft desarrolla programas para
ayudar a ciegos y sordomudos con Kinect [Internet]
(2012). [Acceso 23 de febrero 2014].
[3] Martínez C. D. Sign Language Translator using
Microsoft Kinect XBOX 360 [online] p.1-75. (2012)
[Acceso 25 de febrero 2014].
[4] Becerril D. J; Cerda G. L; Nieto S. D. IPN diseña
guante electrónico para sordo-mudos. (2008) [Acceso 1
de marzo 2014].
[5] Calvo H. M. T. Diccionario español - Lengua de
señas mexicana (DIELSEME) p.1-48. [Acceso 28 de
Febrero 2014]. [6] Microsoft (2014) Visual C# [Acceso 17 de marzo
2014].
[7] Rossum V. Python. (2001) [Acceso 12 de marzo].
[8] Softeng Metodología Scrum. (2014) [Acceso 10 de
marzo 2014].
[9] Softeng Metodología Scrum. (2014) [Acceso 10 de
marzo 2014].
[10] Comunidad OpenKinect, librerías de código abierto
para Kinect [Acceso 19 de marzo 2014].disponible en:
openkinect.org/wiki/Main_Page.
[11] Kinect for Windows [Acceso 19 de marzo 2014].
Disponible en: www.microsoft.com/en-us/kinect for Windows/
______________________________________________ Erika López González: Ingeniero en Computación con estudios de
Maestría en Tecnología de Computo por el Instituto Politécnico
Nacional. Profesor a nivel licenciatura con 8 años de experiencia.
Juan A. Antonio Velázquez: Ingeniero en sistemas computacionales
con estudios de Maestría en Tecnología de Computo por el Instituto
Politécnico Nacional. Profesor a nivel licenciatura con más de 9 años de
experiencia.
Roberto Alejo Eleuterio: Ingeniero en Computación con estudios de
Maestría en Ciencias Ciencias Computacionales y Doctorado en
Sistemas Informáticos Avanzados. Profesor a nivel licenciatura y
posgrado con más de 10 años de experiencia.
Leopoldo Gil Antonio: Ingeniero en Electrónica y de Comunicaciones
con estudios de Maestría en Tecnología de Computo por el Instituto
Politécnico Nacional. Profesor a nivel licenciatura con más de 10 años
de experiencia.
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 135
ESTRATEGIA DE PARALELIZACIÓN BASADA EN REDUCIONES
PARALELAS PARA RENDERSCRIPT
Resumen-- RenderScript es un conjunto de herramientas diseñadas
por Google para soportar el procesamiento paralelo en los
dispositivos móviles con Android. Esta herramienta fue diseñada
principalmente para su ejecución en diversos componentes de
procesamiento como: Unidades Centrales de Procesamiento (CPU´s
por sus siglas en inglés), Procesadores Digitales de Señales (DSP´s
por sus siglas en inglés) y Unidades Gráficas de Procesamiento
(GPU´s por sus siglas en inglés)para lograr la portabilidad entre
distintos dispositivos móviles.Se diseñó con un motor de ejecución o
runtime que decide dónde y cómo ejecutar el código en paralelo; también se le puede indicar que ejecute el código en una GPU o DSP
disponible utilizando FilterScript que una herramienta de
RenderScript que garantiza la compatibilidad con GPU´s y DSP´s.
RenderScript es una plataforma de cómputo heterogéneo que difiere
tanto en la codificación como en la abstracción del problema a otras
plataformas actualmente usadas como OpenCL y CUDA. Sin
embargo, este nuevo paradigma de paralelización no cuenta con
estrategias claras para la implementación de algoritmos, por lo que en
este trabajo se proponen distintas estrategias para la implementación
de algoritmos como por ejemplo reducciones en vectores entre otros.
Palabras claves-- Procesamiento paralelo, RenderScript, unidades de
procesamiento gráfico, GPU, Reducción.
.
JESÚS ALVAREZ-CEDILLO
JUAN HERRERA-LOZADA
Instituto Politécnico Nacional, CITEDI, Av.
del Parque No. 131O, Mesa de Otay, Tijuana,
Baja California, México.
JACOBO SANDOVAL-GUTIERREZ
TEODORO ALVAREZ- SANCHEZ Instituto Politécnico Nacional CIDETEC
UP Adolfo López Mateos Edif. CIDETEC
México D.F., México.
1. INTRODUCCIÓN
Un procesador vectorial es un procesador que puede
calcular un valor entero en una instrucción. Un operando
vectorial de operación exclusiva de memoria contiene
una secuencia de n elementos, llamados componentes,
donde n es la longitud del vector. Cada componente del vector es un escalar de cualquier tipo (entero, punto
flotante, etc.).
Los operadores vectoriales generalmente están
clasificados en los siguientes:
V→V (operación vectorial unitaria)
V×V→V(operación vectorial binaria)
V→K(reducción unitaria)
V×V→K(reducción binaria)
K×V→V (operación de escalado)
Donde K= valor escalar y V= operación vectorial. Una instrucción vectorial equivale generalmente a la
ejecución de un bucle completo de instrucciones donde
cada iteración trabaja sobre cada componente individual
del vector.
Las operaciones vectoriales en memoria son mejores que
las escalares por:
Cada resultado es independiente
Una simple instrucción vectorial sustituye a muchas
escalares, precisan acceso a la memoria con un patrón de
acceso fijo (adyacentes).
Se evita un problema en control del salto del bucle.
Son operaciones más rápidas.
En este artículo se elaborón dos estrategias para realizar
operaciones vectorial binarias V×V sobre dispositivos
mobiles (Smarthphones y Tablets) utilizando
RenderScript.
¿Qué es RenderScript?
RenderScript es un Framework para realizar cómputo del
alto rendimiento orientado al procesamiento paralelo
sobre dispositivos móviles con sistema operativo
Android.
RenderScript está diseñado para ejecutar los algoritmos
en paralelo en todos los procesadores disponibles como:
los CPU’s multinúcleo, GPU’so DSP’s. Algunas
aplicaciones pueden desarrollarse utilizando el
procesamiento de propósito personal, como la visión
computacional o procesamiento de imágenes.
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 136
Las aplicaciones que utilizan RenderScript se ejecutan
dentro de la máquina virtual de Android, por lo cual se
utiliza la Interfaz de programación de aplicaciones (API)
de Java para manejar la vida de los recursos de
RenderScript y controlar la ejecución del kernel [3].
RenderScript representa un conjunto de herramientas y
un lenguaje de alto nivel para realizar cómputo intensivo
de procesamiento paralelo sobre dispositivos con Android, en combinación con la programación secuencial
genera beneficios y optimizar los procesos que se
ejecutan en su modelo de ejecución.
RenderScript realiza la distribución de los trabajos a
través de diferentes hilos y optimiza el uso de todos los
procesadores disponibles sobre dispositivo, las unidades
de procesamiento gráfico (GPU), DSPS y las unidades de
procesamiento centra (CPU) y soporta múltiples CORES.
RenderScript crea algoritmos perfectamente balanceados
en su carga, de esta manera cualquier aplicación de
propósito general podrá realizarse y ejecutarse utilizando ampliamente los recursos del dispositivo móvil.
La programación de RenderScript está basada en los
partes básicas:
Uso de de núcleos de cómputo de alto desempeño, estos
se escriben sobre un lenguaje derivado de C99.
una interfaz de aplicación desarrollada en el lenguaje de
programación Java
FilterScript
FilterScript es un subconjunto de RenderScript el cual
contiene restricciones para poder funcionar en una gran
variedad de procesadores (CPU’s, GPU’s, DSP’s). En
FilterScript los punteros no están permitidos, por lo cual
no se puede leer la memoria directamente y se tienen que
usar funciones de acceso de la API de RenderScript [1].
1.1 Modelo de ejecución
La arquitectura de un dispositivo móvil tiene grandes diferencias a otros sistemas paralelos grandes tales como
un sistema de escritorio o un sistema de alta
disponibilidad. La comunicación entre el CPU y el CPU a
través de la memoria Mobile DDR, mDDR o LPDDR,
(es un tipo de DRAM síncrona de doble precisión
especial para dispositivos móviles), se realiza a 12Gb/s y
el conjunto de instrucciones soporta hasta 70 GFLOPS en
el GPU y hasta 20 GFLOPS en el CPU. Observe la figura
1.
Su funcionamiento es el siguiente:
El código de ejecución se programa en un lenguaje
basado en c99 y es compilado con un formato intermedio.
El código encapsulado o KERNEL es procesado y crea
un código binario no dependiente de la arquitectura.
Una rutina compila el código binario anterior para uno o
más procesadores.
Los encapsulados especiales, son integrados de acuerdo a
las necesidades de programador para algunas
operaciones comunes.
Las clases de JAVA son creadas automáticamente por el
Kit de desarrollo.
La administración de los recursos y la ejecución son
controladas por las interfaces de aplicación de Java.
Se realiza la integración con la máquina virtual, se
integra en un archivo ejecutable el binario del
encapsulado y el código de control en Java como
aplicación.
Figura 1. Arquitectura de un dispositivo móvil.
Fuente: Elaboración propia.
2. TRABAJO REALACIONADO
Actualmente existen algunas propuestas de cómo
codificar en RenderScript a partir de otras plataformas de cómputo heterogéneo, sin embargo no plantean
directamente una estrategia de programación que
aproveche todas las herramientas de RenderScript.
Dentro de las propuestas existentes para la codificación
en RenderScript se encuentra ―Code generation for
emebedded heterogéneous architectures on android‖ [1],
en donde los autores proponen utilizar el Framework
HeterogeneousImageProcessingAcceleration(HIPA) para
generar kenerl´s para el procesamiento de imágenes y
adaptarlos a la estructura de RenderScript.
La segunda propuesta de codificación―O2render: An
OpenCL-to –Render script translator for porting across
various GPUs or CPUs‖[2] es sobre la implementación
de un traductor de código OpenCL a RenderScript. Al
analizar los trabajos previos sobre la codificación en
RenderScript queda claro que no se pueden exportar
automáticamente todas las características de las
plataformas de cómputo heterogéneo a RenderScript y
que no se aprovechan óptimamente los recursos.
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 137
3. METODOLOGIA
Algunos algoritmos requieren que a partir de un conjunto
de datos entrada se reduzca el número de elementos del
conjunto de salida; algunos ejemplos de estas
operaciones son: el promedio, la suma acumulativa, el
máximo, entre otros.A este tipo de operaciones dentro del
procesamiento paralelo se les conoce como operaciones
de reducción. Al realizar este tipo de operaciones en arquitecturas paralelas se tiene el problema de que los
hilos de ejecución en paralelo no se pueden escribir en
una localidad de memoria al mismo tiempo. La dificultad
intrínseca de este tipo de operaciones en paralelo se
mezcla con las limitaciones de la plataforma paralela.
En RenderScript y en FilterScript se complican las
operaciones de reducción ya que un kernel de ejecución
requiere que la longitud de los datos de entrada debe ser
igual a la de los datos de salida. Otra limitación
importante es que no se tiene control sobre cuantos hilos
de ejecución se invocan y solo se puede modificar esta característica variando la longitud de los datos de
entrada y salida.
Al analizar los trabajos existentes se evidencia la
necesidad de generar nuevas estrategias de programación
para la plataforma de cómputo paralelo móvilde
RenderScript y FilterScript siendo las operaciones de
reducción una de las más complicadas de implementar,
por lo que en este trabajo se plantean algunasestrategias
para la implementación de operaciones de reducción.
3.1 Solución propuesta
Los códigos en RenderScript que ejemplifican las
estrategias programación están diseñadas para la API de
Android 4.1 en adelante.
Para dar solución a las operaciones de reducción en
RenderScript se plantean tres estrategias posibles, estas
son ejemplificadas con la suma acumulativa de un vector
de flotantes en RenderScript y FilterScript.
3.2 Estrategia 1
La primera estrategia, consiste en limitar las localidades
de memoria sobre las que se ejecutan los hilos por medio
de su ID de hilo.
Ventajas:
a) Se realiza sobre las mismas localidades de
memoria.
b) Facilidad de abstracción.
c) El Kernel en RenderScript se puede llamar recursivamente hasta la condición de paro.
Desventajas:
Se desperdician hilos de ejecución.
El Kernel en RenderScriptse escribiría como lo muestra
el siguiente código (figura 1): Figura 1. Kernel en RenderScript con estrategia 1
intsize;
void root(int32_t *v_out, uint32_t x,uint32_t y) {
if (x < divisor) v_out[y] += v_out[size-y];
}
. Fuente: Elaboración propia
El Kernel en FilterScriptse escribiría como lo muestra el
siguiente código (figura 2):
Figura 2. Kernel en FilterScript con estrategia 1
int size;
rs_allocation input;
float __attribute__((kernel)) root(uint32_t x) {
if(x < size)
return
rsGetElementAt_float(input,x)+rsGetElementAt_float(in
put,size-x) ;
return 0;
}
Fuente: Elaboración propia
3.3 Estrategia 2
La segunda estrategia consiste en aprovechar las
estructuras de datos proporcionadas por FilterScript y
RenderScript.Aunque las estructuras de entrada y salida tienen que ser del mismo tamaño no necesariamente debe
ser del mismo tipo de dato.
Ventajas:
a) Se aprovechan todos los hilos invocados.
b) Se aprovecha toda la memoria reservada.
c) Desventajas:
d) Hay que cambiar el tamaño de memoria para
cada reducción.
e) Hay que adaptar el algoritmo a las estructuras de datos.
En este caso el Kernel en RenderScript y FilterScript el
código sería el siguiente (figura 3):
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 138
Figura 3. Kernel en RenderScript y FilterScript con estrategia 2.
float __attribute__((kernel)) root(const float2
v_in,uint32_t x) {
return v_in[0]+v_in[1]; }
Fuente: Elaboración propia
4. RESULTADOS Y DISCUSIONES
Con las estrategias propuestas en la sección anterior se
implementó la Serie de Mercator (ecuación 1) para el
cálculo del logaritmo natural. Se eligió este ejemplo
porque el cálculo de las potencias en la GPU es altamente
costoso.
En el siguiente código (figura 3) se muestra el Kernel
para el cálculo de los valores de la sumatoria:
Figura 4. Kernel para el cálculo de los valores
float2 __attribute__((kernel)) root(uint32_t x) {
float2 resultado;
int id = x+1;
resultado[0] = alter(id)*(pown(n,id)/id); id = total-x;
resultado[1] = alter(id)*(pown(n,id)/id);
returnresultado;
} Fuente: Elaboración propia
Para el diseño de este Kernel se basó en la segunda
estrategia propuesta para la implementación. La tabla 1
muestra los resultados promedios en ejecución
Tabla 1. Resultados obtenidos con ambas estrategias
DATOS Dalvik E1 E2
10 7.106161038 9 8
100 50.49752469 45 30
1000 2550 200 307
100000 6502500 20000 10000
1000000 4.22825E+13 15000 8000
1000000 1.78781E+27 12000 11000 Fuente: Elaboración propia
La grafica 3 muestra el resultado en tiempos, la gráfica 4
muestra los valores obtenidos en la aproximación
obtenida al resolver la serie de Mercator.
Figura 5. Comparativo de los resultados Obtenidos
Fuente: Elaboración propia.
5. CONCLUSIONES
La plataforma de cómputo paralelo RenderScript de
Google es relativamente nueva a comparación de las
otras plataformas y sigue con constantes cambios, lo que
ha generado que su documentación no esté del todo
completa. Otro de los inconvenientes que presenta es que
se necesitan nuevas estrategias para la implementación,
ya que no se tiene control sobre el número de hilos a
ejecutar y otras herramientas que presentan las otras
plataformas de cómputo paralelo; respecto a su
desempeño, como mencionan en [4] donde dicen que OpenCL tiene un performance 88% mejor que su
propuesta Android-Aparapi.
Sin embargo, la plataforma de Google tiene la premisa de
ser compatible con sin número de dispositivos y ejecutar
el código de la manera más óptima en el hardware
disponible en el teléfono, también rescatando una
reducción en el consumo energético.
Con las correctas estrategias de programación se puede
obtener un excelente rendimiento comparable a las otras plataformas y tiene la ventaja de la portabilidad entre
dispositivos móviles.
Como se revisó en este trabajo al utilizar RenderScript se
pueden realizar gran cantidad de cálculos en poco tiempo
en los dispositivos móviles; esto abre la puerta para la
implementación de algoritmos que antes era inaccesible
para estos dispositivos, así el cómputo científico cuenta
con una herramienta que puede ser de vital importancia
para la validación de algoritmos.
6. REFERENCIAS
[1] Membarth, R.; Reiche, O.; Hannig, F.; Teich, J.,
"Code generation for embedded heterogeneous
architectures on android," Design, Automation and Test
in Europe Conference and Exhibition (DATE), 2014,
vol., no., pp.1, 6, 24-28 March 2014.
[2]Cheng-Yan Yang; Yi-jui Wu; Liao, S., "O2render: An
OpenCL-to-RenderScript translator for porting across
various GPUs or CPUs," Embedded Systems for Real-
time Multimedia (ESTIMedia), 2012 IEEE 10th
Symposium on, vol., no., pp.67, 74, 11-12 Oct. 2012
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 139
[3] Google Inc. RenderScript [Online].Available:
http://developer.android.com/guide/topics/renderscript/co
mpute.html
[4] Hung-Shuen Chen; Jr-Yuan Chiou; Cheng-Yan Yang;
Yi-jui Wu; Wei-chung Hwang; Hao-Chien Hung; Shih-
Wei Liao, "Design and implementation of high-level
compute on Android systems," Embedded Systems for
Real-time Multimedia (ESTIMedia), 2013 IEEE 11th
Symposium on , vol., no., pp.96,104, 3-4 Oct. 2013
______________________________________________ Jesús Antonio Álvarez Cedillo: Graduado por la Escuela Superior de
Ingeniería Mecánica y Eléctrica (ESIME) del Instituto Politécnico
Nacional, en la Ciudad de México, como ingeniero en comunicaciones
y electrónica en 1997 y posteriormente como Maestro en Ciencias de la
Informática por la Unidad Profesional Interdisciplinaria de Ingeniería y
Ciencias Sociales y Administrativas (UPIICSA) del Instituto
Politécnico Nacional en el año 2002. Desde 2007 es candidato a Doctor
en Tecnologías Avanzadas en el Centro de Investigación e Innovación
Tecnológica (CIITEC) del Instituto Politécnico Nacional. Ha ejercido
como profesor e investigador de tiempo completo del Centro de
Innovación y Desarrollo Tecnológico en Cómputo (CIDETEC) desde
2000. Ha publicado diversos artículos relacionados con arquitectura de
computadoras, procesamiento paralelo y algoritmos de alto desempeño.
Juan Carlos Herrera Lozada: Ingeniero en Comunicaciones y
Electrónica, egresado de la Escuela Superior de Ingeniería Mecánica y
Eléctrica del Instituto Politécnico Nacional, en la Ciudad de México, en
el año de 1996. En 2002 obtuvo el grado de Maestro en Ingeniería de
Cómputo con especialidad en Sistemas Digitales y en 2011 obtuvo el
grado de Doctor en Ciencias de la Computación, ambos en el Centro de
Investigación en Computación del Instituto Politécnico Nacional,
también en la Ciudad de México. Actualmente está adscrito al Centro
de Innovación y Desarrollo Tecnológico en Cómputo del Instituto
Politécnico Nacional, en donde ingresó desde 1998. Ha sido autor de
diversos artículos y ponente en congresos nacionales e internacionales.
Jacobo Sandoval: Actualmente es Profesor Visitante en el proyecto de
Arquitecturas de Sistemas Embebidos para la Investigación Científica y
la Integración de Tecnologías para el Centro de Innovación y Desarrollo
Tecnológico en Cómputo del Instituto Politécnico Nacional, CIDETEC,
tiene Doctorado y Maestría en Tecnología Avanzada por el IPN.
Teodoro Álvarez Sánchez: Maestría en sistemas digitales por Instituto
Politécnico Nacional CINTEC. Estudiante de Doctorado en Ciencias
del IPN-CIC (Cómputo Paralelo).
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 140
MÉTODO DE SIMULACIÓN DE REPLICADO DE INFORMACIÓN USANDO UNA BASE
DE DATOS EN JODBC EN UN SISTEMA DISTRIBUIDO TRABAJANDO
CON EL MODELO CLIENTE SERVIDOR.
Resumen— Se construye un simulador en lenguaje Java para
comprobar el replicado de datos en un sistema distribuido,
manejando una base de datos en JODBC siendo esta una API la cual
es independiente del sistema operativo donde se ejecute el programa, o de la base de datos a la cual se accede. Se hace un acuse de recibo a
fin de comprobar que los datos son copiados fielmente del lado
cliente al lado servidor, todo esto bajo la arquitectura cliente-
servidor usando el sistema de sockets con la técnica de paso de
mensajes, y el protocolo tcp/ip.
Palabras claves— Lenguaje Java, Simulador, sockets, Sistema
Cliente-Servidor, replicados de datos, base de datos, ODBC, JODBC.
DUARTE HERNÁNDEZ EZEQUIEL
ALEJANDRO Instituto Tecnológico de Tlalnepantla
ARMANDO DE JESUS RUIZ CALDERÓN
SOFÍA BARRÓN PÉREZ
ABEL GONZALEZ CAÑAS
1. INTRODUCCIÓN
Lo primero que se realiza es configurar el sistema de
ODBC usando el programa de Administración de
orígenes de datos de ODBC de Microsoft con la base de
datos llamada Replicado y tres tablas para el manejo de
los registros de la tabla llamada Persona de los cuales pretenden replicar en el servidor y luego regresar o sea
replicar nuevamente la información y compararla con la
original.
Una vez que se han obtenido los datos de la base de
datos del servidor se prepara el sistema o programa de
comunicaciones para poder enviar los datos usando un
protocolo de comunicaciones tcp/ip mediante el uso de
sockets de comunicación siendo estos de tipo stream o
sea son orientados a no conexión y son no fiables, el cual
permite enviar y recibir información de un punto a otro
sin tener que preocuparse si se recibe o no la información, por lo tanto la información fluye en este
caso del lado cliente al servidor y luego lo más
importante regresar esta información que se ve como una
réplica y ya que la información se regresó viene la
comparación de los datos replicados con el original y
comprobar que no hay ninguna alteración de los datos
que se siguen conservando como el original. Para que se
pueda hacer la conexión se requiere que el lado cliente
use la dirección ip del servidor junto con el número de
puerto al cual se pretende accesar al propio servidor.
2. DESARROLLO DE CONTENIDOS
Para trabajar con el sistema de base de datos en ODBC
de Microsoft se usa la aplicación de Administrador de
orígenes de datos del mismo, es aquí donde se da de alta
una base de datos con la que se va a trabajar en este caso
se llama Replicado que está hecha en Access y el archivo
se llama también REPLICADO.mdb, como se muestra
en la Figura 1.
Figura 1. Base de datos REPLICADO en Access.
Fuente: Elaboración propia
La base de datos Replicado contiene tres tablas que son
Pasatiempo, Persona y Tabla1 de estas la que se va a usar
es la de Persona la cual contiene cuatro atributos que son
Rfc, Nombre, Dirección y Teléfono.
El replicado se inicia desde el primer registro de la tabla
Persona hasta el último registro no importa que tan
pequeño o grande sea como se ve en la Figura 2.
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 141
Figura 2. La base de datos Replicado con La tabla Persona.
Fuente: Elaboración propia.
Ya que la base de datos esta lista para usarse se hace el programa para abrir la base de datos y leer todos los
registros de la tabla Persona como se muestra a
continuación en el fragmento de código.
String driverSun =
"sun.jdbc.odbc.JdbcOdbcDriver";
String driverMs =
"com.ms.jdbc.odbc.JdbcOdbcDriver";
// UBICACION DE LA BASE DE DATOS,
HACE REFERENCIA AL MANEJADOR DEL ODBC
String ubicacion = "jdbc:odbc:replicado";
// CLAVE DE ACCESO A LA BASE DE DATOS
String usuario = null;
String contrasena = null;
Como puede observarse se usa el manejador de java el
jdbc y el nombre de la base de datos que se llama
Replicado.
De esta manera ya está listo el programa para poder
Leer de la tabla Persona, todos los registros como se ve
en el fragmento del código siguiente.
while( resultado.next() )
{
String rfc = resultado.getString("Rfc");
String nombre = resultado.getString("Nombre");
String direccion = resultado.getString("Direccion");
String telefono = resultado.getString("Telefono");
z=rfc+" "+nombre+" "+" "+direccion+" "+"
"+telefono+" "+z+" ";
// DESPLEGA LOS DATOS LEIDOS
System.out.println(rfc +" "+ nombre +" " + direccion
+ " " + telefono); }
Luego viene otra parte donde se hace la conexión para
poder enviar los datos del lado cliente al servidor y
viceversa como se muestra en el fragmento de código que
muestra a continuación.
try
{
conexion = new Socket("10.3.40.118" ,7777);
is = new
DataInputStream(conexion.getInputStream());
os = new
PrintStream(conexion.getOutputStream()); System.out.println("servidor contactado");
System.out.println(" LOS DATOS QUE ENVIA
EL CLIENTE SON ++++++++ " + z);
os.println(z);
os.flush();
os.println("8");
os.flush();
String entra = is.readLine();
System.out.println(" LOS DATOS QUE RECIBE
EL CLIENTE SON " + entra);
conexion.close(); // System.exit(0);
}
catch(IOException e)
{ }
}
La conexión se hace con el protocolo ip que es igual en
este caso al servidor ―10.3.40.118‖ y con el número de
puerto 7777. Como puede observarse en el fragmento del
código anterior los datos son enviados en este caso son
Replicados del lado cliente al lado servidor y luego son regresados del lado servidor al lado cliente para ser
comprobados que no se fueran a modificar o sea que
permanezcan íntegros. La parte final se da cuando los
registros de la tabla Persona son enviados del lado cliente
al lado servidor y viceversa como se muestra en la Fig. 3.
Figura 3. Los datos enviados y recibidos lados Cliente.
Fuente: Elaboración propia.
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 142
Y en la parte del servidor también se muestran los datos
mostrados en la Figura 4.
Figura 4. Registros replicados en el lado servidor
Fuente: Elaboración propia.
De esta forma se puede concluir que los datos si fueron
replicados con éxito sin sufrir ningún percance como se muestra en la Figura 5. Datos originales de la tabla
Persona y Figura 6.
Figura 5. Datos originales de la tabla Persona
Fuente: Elaboración propia.
Figura 6. Datos Replicados tanto en el servidor como nuevamente en el cliente.
Fuente: Elaboración propia.
Como puede observarse los datos si fueron replicados de
un punto a otro sin ningún fallo lo que demuestra que
para fines didácticos si funciona este trabajo.
Y algo importante como puede observarse en las figuras
5 y 6. El campo 121 con el nombre Martha en los campos
dirección y teléfono no tienen ningún valor esto se ve
reflejado en la Réplica que estos campos que tienen el
valor ―null‖ o sea nulo, o sea que no tienen valor alguno.
3. CONCLUSIONES
Como puede observarse los datos si fueron replicados de
un punto a otro sin ningún fallo lo que demuestra que
para fines didácticos si funciona este trabajo.
Y algo importante como puede observarse en las
figuras 5 y 6. El campo 121 con el nombre Martha en los
campos dirección y teléfono no tienen ningún valor esto
se ve reflejado en la Réplica que estos campos que tienen
el valor ―null‖ o sea nulo, o sea que no tienen valor alguno. Si fueron replicados con su valor de verdad Nulo.
4. REFERENCIAS
[1]A. Silverschatz, Fundamentos de Sistemas
Operativos,7nd ed., P. B. Galvin, G. Gagne, España: Mc
GrawHill, 2006.
[2] A. S. Tanenbaum, Sistemas Distribuidos, 2ed., M. V.
Steen, Amsterdam, Holanda, Pearson Educación, 2008.
[3] J. C. Pérez, Sistemas Operativos una Visión
Aplicada, 2ed., F. G. Carballeira, P. de M. Anasagasti,
España: Mc Graw Hill, 2007.
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 143
FACTIBILIDAD DE AHORRO DE ENERGIA CON EL DESARROLLO SECUENCIAL DEL
ANALISIS DE CONGLOMERADOS
Resumen— El desarrollo de un algoritmo secuencial para análisis de
conglomerados es importante para realizar estudios de la clasificación
de objetos u organismos, la utilización del vecino más cercano permite
hacer el análisis de forma más adecuada el poder trabajar este
algoritmo con una sola computadora facilita el estudio pues ya no se
requiere equipos más complejos que gastan mucha energía
Palabras clave: Análisis de conglomerados, clusters, cómputo
paralelo, S-Link.
ARMANDO DE JESUS CALDERON
Biólogo M.I
Profesor investigador
Instituto Tecnológico de Tlalnepantla
MARIA VERONICA ESTRELLA SUAREZ
Ingeniero Industrial eléctrica Dr.
Profesor investigador
Instituto Tecnológico de Tlalnepantla [email protected]
JORGE RICARDO GERSENOWIES
RODRIGUEZ
Biólogo Dr.
Profesor a nivel licenciatura
Instituto Tecnológico de Tlalnepantla
EZEQUIEL ALEJANDRO DUARTE
HERNANDEZ Lic. en Ing. Mecánica y Eléctrica,
Profesor investigador
Instituto Tecnológico de Tlalnepantla
1. INTRODUCCIÓN
En la actualidad y desde el inicio del uso de las computadoras, el modelo comúnmente utilizado es el
modelo de cómputo secuencial propuesto por Von
Newman, que consiste de una unidad central de proceso
con una memoria de acceso aleatorio además de un
conjunto de instrucciones de lectura, escritura y
operaciones aritméticas básicas. Sin embargo la
necesidad de tener respuestas más rápidas a problemas
complejos, hace que éste modelo de cómputo no sea el
único, existen otros modelos de cómputo como es el caso
del cómputo paralelo, cuyo principal objetivo es el de
realizar cálculos complejos más rápidos utilizando varios
procesadores de manera simultánea, esto trae como resultado un desempeño mucho más elevado, que en
aquellos equipos donde se utiliza el modelo de cómputo
secuencial y que tiene solo un procesador que se utiliza
de forma secuencial [1].
Otro de los objetivos del cómputo paralelo es el de
reducir la complejidad algorítmica de aquellos problemas
que son muy complejos y que si se tuviera que utilizar
una computadora secuencial el problema a resolver
tardaría mucho tiempo o quizás no se podría resolver,
como sucede con algunos algoritmos biológicos que se utilizan para la clasificación de organismos tomando
como base sus semejanzas; tal es el caso del análisis de
conglomerados, este tipo de algoritmos utiliza una
muestra muy grande de datos, lo que hace que su
complejidad aumente dificultando con ello su resolución.
El análisis de conglomerados es una técnica de estadística
multivariada está compuesto de un número determinado
de objetos similares agrupados todos en una muestra.
Ésta técnica, se considera como el estudio formal de
algoritmos y métodos de agrupamiento o agrupación de
objetos [2]. Es útil en muchas áreas de análisis de
patrones, agrupación, toma de decisiones, y minería de
datos entre otras áreas [6].
El análisis de conglomerados no categoriza ni etiqueta a
los elementos utilizando clasificaciones previas lo que se conoce como una clasificación no supervisada [6], la
característica distintiva y que diferencia al análisis de
conglomerados, del análisis discriminante como el
reconocimiento de patrones, es, el no tener una etiqueta
por categorías, el objetivo del análisis de conglomerados,
es simplemente encontrar una clasificación válida y
adecuada de los datos, pero no establecer reglas para
hacer separaciones de los datos en las siguientes muestras
de datos.
Ya en 1974 Everitt [3] definía a un conglomerado como un conjunto cerrado de objetos similares, que se
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 144
encuentran agrupados juntos entre ellos, y tiene las
siguientes características:
a) Un conglomerado o cluster, es un conjunto de
entidades las cuales no son idénticas, y las entidades
de diferentes conglomerados no son idénticos.
b) Un conglomerado es una agregación de puntos
dentro de un espacio de prueba, en la que la distancia entre cualesquiera dos puntos en el conglomerado es
menor que cualquier distancia fuera de el.
c) Los conglomerados pueden ser descritos como
regiones conectadas en un espacio multidimensional,
que contiene regiones con relativa alta densidad de
puntos, separados de otras regiones que contienen
relativa baja densidad de puntos.
Se asume que los objetos que se van a clasificar se
representan como puntos en el espacio de prueba, siendo
su principal problema, la identificación de los datos en cada conglomerado para poder especificar la proximidad
entre ellos y como medirla.
Existen varios métodos para realizar el análisis de
conglomerados como son:
a) El método Jerárquico aglomerativo
b) El método divisivo
c) El método de las medias globales-k [8,9]
d) El método de grafos entre otros [2]
Para este trabajo se seleccionó el utilizar el método de jerárquico aglomerativo, con el esquema del vecino más
cercano, también conocido como método jerárquico
aglomerativo, o SLINK, ―Single linkage clustering
method‖ ya que otros métodos como el de las medias
globales-k que trabajan a partir de aproximaciones por
incrementos[8,9], o los métodos divisivos que trabajan
con diferencias no son lo más adecuado para el algoritmo
que se desarrolla.
Este método, (S-LINKAGE), define la mayor similaridad
entre dos conglomerados cualquiera, calculando el promedio aritmético de las similitudes entre los objetos
de n conglomerados [4]; para poder desarrollar éste
método,
1. Se coloca cada elemento en su propio conglomerado,
se construye una lista de todas las distancias entre los
diferentes conglomerados y los ordena de manera
ascendente.
2. A través de la lista ya ordenada de distancias se hace
la estandarización de los datos utilizando la
ecuación.
3. Una vez realizada la estandarización se calcula la
similaridad entre cada elemento calculando la
distancia entre cada elemento utilizando el
coeficiente de Jaccard, el cual es un coeficiente de
similaridad.[4]
4. Utilizando el índice de Gower, se van agrupando
aquellos elementos cuya distancia sea menor y se va
dibujando el dendrograma
El índice de Gower fue descrito en la década de los años 70 por J.C. Gower, éste es un coeficiente de medición
general que calcula la similaridad o distancia entre dos
unidades definidas. Éste coeficiente, utiliza una matriz de
similitudes para medir la cercanía entre un par de
elementos utilizando todos los pares de elementos de la
muestra de datos. [5]
2. OBJETIVO
Proponer un algoritmo secuencial para realizar análisis de
conglomerados que será utilizado en la clasificación de
organismos, utilizando sus caracteres fenotípicos.
3. CONTRIBUCION
Con el desarrollo y utilización de éste algoritmo
secuencial, se está sugiriendo el uso de los recursos de
una sola computadora, lo que representa un ahorro
significativo de energía, además de desarrollar un
algoritmo que se utilizará en el estudio y análisis de la
clasificación de un grupo de peces cartilaginosos.
4. METODOLOGIA
1. Realizar la obtención de los datos de los datos de los
organismos
2. Una vez que los datos se obtuvieron se colocan en
una matriz.
3. Se realiza la estandarización de los datos
4. Se calcula la matriz de semejanza
5. Se ejecuta el método de closterización seleccionado
en este caso corresponde al vecino más cercano o S-
Link
6. Se reorganiza la matriz en pequeñas matrices de semejanzas
7. Se dibuja el dendrograma [4]
5. RESULTADOS
Se utilizó una matriz de ―700 x 14‖ para poder resolver
este algoritmo, el algoritmo utilizó información
correspondiente a 700 especies de elasmobranquios
hipotremados, de diferentes partes del mundo y
pertenecientes a diferentes grupos taxonómicos, la
información recabada de los organismos fue
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 145
bibliográfica, y se tomaron las descripciones existentes
de algunos de los grupos del catálogo de la FAO [7]
Se encontró que el algoritmo tiene una complejidad
Elevada de O(n3)
El algoritmo se pudo resolver en una computadora con
procesador Intel core i5 con 4 Gb en RAM, sistema
Operativo Yosemite, se programó en lenguaje objective C; sin embargo se considera que el algoritmo no tiene
buen desempeño pues se puede mejorar, se está
trabajando en una actualización del algoritmo para
mejorar su desempeño del algoritmo y que pueda trabajar
con una muestra más grande además de reducir su
complejidad para poder bajar su tiempo de ejecución.
El hecho de que el algoritmo se haya podido resolver con
una computadora secuencial, con un solo procesador, es
importante, ya que este algoritmo se trató de resolver en
el año de 1995 y con el hardware existente en ese tiempo,
no se pudo procesar de manera secuencial teniéndose que paralelizar; al estar paralelizando el algoritmo se intentó
ejecutar en una computadora SP1 de IBM utilizando
PVM y no fue exitoso ese intento, se generó un cluster
con 9 computadoras utilizando LINUX ―Red Hat ‖ y
PVM para Linux y existieron complicaciones importantes
para el desarrollo del algoritmo
CONCLUSIONES
1. El algoritmo se pudo ejecutar en una computadora
secuencial con un procesador Intel core I5 2. El ahorro de energía que se da al utilizar solo una
computadora siendo este desarrollo de gran
importancia, pues en el año de 1995 que se planteó
resolver este problema y requería de una
computadora paralela o de un cluster de
computadoras lo que generaba un gasto muy grande
de energía, además de una complejidad para
programar muy elevada.
3. El algoritmo utilizado tiene una complejidad de
O(n3) lo que hace que su tiempo de ejecución no
sea el mejor 4. Reduciendo la complejidad y mejorando las
técnicas de programación se puede optimizar aún
más su ejecución.
5. Con el uso de este algoritmo se pueden comprobar
las clasificaciones taxonómicas de grupos de
organismos, utilizando sus caracteres fenotípicos,
los cual también ahorros importantes en recursos
económicos, pues los estudios de genotipo
utilizando ADN son muy costosos
6. La tecnología actual con el poder de cómputo de
este tipo de microprocesadores permite procesar
algoritmos muy complejos. 7. De acuerdo con el FIDE, (Fideicomiso para el
Ahorro de Energía Eléctrica). El ahorro de energía
utilizando este algoritmo es claro, pues una laptop
consume en promedio 60 Watts, mientras que el
cluster utilizado anteriormente para el desarrollo de
este algoritmo consume aproximadamente 1350
watts al ser un cluster de 9 computadoras con un
consumo aproximado de 150 Watts por cada nodo
REFERENCIAS
[1] Joseph, Já Já ―An introduction to Parallel Algorithms‖ Addison Wesley, USA 1992
[2] K. Anil, C. Richard Dubes, ‖Algorithms for
Clustering Data‖, Prentice Hall, NJ, pp. 15, 16, 64, 65,
1988.
[3] Everitt, B.S. ―Cluster Analysis‖, John Wiley &
Sons. Inc. New York
[4] Romesburg H, ―Cluster Analysis for
Researchers‖,Krieger Publishing, Malabar Florida pp
120-123
[5] Gower, J. C. ―A general coefficient of similarity
and some of Its properties‖ Biometrics Vol. 27 No.4 (Dec
1971) pp 857-871 [6] A. K. Jain; M.N. Murty; P.J. Flynn; ―Data
Clustering: A Review‖; ACM Computing Surveys, Vol
31, No. 3, September 1999 pp 265, 266 275,276, 277
USA
[7] FAO ―Species Catalogue for Fishery Purposes‖
No. 7 ISSN 1020-8682
[8] L. Aristidis, V. Nikos, J. Verbeek ―K-means
clustering Algorithm‖, Pattern Recogntion Vol 36 pp
451-461 Elsevier
[9] A. Amir, L. Dey, ―Ak-mean ―clustering
algorithm for mixed numeric and categorical data‖, Data & Knowledge Engineering, Vol 63 pp 503-527, Elsevier
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 146
ALGORITMO GENÉTICO SIMPLE EN EL PROCESAMIENTO
DE LENGUAJE NATURAL
Resumen-- Este trabajo plantea la aplicación de
algoritmos genéticos a la obtención de palabras de
entrada y de salida que representan procesos no
lineales en los que aparecen términos producto,
describiéndose el método y las ventajas de su utilización
mediante simulaciones realizadas en MATLAB. Lo cual
se aplica al procesamiento de lenguaje natural.
Palabras claves-- Algoritmos Genéticos, Inteligencia Artificial.
DORA MARÍA CALDERÓN NEPAMUCENO
Profesora Investigadora
EFRÉN GONZÁLEZ GÓMEZ
Profesor Investigador
DORICELA GUTIÉRREZ CRUZ
Profesora
WALTER CHARLES BAUTISTA TRACONIZ
Estudiante Licenciatura en Ingeniería de Sistemas
Inteligentes. Universidad Autónoma del Estado de México
Unidad Académica Profesional Nezahualcóyotl
1. INTRODUCCIÓN
Un algoritmo genético es un método que se utiliza para
resolver problemas de búsqueda y optimización. Se basa
en la genética natural y en la teoría de la evolución de Darwin, utilizando la información histórica para
encontrar nuevos puntos de búsqueda de una solución
óptima a problemas para los que no existe un método
preciso. [5]
Los algoritmos genéticos son una de las principales
herramientas tecnológicas de la inteligencia artificial y
requieren una función-objetivo para llevar a cabo la
búsqueda de soluciones, intentando encontrar aquella
que optimice dicha función.
Una vez que el algoritmo genético obtiene una población y en base a la función objetivo aplicada a cada
uno de los individuos, se seleccionan los mejores y se
combinan para generar nuevas poblaciones; este proceso
se repite hasta que se cumplan los criterios de paro. [1]
Funcionamiento básico de un algoritmo genético
A continuación se muestra el funcionamiento básico de
un algoritmo genético, considerando que previamente es
necesario determinar una función objetivo del problema
de optimización y especificar la manera de codificar las
posibles soluciones.
Generación de la población inicial
Normalmente l algoritmo genético genera de forma
aleatoria una población para el primer ciclo, formada por
un conjunto de cromosomas (individuos), o cadenas de
bits a los cuales se les aplica la función objetivo.
Evaluación de los cromosomas
La evaluación se realiza calculando la función objetivo
para cada uno de los cromosomas que forman la
población actual. De esta forma se determina la
adaptación de cada individuo de la población actual.
Las funciones para la evaluación de la aptitud son
específicas a cada problema.
Selección
Consiste en seleccionar los cromosomas que serán
cruzados en la siguiente generación. Los cromosomas
con mejor aptitud tienen mayor probabilidad de ser
seleccionados.
Existen diferentes métodos de selección que pueden
utilizar los algoritmos genéticos.
A continuación se describen brevemente dos de ellos:
Método de la ruleta o selección proporcional: Este
método consiste en crear una ruleta en la que cada
cromosoma tiene asignada una fracción proporcional a su aptitud. A los individuos más aptos se les asigna un
área mayor de la ruleta, para que sean seleccionados más
veces que los menos aptos.
Método del torneo: En este método se eligen subgrupos
de individuos de la población y después se hace
competir a los individuos que integran cada subgrupo.
Se elige el individuo de cada subgrupo que tenga el
valor de aptitud más alto. [2][3]
Cruza Es el intercambio de material genético entre dos
cromosomas a la vez para generar dos descendientes
donde se combinan las características de ambos
cromosomas padres. Una forma común de cruza consiste
en establecer un punto de intercambio en un lugar
aleatorio del cromosoma de los dos individuos, y uno de
los individuos contribuye todo su código anterior a ese
punto y el otro individuo contribuye todo su código a
partir de ese punto para producir una descendencia.
Mutación
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 147
Al igual que una mutación en los seres vivos cambia un
gen por otro, una mutación en un algoritmo genético
también causa pequeñas alteraciones en puntos
determinados del código de un individuo.
Por último, se comprueba si alguno de los individuos
disponibles satisface los criterios establecidos y se puede
considerar como solución al problema.
El algoritmo genético se detiene cuando se cumpla un
número determinado de generaciones o cuando no haya
cambios en la población.[4]
2. DESARROLLO
El programa inicia pidiendo la palabra objetivo y la
palabra inicial, independientemente de sus tamaños, ya
que la palabra inicial se ajustara a la palabra objetivo. Si
la palabra inicial es mayor, el programa la recorta al
tamaño de la palabra objetivo, y si es menor, obtiene
letras del abecedario aleatoriamente para completar el
tamaño. Para obtener las letras adicionales se utiliza una
función random sobre el abecedario, y de este modo se
genera las letras necesarias. La conversión a binario se
hace utilizando una función llamado Bin, donde el resultado lo guarda en un arreglo para su posterior
extracción. El siguiente paso consiste en hacer una
selección y competencia de individuos, es decir, de los
valores de 0 y 1 de las palabras ya convertidas, se toma
el mayor y se asigna como el ganador. Posteriormente se
inicia el proceso de cruce entre el individuo ganador y
perdedor, para extraer de ellos los genes que generaran
al nuevo individuo. Al nuevo individuo se le aplica el
proceso de mutación para mejorarlo, el grado de
mutación depende de la necesidad requerida, en nuestra
caso es de 40%, lo que indica que el nuevo individuo es
totalmente distinto al individuo anterior generado. El nuevo individuo pasa a ser nuestra nueva palabra inicial,
y se le aplica nuevamente el algoritmo genético, para
extraer las características necesarias, y de esta forma se
repite el proceso hasta que se logre el objetivo que es
encontrar la palabra final.
¿Qué se requiere para aplicar un algoritmo genético?
Esto conlleva la ejecución de un ciclo compuesta de
diferentes etapas. A continuación se presenta un
esquema con el correspondiente ciclo:
El ciclo está compuesto por los siguientes pasos:
1. Generar población
2. Evaluar adecuación
3. Los mejores se reproducen, los peores se extinguen
4. Aplicar mutaciones
5. Actualizar población
6. Volver a etapa 2
EJEMPLOS
Ejemplo 1: Palabra Playa y océano
Fuente: Elaboración propia.
Ejemplo 2.
Fuente: Elaboración propia.
3. CONCLUSIONES
Los algoritmos genéticos son una herramienta útil para
obtener soluciones de problemas que requieren la
optimización y cuyas posibles respuestas se encuentran
dentro de un universo limitado. La vida es un proceso de
constante evolución que implica transformaciones
ordenadas y no-ordenadas de los sistemas en donde se
desarrolla, sobre todo el procesamiento de lenguaje
natural. Esto parece trascender a los mercados
financieros, donde se viven cambios a consecuencia de las decisiones humanas. El hecho de pensar que los
algoritmos computacionales puedan tener una base en la
evolución de los organismos puede ser sorprendente, sin
embargo el hecho de que los Algoritmos Genéticos
puedan ser aplicados a muchas áreas donde los
conocimientos computacionales actuales como las
búsquedas aleatorias o graduales no han tenido
resultados óptimos nos conduce a pensar que los
Algoritmos Genéticos constituyen realmente una
poderosa herramienta de búsqueda heurística con la
habilidad de explotar y aprender de sus dominios.
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 148
Lo Algoritmos Genéticos son relativamente fáciles de
entender e implementar, y su principal ventaja y
desventaja a la vez es su robustez, si posee una mala
implementación, el Algoritmos Genéticos seguirá
corriendo y tarde o temprano encotrará el problema o
encotrará un óptimo local.
Dejemos que la naturaleza sea nuestra guía, dado que la
mayoría de los problemas a los que se van a aplicar los
algoritmos genéticos son de naturaleza no lineal, es
mejor actuar como lo hace la naturaleza, aunque
intuitivamente pueda parecer la forma menos acertada. Por ultimo dejemos que la naturaleza actúe de forma
distribuida, por tanto, se debe de minimizar la necesidad
de operadores que "vean" a la población. Ello permite,
además, una fácil paralelización del algoritmo genético.
Por ejemplo, en vez de comparar el rendimiento de un
individuo con todos los demás, se puede comparar sólo
con los vecinos, es decir, aquellos que estén, de alguna
forma, situados cerca de él.
4. REFERENCIAS
Koza John R., Genetic Programming On the
Programming of Computers by Means of Natural
Selection. Editorial MIT Press, 1998.
Bramer Max, Devedzic Vlandan, Artificial Intelligence
Applications and Innovations. Editorial Kluwer
Academic,2004.
Coppin Ben, Artificial Intelligence Illuminated.
Sudbury, MA. Editorial Jones and Bartlett, 2004.
Russell Stuart y Norving Peter. Inteligencia Artificial:
Un enfoque moderno. Editorial Prentice Hall, 2004.
Lakhmi C., Martin N. M., Fusion of Neural Networks,
Fuzzy Systems and Genetic Algorithms: Industrial Applications.Editorial CRC Press, 1998.
Dora María Calderón Nepamuceno: Doctora en
Ciencias en la especialidad en Control Automático.
Profesora Investigadora de tiempo completo en la
Universidad Autónoma del Estado de México – Unidad
Académica Profesional Nezahualcóyotl. Áreas de
interés: Ingeniería de software e Inteligencias Artificial
(Sistemas Basados en conocimiento).
Efrén González Gómez. Maestro en Ciencias en Sistemas Computacionales. Profesor Investigador de
tiempo completo en la Universidad Autónoma del
Estado de México – Unidad Académica Profesional
Nezahualcóyotl. Áreas de interés: Reconocimiento de
Patrones e Inteligencias Artificial
Doricela Gutiérrez Cruz. Doctora en Sistemas.
Profesor de tiempo completo en la Universidad
Autónoma del Estado de México – Unidad Académica
Profesional Nezahualcóyotl. Áreas de interés:
Ingeniería de software e Inteligencias Artificial
(Sistemas Basados en conocimiento).
Charles Walter Bautista Traconiz. Alumno décimo
semestre de la licenciatura en Ingeniería en Sistemas
Inteligentes, en la Universidad Autónoma del Estado de
México – Unidad Académica Profesional
Nezahualcóyotl. Áreas de interés: Reconocimiento de
Patrones e Inteligencias Artificial.
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 149
PROCESAMIENTO DE IMÁGENES APLICADOS A LA EDUCACIÓN
Resumen— En el procesamiento de Imágenes es necesario
implementar algoritmos de bajo costo para identificar objetos básicos,
como son figuras geométricas, líneas, etc. El trabajo de procesar
imágenes conlleva al uso de algoritmos con los que se pueden
identificar líneas o figuras geométricas básicas. EL procesamiento de una imagen digital tiene como objetivos, el mejoramiento de la
información gráfica para la interpretación humana y el procesamiento
de los datos e información. Existen diferentes metodologías para la
visión por computadora (interpretación de imágenes) las cuales se han
ido desarrollando con el paso del tiempo, capaces de reconocer
formas e interpretar una imagen conforme a las características o
patrones que posee una imagen digital. La utilización de
reconocimiento de patrones es muy eficiente para realizar sistemas de
muy bajo costo, para conceptos básicos de la geometría,
trigonometría, álgebra y la aritmética, que siendo conocimientos no
muy complejos son básicos para que sean adquiridos por el alumno de una forma amigable.
Palabras claves— Patrones, Figuras, Geométricas, Educación.
DORA MARÍA CALDERÓN
NEPAMUCENO
Universidad Autónoma del Estado de México
Unidad Académica Profesional
Nezahualcóyotl [email protected]
EFRÉN GONZÁLEZ GÓMEZ
GABRIELA KRAMER BUSTOS
DORICELA GUTIÉRREZ CRUZ
EDGAR FIGUEROA ARENAS
Universidad Autónoma del Estado de México
Unidad Académica Profesional
Nezahualcóyotl
1. INTRODUCCIÓN
El desarrollo tecnológico en los últimos días ha hecho que los gráficos por computadora o el procesamiento de
la imagen sea un importante y popular desarrollo en el
ámbito de la tecnología moderna. El reconocimiento de
patrones tanto como la interpretación de imágenes
digitales han tenido procesos significativos, en los
centros de investigación hay un interés por el
procesamiento de la imagen y el reconocimiento de
patrones y en desarrollar mejores metodologías para la
visión por computadora.
El procesamiento de una imagen digital tiene como objetivos, el mejoramiento de la información gráfica para
la interpretación humana y el procesamiento de los datos
e información.
Existen diferentes metodologías para la visión por
computadora (interpretación de imágenes) las cuales se
han ido desarrollando con el paso del tiempo, capaces de
reconocer formas e interpretar una imagen conforme a las
características o patrones que posee una imagen digital.
La utilidad o la necesidad de interpretar una imagen, son
necesarias en el Área de la ingeniería, la computación, tecnologías de la información, etc.
Los algoritmos más usados para la interpretación de
imágenes los abordaremos en este documento, haremos
alusión al algoritmo de Hough, empleado en
reconocimiento de patrones de una imagen, la cual
permite encontrar formas como círculos, líneas, entre
otras, dentro de la imagen, la versión más sencilla
consiste en encontrar líneas. El modo de funcionamiento es estadístico y de acuerdo a los puntos que se tengan se
debe averiguar las posibles líneas en las que puede estar
el punto, lo cual se logra por medio de una operación que
es aplicada a cada línea en un rango determinado.
Abordaremos otro algoritmo para tener el esqueleto de
una imagen el cual servirá para el reconocimiento de una
forma o figura.
2. DESARROLLO
En el procesamiento de imágenes es necesario
implementar algoritmos de bajo costo para identificar objetos básicos, como son figuras geométricas, líneas,
etc. El trabajo de procesar imágenes conlleva al uso de
algoritmos con los que se pueden identificar líneas o
figuras geométricas básicas, uno de ellos es la
transformada de Hough.
La Transformada de Hough es una técnica para la
detección de figuras en imágenes digitales. Esta técnica
es mayormente usada en el campo de Visión por
Computadora. Con la transformada de Hough es posible
encontrar todo tipo de figuras que puedan ser expresadas matemáticamente, tales como rectas, circunferencias o
elipses.
La transformada de Hough fue propuesta y patentada en
1962, por Paul Hough, inicialmente esta técnica solo se
aplicaba en la detención de rectas de una imagen, ya
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 150
después con el paso del tiempo se extendió para detectar
cualquier figura que se pudiera descubrir con unos
cuantos parámetros, como los eran comúnmente
circunferencias y elipses.
La idea básica es encontrar curvas que puedan ser
parametrizadas como líneas rectas, polinomios y círculos.
Se puede analíticamente describir un segmento de línea
en varias formas [1].
Consideramos un punto ( ) y la ecuación de la recta,
de la forma pendiente y ordenada al origen.
Por el punto ( ) pasan infinitas rectas, pero todas
satisfacen la ecuación anterior para diferentes valores de.
Escribiendo esta ecuación en la forma
Cambio de parámetros ahora en el plano (espacio de
parámetros) da lugar a una única recta para el par
( ). Ahora al considerar un segundo punto ( ), también va a tener su recta asociada en el espacio de
parámetros . Al trazar las rectas se cortarán en el
espacio de parámetros en un punto ( ), donde es la pendiente y b’ la ordenada al origen de la recta que
contiene a los puntos ( ) y ( ) en el plano.
Todos los puntos de esa recta en el plano xy darán lugar a
rectas diferentes en el espacio de parámetros que se
cortan en un único punto ( )
La transformada de Hough usa el espacio de parámetros
en forma de celdas acumuladoras, donde ( ) y
( ) son los rangos para la pendiente y la
ordenada al origen, los cuales los rangos son variables y
es a criterio del problema o dimensión de la imagen. La
celda de coordenadas ( ) con un valor de acumulador
( ) corresponde al cuadrado asociado con las
coordenadas ( ) del espacio de parámetros.
Inicialmente todas las celdas del acumulador de inicializan en 0.
Entonces para cada punto ( ) de la imagen a
reconocer, permitiendo que el parámetro pueda tomar
cualquier valor de entre los mi (rango) y calculamos
usando la ecuación del espacio de parámetros, valor de
entre los (rango). Si para un valor en el acumulador
en coordenadas ( ) resultó un valor ( ) se tiene
que hacer:
( ) ( )
Donde son los subíndices de la tabla acumuladora.
Cuando se tenga un máximo en la celda acumuladora se
procede a que para a cada punto ( ) obtenemos
valores de correspondientes a los posibles valores de
.
Fig. 1. Tabla acumuladora.
Fuente: Elaboración propia
2.1 Algoritmo de adelgazamiento o esqueletización
La esqueletización o adelgazamiento es la
transformación de una componente de la imagen
original . Esta transformación busca reducir la
cantidad de datos o simplificar la forma del objeto, con
el fin de encontrar características útiles en algoritmos de
reconocimiento y clasificación.
Gran variedad de métodos se han propuesto con el
objetivo de preservar una componente conectada que
represente a la imagen digital, al simplificar la forma, o
reducir la cantidad de datos, propone una clasificación de
los métodos de esqueletización a partir de los operadores
que emplean:
a) Métodos cuyos operadores se basan en la
transformada de distancia.
b) Métodos cuyos operadores reportan líneas medias o centrales.
c) Métodos cuyos operadores están caracterizados por
adelgazamientos iterativos.
El cual un algoritmo clásico para tener un
adelgazamiento es el siguiente, Un algoritmo de
imagen consiste en una sucesión * + de transformaciones de imagen y una condición de
terminación . La aplicación del algoritmo consistirá en la aplicación sucesiva e iterada de las transformaciones
que lo componen hasta llegar a la condición de
terminación .
Suponemos que tenemos la siguiente imagen:
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 151
Fig. 2. Ejemplo de imagen con pixeles.
Fuente: Elaboración propia.
Recorremos cada pixel de la imagen hasta encontrar un
pixel negro en el cual se crea una vecindad de todos
los pinceles adyacentes al pixel analizado ( )
Se recorre la vecindad P donde se analizaran los colores
que son diferentes ( ) del color de la figura que se
quiere adelgazar en este caso será negro 0 y blanco 1 no
contando con el pixel que se está analizando, también se
analizara en número de transiciones de 1 a 0 en la
secuencia siguiente:
Tabla 1. Ejemplo de tabla
P9 P2 P3
P8 P1 P4
P7 P6 P5
Fuente: Elaboración propia.
La cual cumplirá con las siguiente condiciones, las
cuales si cumple se etiquetara para borrado.
a) ( ) El número de pixeles diferentes de 1 sea mayor o igual a 2 pero menor o
igual que 6.
b) ( ) El número de transacciones
sea igual a uno.
c) El producto sea igual a 0
d) El producto sea igual a 0
Si cumple con los 4 pasos se procederá a etiquetarlo
para borrado.
Se vuelve iniciar el proceso iterativo repitiendo todo el
procedimiento a cada pixel negro encontrado y alterando
pasó c) y d) de la siguiente forma:
a)
b)
2.2 Reconocimiento de figuras geométricas básicas
La plataforma en la cual se trabajara es en el entorno de
Visual Studio con el lenguaje de programación de C++.
Primero se trabajara la imagen de la figura la cual se
reconocerá, trataremos la imagen convirtiéndola a un
efecto de binarización.
Para cada triada del pixel de la imagen, se le asignara
un mismo valor, , sumando cada componente
y realizar un promedio.
Si el promedio sobrepasa un umbral de 128
(color) se realiza:
La imagen se cargara solo en Blanco y Negro.
Fig. 3. Ejemplo de colores cargados en la imagen.
Fuente: Elaboración propia.
Teniendo la imagen en blanco y negro, se procede a
realizar un método el cual solo tendrá el esqueleto
de la figura. Con trabajo del algoritmo de
esqueletizacion o adelgazamiento, se tendrá una imagen
de menos grosor, el nivel de pixeles se reducirá el cual
facilitara el cálculo sus rectas o figuras que tiene la
imagen. Para cada pixel negro encontrado de la imagen, cumplirá
con las siguientes condiciones:
( )
El número de pixeles diferentes de 1 sea mayor o igual a
2 pero menor o igual que 6.
( ) El número de transiciones sea igual a uno.
El producto sea igual a 0
El producto sea igual a 0.
Si cumple con los 4 pasos se precederá a etiquetarlo para
ser borrado.
Se vuelve iniciar el proceso iterativo repitiendo todo el
procedimiento a cada pixel negro encontrado y alterando pasó c) y d) de la siguiente forma:
) )
Teniendo el esqueleto de la figura se puede saber cuáles
son las formas que la integran, en este caso está
conformado por rectas. Reconocer las rectas que la
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 152
integran y sus ecuaciones puede ser un poco costoso si
lo pensamos en forma procedimental para resolver el
problema, el cual con ayuda de la Transformada de
Hough se pueden calcular las figuras que lo integran,
en este caso serán rectas. El cual mediante su modelo
estadístico cada punto representa líneas infinitas las
cuales se cruzan y se obtiene un punto. Las rectas se
obtienen para hacer el reconociendo de la figura:
Fig. 4. Rectas para reconocimiento de figura.
Fuente: Elaboración propia.
El encontrar rectas con el algoritmo o transformada de
Hough usando un umbral propuesto para limitar el
número de rectas que puede haber en la figura, tiene una variación en cual el umbral no es contante, dependiendo
de qué forma o figura se va a reconocer; por lo que a
veces el umbral varía y debe de ser manual ante un
usuario.
El problema planteado es que un umbral dado para al
algoritmo, para la discriminación de rectas del
acumulador, puedes ser ±número de rectas esperadas
correctas. Si tiene un numero de rectas, mas, de lo
esperado, algunas rectas son paralelas entre si y
contienen una mínima distancia una de otra por lo que se
realiza una pequeña depuración con un umbral dado pero ahora para la discriminación de rectas; se toma en
cuenta un pequeño perímetro para saber que rectas son
paralelas y que rectas no lo son, ya que las que no,
pertenecen a otra arista de la figura. Por lo que se platea
tomar todo el número de rectas de cada arista y realizar
una media, así para tener el promedio de las rectas
resultantes y así tener una estimación esperada para la
recta correcta.
Con ayuda de las rectas obtenidas ya depuradas,
podemos tener sus pendientes y ordenadas al origen y
:
Lo cual teniendo sus pendientes y sus ordenadas
podemos saber cuáles y en qué punto del plano existe la
intersección de una recta con la otra.
Si se tiene la razón:
Se conoce su intersección en y sustituir en:
Se conoce su intersección en sabiendo cuáles son sus
intersecciones de cada vértice, sus coordenadas en el
plano, podremos sacar sus segmentos, distancia,
diferencia de cada intersección el cual podremos saber
básicamente de que figura se trata. Por ejemplo: si
existen 4 rectas y 4 intersecciones, y la distancia entre
dos puntos de cada vértice es igual, podría tratarse
posiblemente de un cuadrado. De otra forma si se conocen sus vértices y la longitud de cada una de ellos o
sus pendientes de cada recta, podrían saberse sus
ángulos internos con la siguiente razón [2]:
|
|
Si se conocen sus ángulos internos (ángulos rectos de
90) y se sabe que la longitud de la distancia de cada una
de las intersecciones es igual, si podría tratarse más
firmemente de un cuadrado. En el caso de un rombo casi posee las mismas características que el del
cuadrado, solo que ahí nos ayudaría conocer
forzosamente sus ángulos internos ya que a diferencia
del cuadrado sus ángulos no son rectos, y sus
ángulos opuestos con iguales. Un triángulo solo tiene
tres intersecciones, el cual al momento de que se
detecten 3 rectas se sabrá fácilmente que se trata de un
triángulo, por lo que se hace, es calcular sus ángulos
internos para saber qué tipo de triangulo es.
Fig. 5. Ejecución del programa el cual reconoce un Rombo
Fuente: Elaboración propia.
3. CONCLUSIONES
Sabemos que el poder de las matemáticas junto con la
computación puede ser un monstruo en la tecnología y avances en la ciencia, ingeniería y computación.
Comprobamos que aplicando algoritmos no muy costosos
computacionalmente y con cálculos no muy complejos,
se puede realizar un reconocimiento de visión por
computadora el cual puede ser una base para hacer
grandes cosas como por ejemplo hacer un
reconocimiento facial o yendo más allá reconocer formas
o figuras dentro de una imagen de video. Vimos que el
poder del algoritmo de Hough es muy eficiente para
realizar sistemas de muy bajo costo, y de lo importante
de tener presente conceptos básicos de la geometría,
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 153
trigonometría, algebra y la aritmética, que siendo
conocimientos no muy complejos a un nivel de
ingeniería, pueden ayudar de mucho sobre todo en el
nivel educativo.
4. REFERENCIAS
[1]. Swokowski, E. (1989). Cálculo con Geometría
Analítica. 2da. Edición. Grupo Editorial Iberoamericana [2]. John C. Russ (1998) The Image Processing
Handbook, 3rd ed. Ed. IEEE Press.,
[3]. Pogorélov A.V. (1974), Ed. Mir. Moscú, Geometría
elemental.
______________________________________________ Dora María Calderón Nepamuceno: Doctora en Ciencias en la
especialidad en Control Automático. Profesora Investigadora de tiempo
completo en la Universidad Autónoma del Estado de México – Unidad
Académica Profesional Nezahualcóyotl. Áreas de interés: Ingeniería de
software e Inteligencias Artificial (Sistemas Basados en conocimiento).
Gabriela Kramer Bustos. Maestra en Ciencias de la educación.
Profesor Investigador de tiempo completo en la Universidad Autónoma
del Estado de México – Unidad Académica Profesional
Nezahualcóyotl. Áreas de interés: Educación.
Efrén González Gómez. Maestro en Ciencias en Sistemas
Computacionales. Profesor Investigador de tiempo completo en la
Universidad Autónoma del Estado de México – Unidad Académica
Profesional Nezahualcóyotl. Áreas de interés: Reconocimiento de
Patrones e Inteligencias Artificial
Doricela Gutiérrez Cruz. Doctora en Sistemas. Profesor de tiempo
completo en la Universidad Autónoma del Estado de México – Unidad
Académica Profesional Nezahualcóyotl. Áreas de interés: Ingeniería de
software e Inteligencias Artificial (Sistemas Basados en conocimiento).
Edgar Figueroa Arenas. Alumno décimo semestre de la licenciatura
en Ingeniería en Sistemas Inteligentes, en la Universidad Autónoma del
Estado de México – Unidad Académica Profesional Nezahualcóyotl.
Áreas de interés: Reconocimiento de Patrones e Inteligencias Artificial
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 154
REDUCCIÓN DEL ORDEN DE PROCESO DE FUSIFICACIÓN MEDIANTE DISEÑO DE
ARQUITECTURA EN FPGA
Resumen— La lógica difusa ha encontrado una gran aceptación y
utilidad en el control automático, debido a las ventajas que ofrece
tales como robustez a las incertidumbres e imprecisiones, versatilidad,
sin embargo la reducción del orden de un algoritmo de inferencia
difusa permitiría abrir las puertas a la lógica difusa a aplicaciones en
las cuales no tiene el mismo impacto debido a su costo computacional,
tales como el procesamiento digital de imágenes en tiempo real o el
procesamiento de señales en tiempo real.
En el presente trabajo se desarrollan estrategias para la reducción de
orden de un algoritmo de fusificación, proceso importante en cualquier sistema de inferencia difusa, haciendo uso de las
herramientas que el FPGA ofrece, tales como el paralelismo, memoria
distribuida o máquinas de estados finitos.
Palabras claves— Complejidad de algoritmos, Lógica difusa,
Fusificación, FPGA.
EMANUEL ONTIVEROS ROBLES
Universidad Autónoma de Baja California.
JOSÉ LUIS GONZÁLEZ VÁZQUEZ
Universidad Autónoma de Baja California.
OLIVIA MENDOZA DUARTE
Universidad Autónoma de Baja California.
1. INTRODUCCIÓN
El orden o complejidad de un algoritmo [1] puede no ser
relevante si se trata de un algoritmo que maneja una
cantidad de datos relativamente pequeña, sin embargo
existen campos de la computación en los cuales la
cantidad de datos es enorme y por consiguiente, el
reducir la complejidad de un algoritmo juega un papel
crucial para poder llevar a cabo y darle utilidad a los
mismos; uno de estos campos es el procesamiento de imágenes, donde se manejan gran cantidad de datos y con
entornos variables. Otro campo en el cual es deseable la
reducción del orden de un algoritmo es en donde se lleva
a cabo un procesamiento constante y en tiempo real.
Considerando las ventajas que ofrece la implementación
de la lógica difusa, tales como la tolerancia a
perturbaciones (hablando de entornos variantes y con
ruido) y la versatilidad que proporciona tener una base de
conocimiento propuesta por un experto, se considera una
alternativa atractiva y que no ha sido aprovechada al
máximo en este diversos campos de procesamiento digital de señales, control, entre otros debido al costo
computacional que representa. [2]
Debido a que se considera a la fusificación un proceso
común tanto en sistemas de inferencia difusa de
Mamdani o TSK (Takagi Sugeno Kang) , en el presente
trabajo se lleva a cabo un análisis de la complejidad del
proceso como bloque funcional de un sistema de
inferencia difusa [2], con el fin de identificar el alcance y
capacidades de la implementación en software
considerando la carga computacional y proponer una
arquitectura en VHDL que atienda la necesidad de reducir el orden de este algoritmo, y establecer
argumentos que permitan determinar el alcance de una
posterior arquitectura del proceso de inferencia difusa
como herramienta de procesamiento de alta velocidad
[4].
Para lograr la reducción del orden del algoritmo se hace
uso del paralelismo y el empleo de flujo de datos por
medio de máquinas de estado finito, para diseñar
estratégicamente una arquitectura para la fusificación
reduciendo así su complejidad y disminuyendo el tiempo
de procesamiento [2].
2. ORDEN DE ALGORITMO DE FUSIFICACIÓN
Con el propósito de explicar el contexto del grado de
complejidad y del alcance de las estrategias propuestas en
el trabajo se define el concepto de orden de un algoritmo,
posteriormente una breve referencia a los conceptos de
máquina de inferencia difusa para posteriormente
ahondar sobre la complejidad que implica el proceso de
fusificación.
ORDEN DE LOS ALGORITMOS El orden o complejidad de un algoritmo se refiere a la
cantidad de operaciones que contiene o bien a la cantidad
de memoria que requiere [1].
El orden de un algoritmo puede ser de igual forma
expresado por el comportamiento que tenga un algoritmo
en función de sus datos o de sus argumentos de entrada,
siendo el orden lineal el deseado y ordenes como el
factorial, el polinomial, entre otros, los no deseados.
A continuación se muestra un ejemplo de reducción de
orden de algoritmo mediante paralelismo.
Considerando la siguiente operación aritmética, suma de
cuatro productos.
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 155
( )
Como se puede apreciar en Fig. 1, el número de
operaciones para la resolver la ecuación 1 es 7, 4
multiplicaciones y 3 sumas.
Figura 1: a) Procesamiento centralizado, b) Paralelismo
Fuente: elaboración propia
Se puede observar como de esta manera el número de
operaciones efectivas se reduciría a 2, puesto que todas
las multiplicaciones y las sumas se harían de forma
paralela.
MÁQUINA DE INFERENCIA DIFUSA
El objetivo de una máquina de inferencia difusa es poder
depositar en ella una representación del conocimiento de
un experto en forma de reglas si-entonces de forma
lingüística con valores continuos de verdad (membrecía)
en el intervalo 0 a 1, de esta forma, la toma de decisiones
se aproximaría más al conocimiento humano y se obtiene
un sistema tolerante a perturbaciones e incertidumbres, lo
cual lo hace versátil [2, 3, 4].
Figura 2: Maquina de inferencia difusa
Fuente: elaboración propia
En la Fig. 2, se muestra el esquema general de una
máquina de inferencia difusa, en el presente trabajo se
dirige la discusión hacia el primer bloque, la fusificación.
FUSIFICACION
La fusificación es el bloque encargado de la conversión de los valores numéricos a valores lingüísticos, esto
mediante la evaluación de funciones matemáticas
conocidas como funciones de membrecía.
Existen gran cantidad de funciones de membrecía pero en
el presente trabajo se realiza la fusificación mediante la
función trapezoidal, debido a que es de bajo orden y que
contiene como un caso puntual, cuando ―b‖ es igual a
―c‖, a la función triangular. [2] Figura 3: Función trapezoidal
Fuente: elaboración propia
Debido a que la función trapezoidal es una función no
lineal, como se observa en la Fig. 3, es necesario realizar
una evaluación por intervalos, se expresa en la ecuación
2.
( ) {
(2)
ALGORITMO DE EVALUACIÓN DE FUNCIÓN
DE MEMBRECIA
El algoritmo presentado en Fig. 4, hace referencia a la
evaluación de una función de membrecía, individual,
como evaluación de la ecuación 2.
Figura 4: Algoritmo de evaluación de función trapezoidal
Fuente: elaboración propia
En el algoritmo se puede observar que se ejecutan al
menos 5 procesos, hablando de un procesamiento
centralizado como en una PC, esto implicaría que el
orden del algoritmo es lineal se expresa en la ecuación 3.
Σ
GxH
ExF
CxD
AxB
(A)
(B)
AxB CxD + ExF GxH + +
Base de reglas
Inferencia
difusaDe Fusificación Fusificación
a b c d
Xi<a MF =0
Xi<b MF=m1X
Xi<c MF=1
Xi<d MF=m2X
MF=0
si
si
si
si
EvaluarMF(X, a,b,c,d,m1,m2,MF)
Retorno
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 156
( ) (3)
Sin embargo, el proceso de fusificación implica la
evaluación del conjunto completo de funciones de
membrecía, esto implica que el orden de la fusificación
sería el orden de la evaluación individual de la función de
membrecía, multiplicado por ―n‖ numero de funciones.
Figura 5: Conjunto de funciones de membrecía
Fuente: elaboración propia
( ) (4)
De tal manera, el orden de la fusificación en el presente
trabajo se expresa en función del número de funciones de
membrecía a evaluar (ecuación 4).
ESTRATEGIAS DE DISEÑO PARA LA
REDUCCIÓN DE ORDEN
Un dispositivo FPGA (Field Progammable Gate Array)
se trata de un dispositivo con bloques lógicos que tienen
la ventaja de ser reconfigurables, haciendo de este un versátil dispositivo que puede albergar operaciones tan
complejas como él mismo. Dichos módulos operativos
pueden ser descritos mediante el lenguaje VHDL, se trata
de un lenguaje descriptor de hardware. [2]
En el presente trabajo se buscara hacer uso del VHDL
para la implementación de la fusificación, dicha
alternativa ha sido explorada por ejemplo en [3,4] sin
embargo, se propone la evaluación del sistema mediante
la complejidad del algoritmo, y se aborda la discusión no
solo desde el bajo nivel de los datos que se emplean sino desde el contexto de matemáticas discretas [1].
ESTRATEGIA PARA EVALUACIÓN DE
FUNCIÓN TRAPEZOIDAL
La estrategia empleada para la evaluación de las
funciones de membrecía es básicamente un selector y un
bloque multiplicador mediante lógica combinacional y
dos valores estáticos que se asignan en caso de cumplirse
las condiciones correspondientes a las regiones de la
evaluación del trapecio.
Es posible de esta manera realizar la evaluación de una
función trapezoidal en tan solo un paso, y no en cinco, y
cuyo único retraso es le inherente asociado a la no
idealidad de los bloques combinacionales del FPGA (Fig. 6).
Figura 6: Modulo para evaluación de función trapezoidal
Fuente: elaboración propia
Haciendo uso de esta estrategia el orden de la evaluación
de una función de membrecía se reduce a 1 (ecuación 5).
( ) (5)
ARQUITECTURAS PROPUESTAS
PARALELA – MÍNIMO TIEMPO DE EJECUCIÓN
La estrategia de diseño para la obtención del tiempo
mínimo de ejecución se basa en el paralelismo, como muestra Fig. 7, Al realizar en un solo periodo la
evaluación de todas las funciones de membrecía, la
función se lleva a cabo en el menor tiempo posible y se
mantiene constante independientemente de las funciones
de membrecía que se evalúen.
Figura 7: Modulo paralelo para la fusificación
Fuente: elaboración propia
( ) (6)
El orden del algoritmo permanece constante (ecuación 6),
sin embargo esta estrategia consume una cantidad de
recursos proporcional al número de funciones de
MF
2
MF
3
MF
4
MF
n-1
MF
n
MF
1
Dominio de la variable
Gra
do
de
ve
rda
d
MFi(x)
m1X
1
0
m2X
X
MF1(x)
MF2(x)
MFn-1(x)
MFn(x)
x
Fusificación
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 157
membrecía, debido a esto su demanda de recursos le
impide aplicaciones con una cantidad de funciones de
membrecía que superen los recursos del FPGA [6]
ITERATIVA – OPTIMIZACIÓN DE RECURSOS
La estrategia de diseño para la optimización de recursos
surge de la implementación del paralelismo en conjunto
con herramientas como la memoria distribuida y una máquina de estados finitos (Fig. 8).
Figura 8: Modulo iterativo para fusificación
Fuente: elaboración propia
La arquitectura iterativa funciona controlando el flujo de datos mediante la máquina de estados finitos y
ejecutando la evaluación de cada función de membrecía
de manera secuencial. El algoritmo en Fig. 9 explica el
flujo de datos que se lleva a cabo por medio de la
máquina de estados finitos.
Figura 9: Algoritmo de la máquina de estados (fusificación
iterativa)
Fuente: elaboración propia
( ) (7)
En esta propuesta se logra un algoritmo de orden lineal
(ecuación 7), es decir que el tiempo de ejecución es
proporcional al número de funciones de membrecía,
aunque a diferencia de la arquitectura paralela, en esta
arquitectura la cantidad de recursos empleados se
requieren relativamente estática.
EXPERIMENTACIÓN Y RESULTADOS
A continuación se presentan los resultados obtenidos en
términos de reducción de orden (número de operaciones
por fusificación) y del tiempo de procesamiento mediante
simulaciones realizadas en el software ISE de Xilinxs.
COMPARACIÓN DEL ORDEN DE LOS
ALGORITMOS
La Fig. 10 que muestra el comportamiento del orden del
algoritmo de fusificación en las tres estrategias
discutidas, en software (Matlab), Paralela y la iterativa
(VHDL).
Figura 10: Comparación de variantes de fusificación
Fuente: elaboración propia
Como se puede observar, el orden de la fusificación
puede ser reducido en gran medida mediante las
estrategias planteadas.
SIMULACIONES
Para las siguientes simulaciones (Fig. 11, Fig. 12) se
emplearon 4 funciones de membrecía y se da cuenta del
retardo aproximado en el procesamiento, se realizaron en
el software de simulación que ofrece ISE [7].
Figura 11: Respuesta de fusificación iterativa
Fuente: elaboración propia
MFi(x)x
Fusificación
Maquina de estados finitosCLK
Reg_MF1
Reg_MF2
Reg_MFn
Reg_MFn-1
ROM
Inicio
Xi, MFi params
Eval mf1
Eval mf2 Guarda mf1
Eval mf3 Guarda mf2
Eval mfn-1 Guarda mf3
Eval mfn Guarda mf-1
Guarda mfn
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 158
Figura 12: Respuesta de fusificación paralela
Fuente: elaboración propia
En la Tabla 1, se sintetizan los resultados con fines de
comparar las estrategias de fusificación discutidas. Se
refiere como recursos al recurso más limitado los
MULT18X18 o módulos multiplicadores.
Tabla 2: Comparación de alternativas de fusificación
Arquitectura Retardo % Recursos Orden
Iterativa ~60nS 5% N
Paralela ~20nS 20% 1
Hardware (Matlab) ~78µS NA 5n
Fuente: elaboración propia
3. CONCLUSIONES
Las arquitecturas propuesta obtuvieron un resultado
satisfactorio, debido a que el objetivo era el de reducir el
orden del algoritmo de fusificación, se tienen pues
criterios para decidir entre una arquitectura u otra, mientras que la arquitectura paralela ofrece el máximo de
velocidad también requiere muchos recursos, como se
muestra en la tabla los MULT18X18 son bloques
dedicados a la multiplicación y que al alcanzar el límite
de los mismos la tasa de crecimientos de recursos se
dispararía geométricamente, esto significa que para poder
hacer uso de esta estrategia es necesario invertir en un
FPGA con mayores recursos y por ende más costoso, su
contraparte, la arquitectura iterativa se puede considerar
como una arquitectura más equilibrada en términos de
velocidad y recursos y puede ser empleada en
aplicaciones más complejas sacrificando tasas de procesamiento.
En posteriores trabajos se buscara el diseño de
arquitecturas que complementen a las diseñadas en el
presente trabajo, con el fin de completar una arquitectura
que realice todo el proceso de una inferencia difusa, esto
con el fin de expandir el horizonte de aplicaciones de la
lógica difusa hacia áreas más demandantes de la
tecnología.
4. REFERENCIAS
[1]SeymourLipschutz,‖MATEMÁTICAS DISCRETAS‖,
3rd. ed., Mc Graw Hill, 2009.
[2] Kevin M. Passino,‖Fuzzy Control‖, 3rd. ed., Addison
Wesley Longman, 2009.
[3]Gonzalez J.L. et al, ―FPGA as a Tool for
Implementing Non-fixed Structure Fuzzy Logic
Controllers‖, Industrial Electronics, Foundations of
Computational Intelligence, 2007. FOCI 2007. IEEE
Symposium on, pp. 523-530. 2000.
[4] K. M. Deliparaschos, et. al, ―A Fast Digital Fuzzy
Logic Controller: FPGA Design and Implementation‖, Emerging Technologies and Factory Automation, 2005.
ETFA 2005. 10th IEEE Conference on Vol. 1. 4pp. 262.
2005.
[5]Pong P. Chu, ‖FPGA PROTOTYPING BY VHDL
EXAMPLES Xilinx SpartanTM-3 Version‖, 1st. ed.,
John Wiley & Sons, 2008.
[6] Spartan-3E FPGA Starter Kit Board, User´s Guide,
Xilinx, 2011, pp. 2-10-2-35.
[7] ISE, In-Depth Tutorial, Xilinx, 2012, pp. 2-10-2-35.
Emanuel Ontiveros Robles. : Ingeniero Electrónica por la
Universidad Autónoma de Baja California. Estudiante de Maestría en
Ciencias (Electrónica) por UABC.
José Luis González Vázquez. : Ingeniero Industrial en Electrónica;
Maestría en Ciencias Computacionales, por Instituto Tecnológico de
Tijuana; Doctorado en Ciencias por UABC.
Olivia Mendoza Duarte: Ingeniero en Computación por UABC,
Maestría en Ciencias Computacionales, por Instituto Tecnológico de
Tijuana; Doctorado en Ciencias por UABC.
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 159
RENDIMIENTO DE PROCESADORES MANYCORE SOBRE TOPOLOGÍA 2D
Resumen-- Actualmente atrae la atención, investigaciones en sistemas
de procesadores, que funcionen con computó paralelo, donde la
compartición de memoria, es una de las alternativas para atender la
necesidad de optimizar el rendimiento de procesos. Se presenta el
análisis del rendimiento de estos sistemas escalares, superescalares,
multicore y manycore, siendo el manycore con topología 2D el que
demostró un rendimiento 10 veces mejor que los anteriores, en tiempo
de respuesta (Epiphany-GPU 192.1 ciclo máquina a 600 MHz y
Arm9 1772.9 ciclos máquina a 667 MHz). El manycore presento
mejores resultados en tiempo de ejecución, tiempo de acceso a memoria, rendimiento y bajo consumo de energía estos son factores
directos que influyen en el alto rendimiento.
Palabras Claves-- Multicore, Manycore, memoria compartida,
topología.
TEODORO ÁLVAREZ SÁNCHEZ
RAUL MUÑOZ ORTIZ
ANDRÉS CALVILLO TÉLLEZ
MIGUEL ÁNGEL ROMERO MIRANDA
Instituto Politécnico Nacional, CITEDI.
Av. del Parque No. 131O, Mesa de Otay,
Tijuana, Baja California, MÉXICO.
[email protected] [email protected]
1. INTRODUCCIÓN
Por más de 60 años - desde los primeros días de las
mainframe a través de la revolución de la PC de la
década de 1980 y el éxito de hoy de dispositivos móviles
inteligentes - la tecnología de procesador siempre ha
evolucionado para satisfacer las expectativas de los
usuarios, en los tiempos de conducción de innovaciones
imprevistas en la industria de la computación. Dada la
diversidad de los nuevos dispositivos móviles que
lleguen al mercado sobre una base diaria, las
innovaciones del procesador siguen siendo una fuerza
poderosa para el cambio [6].
Con la incorporación del cómputo móvil, la arquitecturas
de procesador se han desplazado a las computadoras de
escritorio tradicionales, incluso a las laptop, esto es
impulsado por el rendimiento, portabilidad, compacto,
ahorradores de energía, alta integración, rapidez, en parte
económica es otro factor determinante para la evolución
de la Investigación en computación, etc.
Es importante señalar, que el procesador es llamados
actualmente core, los procesadores muticore o manycore
poseen más de un core, es decir más de una unidad de cómputo en un mismo encapsulado. Esto aumenta el
rendimiento, en especial si se utilizan más de una
aplicación al mismo tiempo.
Hoy en día, los beneficios de esta alto rendimiento, la
arquitectura de procesador de bajo consumo están dando
sus frutos en dispositivos como televisores digitales y set-
top boxes, equipo de oficina, como impresoras y
copiadoras y dispositivos móviles como tabletas,
unidades de juegos portátiles, y smartphones. Desde mediados del 2000 se han propuesto a desarrollar CPUs,
mejorando en el rendimiento de un solo thread, no sólo se
vuelve cada vez más difícil, pero también va en contra de
las limitaciones de eficiencia energética de los dispositivos. Esto se debe a que exponencialmente, se
requiere más energía para obtener un porcentaje de
rendimiento.
La Solución multicore pueden ofrecer un mayor
rendimiento en las frecuencias comparables a los diseños
de un solo core, mientras que ofrece un ahorro energético
importante en términos de costo y eficiencia. Además, las
soluciones de múlticore pueden aprovechar los cores con
su gran cantidad de transistores optimizando, al
suministrar la alimentación a ellos sólo cuando sea necesario. En esencia, esto puede ser pensado como el
equilibrio de carga inteligente. No sólo un sistema
necesita ser considerado, cual el procesador es el más
adecuado para ejecutar una tarea específica, sino que
también debe tener en cuenta el rendimiento requerido de
esa tarea y asignarla al procesador más adecuado con la
energía disponible.
El uso de cores necesarios, esto nos permite mantener
los demás inactivo ayudando al consumo de energía, que
no afecta el rendimiento. Como las tareas se distribuyen
a través de múltiples núcleos de procesador. Un procesador diseñado con tecnología de los 80 no podría
funcionar a plena capacidad reduciendo voltaje y
frecuencia de reloj. Los procesadores multicore permiten
que el voltaje y la frecuencia sea reducidos. Esto se
traduce en ahorros de energía significativos relacionados
con el rendimiento global del sistema.
Un enfoque de "múlticore" para procesamiento
multicore requiere ejecutar cargas para ser compartidos a
través de muchos procesadores más pequeños, tal como
un Cortex-A5, en vez de simple thread con múltiples cargas de trabajo de un solo procesador core. Los
diseñadores de procesadores están implementando cada
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 160
vez más grupos de procesadores para trabajar juntos,
compartiendo datos y tareas entre los caches o varias
instancias del mismo procesador.
Muchos core se vuelve aún más interesante ya que los
procesadores más pequeños trabajan juntos para ofrecer
un nivel de ejecución combinado con menor consumo de
energía que un gran procesador de multitarea con la
misma carga de trabajo. Como se mencionó anteriormente, los costos asociados con un mayor
rendimiento sobre un subproceso son exponenciales; Sin
embargo, con el procesamiento multicore el costo se
vuelve más lineal en escala. Los diseñadores están
utilizando muchos cores para reducir significativamente
los costos al integrarlos al sistema.
Como diseñadores de hardware comienzan a implementar
estos sistemas de múltiples cores, los desarrolladores de
software tendrán que producir código capaz de utilizar
una solución de procesamiento múlticores.
Hasta entonces, los dispositivos deben tener la capacidad
de ejecutar tareas de alto rendimiento. Un ejemplo de un
sistema que contienga ambos multicores de alto
rendimiento y la mayor eficiencia de energía de muchos
cores en el sistema CPU y GPU, donde el GPU de
muchos cores puede entregar cómputo gráfico utilizando
menos energía que multicore CPU.
Dado que el GPU sigue siendo coherente con el CPU y
comparte sus cachés, ancho de banda de memoria externa
y la demanda del rendimiento del CPU se puede reducir. Los lenguajes como CUDA, OpenCL/C/C++, Phyton
para epiphany están trabajando para las aplicaciones más
genéricas.
La arquitectura Epiphany es una de las últimas
arquitecturas manycore en aparecer; se trata de una
arquitectura de 16 o 64 cores, expandible hasta 4,096
cores en un futuro.
Entre sus características notables se encuentran una
arquitectura manycore, escalable, con memoria compartida capaz de ejecutar cómputo paralelo. Esta
arquitectura ofrece una potencia de 50 Gigaflops por watt
en cálculos de simple precisión.
Está fabricada con el proceso de manufactura de 28 nm y
está conformada por 16 y 64 núcleos basados en una
arquitectura RISC e interconectados vía una red interna
de alta velocidad; el chip funciona a una frecuencia de
800 MHz, ofreciendo una potencia de 100 gigaflops y un
TDP (thermal design point) de apenas 2W.
Cada uno de sus núcleos utiliza un diseño muy simple, el cual es similar a los núcleos de los GPU o de
aceleradores como Xeon Phi, obviamente sin el hardware
x86 de este último.
En la figura 1, se muestran los componentes claves en la
arquitectura Epiphany.
Figura 1. Componentes de la Arquitectura Epiphany.
Fuente: Elaboración propia
Un superes calar, un CPU RISC de punto flotante en cada
nodo que puede ejecutar dos operaciones en punto flotantes y una operación de carga en memoria de 64 bits
con cada ciclo de reloj.
La memoria local en cada nodo proporciona 32
Bytes/ciclo de ancho de banda sostenido y es parte de un
sistema de memoria compartida, distribuida.
La infraestructura de comunicación Multicore en cada
nodo que incluye una interfaz de red, un acelerador DMA
multicanal, decodificador de dirección multicore y una
red de monitores.
Una red de malla 2D con latencias comunicación en el
chip de nodo a nodo en nanosegundos, con cero
sobrecarga inicial.
2. METODOLOGÍA
De manera general la investigación del sistema de
manycore procesa los datos de la imagen Lena.jpg que
tiene la imagen imperfecciones por la captura del
dispositivo:
La investigación la dividimos tres fases:
En la primera fase, el sistema obtener la imagen de
Lena.jpg
En la segunda fase, se analizara la imagen alteradas con
ruido gaussiano, es un tipo de ruido generado por el
dispositivo de captura (cámaras y escáner)[1][2].
En la tercera fase, se ejecutara el programa que llame a la
imagen Lena, a esta imagen que se le aplique el filtro basado en el dominio en frecuencia y que sea ejecutado
con 1 core , 4 cores y 16 cores obteniendo los
resultados de las ejecuciones desplegadas en el monitor
como se muestra en la figura 2.
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 161
Figura 2. Proceso de restauración de imagen a través de filtros.
IR IF
Fuente: Elaboración propia
2. DESARROLLO DEL SISTEMA
En la actualidad, las computadoras modernas cuentan con
procesadores de arquitectura multicore, las cuales
integran varias unidades de procesamiento en un sólo encapsulado. Estos procesadores son capaces de ejecutar
simultáneamente varias tareas utilizando hilos, procesos
o por paso de mensajes, permitiendo con esto que las
aplicaciones se ejecuten en menor tiempo. Para explotar
el paralelismo disponible a nivel de hardware, la
aplicación debe ser descompuesta en diferentes partes.
De esta manera cada unidad de core disponible podría
ejecutar una parte de la aplicación en paralelo con otras
unidades cores. La descomposición de la aplicación debe
ser seguida por la sincronización de las diferentes partes
de la aplicación para asegurar que se conserva la consistencia.
Además, la programación paralela se puede implementar
de diferentes formas y con distintos lenguajes de
programación [5]. La arquitectura Epiphany utilizada
para el desarrollo de esta investigación, posee un modelo
de programación neutral y compatible con la mayoría de
los métodos de programación paralela, incluyendo:
SIMD – Single Instruction Multiple Data, SPMD –
Single Program Multiple Data, programación maestro-
esclavo, MIMD, Flujo de datos estático y dinámico,
Array sistólico, Multihilos de memoria compartida, paso de mensajes y CSP - Procesos de Comunicación
Secuencial.
EL código puede escribirse en lenguaje C/C++ estándar,
compilarse y ejecutarse en un solo núcleo, siempre que
las matrices A, B y C sean colocadas en la memoria local
de los núcleos. En este ejemplo de programación, no
existe diferencia entre la arquitectura Epiphany y alguna
otra plataforma con un solo procesador. Para acelerar el
cálculo matemático, es posible utilizar varios núcleos
simultáneamente. Primero se distribuyen las matrices A, B, C en P tareas. Por la naturaleza estructural de una
matriz, la manera más adecuada de distribuir las tareas,
es por bloques pequeños. Para ello se hacen programas
(SPMD – Single Program Multiple Data) que se ejecutan
en cada uno de los núcleos.
La figura 3. muestra que la multiplicación de matrices
puede dividirse en 16 tareas y cada una de ellas ejecutada
en los núcleos de la red. La transferencia de datos durante
la ejecución de las tareas, entre cada nodo, se realiza
mediante la interfaz para paso de mensajes incluida en el
entorno de programación de Epiphany (SDK) o
directamente escribiendo en la memoria compartida
global[4].
La multiplicación de matrices en paralelo se completa en
√P pasos, (donde P es el número de procesadores), con
cada tarea de multiplicación de matrices operando sobre el conjunto de datos que son del tamaño de √P por √P.
En cada paso del proceso, se hacen modificaciones a la
matriz C, después de lo cual la matriz A se mueve hacia
abajo y la matriz B se mueve a la derecha. Este ejemplo
se puede programar utilizando lenguaje de programación
estándar ANSI.
La arquitectura Epiphany proporcionan funciones
específicas para simplificar la programación multicore,
pero su uso no es obligatorio, esta arquitectura permite a
los programadores innovar en todos los niveles. Este
algoritmo, implementado en la arquitectura Epiphany con 16-cores operando a 1 GHz, resuelve la multiplicación de
matrices de 128 x 128 en 2 ms. Este ejemplo demuestra
cómo es posible escalar la arquitectura para miles de
cores y cómo crece linealmente el rendimiento de la
arquitectura Epiphany con el número de cores cuando se
utilizan modelos adecuados de programación y
distribución de datos [4].
Figura 3. Flujo de datos en la multiplicación de matrices.
Fuente: Elaboración propia
3. BENEFICIOS CLAVE DE LA
ARQUITECTURA
La arquitectura Epifanía fue diseñada para un buen
rendimiento en una amplia gama de aplicaciones, pero
realmente se destaca en aplicaciones con alta localidad
espacial y temporal de los datos y código. Ejemplos de
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 162
tales dominios de aplicación incluyen: procesamiento de
imágenes, la comunicación, el procesamiento de la señal
del sensor, el cifrado y la compresión. Alta velocidad de
comunicación entre procesadores son compatibles con la
Epifanía arquitectura 2D Mesh ™ Red-on-Chip (NOC),
que se muestra en la figura 3b, que se conecta los nodos
de procesador en un chip. La red de malla para el tráfico
en alto rendimiento es usada en aplicaciones en tiempo
real.
La red se aprovecha de localidad espacial y una
abundancia de cables cortos punto a punto en el chip para
enviar Transacciones completas que consiste en dirección
de origen, dirección de destino, y los datos en un solo
ciclo de máquina. Cada enlace de enrutamiento puede
transferir hasta 8 bytes de datos en cada ciclo máquina, lo
que permite 64 bytes de datos a fluir a través de cada
nodo de enrutamiento en cada ciclo máquina, el apoyo a
un ancho de banda efectivo de 64 GB/seg a una
frecuencia de funcionamiento de la malla de 1GHz.
A continuación tenemos las siguientes figuras 4a y 4b
que nos muestra diferentes arquitecturas del mismo
enfoque de alto rendimiento y el consumo de energía que
tiene Epifanía.
Facilidad de uso: Una arquitectura de múltiples núcleos
que sea programable con ANSI-C/C+ +. Esto hace que la
arquitectura sea accesible a todos los programadores,
independientemente de su nivel de experiencia.
Eficacia: Las instrucciones de propósito general para superescalar, bancos de registros sin restricciones, se
asegura de que el código de aplicación escrito en ANSI-C
puede acercarse al rendimiento teórico máximo de la
arquitectura de la Epifanía. Baja potencia:
Optimizaciones de micro arquitectura, una alta
integración de circuitería eléctrica y un amplio periodo
de tiempo, que permite hasta 70% de eficiencia de
procesamiento Gflop/Watt, utilizando tecnología de
diseño de 28nm.
Escalabilidad: La arquitectura puede escalar a miles de núcleos en un solo chip, y millones de núcleos dentro de
un sistema más grande. Esto proporciona la base para las
futuras mejoras en el rendimiento de un mayor
paralelismo.
Figura 4a. Comparación de arquitecturas
Fuente: Elaboración propia
Figura 4b. Consumo de energía de Epifanía
Fuente: Elaboración propia
VENTAJA EFICAZ DE EPIFANÍA
La arquitectura Epifanía es un desarrollo tecnológico
muy bien diseñado y estructurado. Este diseño ya ha
completado cuatro generaciones de silicio de la arquitectura, la tabla 1 muestra claramente las ventajas de
características de la arquitectura, la epifanía en
comparación con otras arquitecturas del mismo enfoque
de la competencia. En la figura 5 se muestra las ventajas
de la eficiencia indiscutible de la arquitectura Epifanía.
Tabla 1.Caracteristicas de cores
Fuente: Elaboración propia
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 163
Figura 5. Eficiencia de la arquitectura Epifanía
Fuente: Elaboración propia
CARGAS DE TRABAJO
Una de las grandes ventajas de esta arquitectura es que cualquiera que esté familiarizado con C/C ++ puede lograr grandes resultados en muy poco tiempo. Absolutamente no hay idiomas, bibliotecas o construcciones de programación propietarias que se requieran. En la tabla 2 se muestra las latencias de tiempo de ejecución en diferentes lenguajes y la eficiencia sobre arquitecturas SIMD.
Tabla 2. Rendimiento de cargas de trabajo
Fuente: Elaboración propia
4. RESULTADOS
En la figuras 4a, 4b, 6 y tabla 2 mostramos la equivalencia de las arquitecturas SIMD con la arquitectura Epifanía en consumo y rendimiento, en este momento se tiene contemplado en trabajar sobre las siguientes generaciones del procesador Epiphany-IV de 64 y 128 procesadores, que funciona a 800 MHz, para tener resultados prácticos sobre las arquitecturas multicore, manycore donde hay que ser radical, para mejorar la eficiencia energética donde debe haber cambios
en la manera de programar y educar en la manera de pensar de cómo ejecutar dos o más tareas simultáneamente acompañado con los conceptos del ahorro de energía, como un dato importante Epifanía competirá con rivales como Tilera, Nvidia, Advanced Micro Devices, ARM e Intel, se espera que alcance una precisión de 70 y 100 Gigaflops/watts.
Figura 6. Rendimiento del core Epiphany
Fuente: Elaboración propia
5. CONLUSION
En este momento, el procesador actual Epiphany-IV funciona a 800 MHz, y se espera que alcance una precisión de 70 gigaflops/vatio, dos veces la eficiencia proporcionada en los sistemas anteriores. En el mercado de supercomputo, este procesador tendrá que competir con las soluciones GPGPU de AMD y Nvidia(Tesla M2050, GPU GeForce GT 120, GPU GeForce9800 GX2, Tilera(Tile-Gx), así como el con
procesador Knights Ferry MIC, y con otros microprocesadores diseñados con FPGA de otras marcas. El CPU Epiphany-IV esta, diseñado con una tecnología de 28nm, con lo cual este CPU tendría una virtud muy importante, porque será capaz de tener un buen rendimiento en un espacio pequeño, sin incrementar demasiado el consumo energético, por lo que esta plataforma Epiphany-IV, demuestra una ruta de acceso inmediato hacia la meta de 50 GFLOPS por vatio, que DARPA
debería alcanzar en 2018 en aplicaciones de computación de alto rendimiento.
Agradecimientos
El resultado de este trabajo se deriva del proyecto SIP-20151394, apoyado por la Secretaría de Investigación y Posgrado del IPN.
6. REFERENCIAS [1] Reza. H. M, ―An Anisotropic Fourth-Order Di_usion Filter For Image Noise Removal‖, International Journal of Computer Vision, Vol. 92. No 2. pp 177-191. 2011. [2] Vajda. A, “Multi-core and Many-core Processor Architectures”, pp 3. May 2011. [3] Sánchez, M. G. y col, ‖Performance Evaluation of
using Multi-Core and GPU to Remove Noise in Images‖, [En línea]. pp. 72,82,106, 113, 2011b. [4] Epiphany, SDK Reference Manual (2014)[En línea]. Disponible en: http://www.adapteva.com/wp-content/uploads/2013/04/epiphany _sdk _reference .4.13.03.301.pdf
010002000
TIEM
PO
Cores
RENDIMIENTO 9.2%
2 CORES
16 CORES
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 164
UNA SIMULACIÓN SPEC95 PARA IDENTIFICAR EL AHORRO DE ENERGÍA Y CONSUMO DE
ENERGÍA EN CACHES EN POWER PC Y ALPHA PROCESADORES Resumen-- El caché es una pequeña memoria que funciona más rápido que la memoria principal; modernos diseñadores procesadores ponen varios escondites en una unidad central de procesamiento para aumentar el rendimiento y la funcionalidad. Un diseño de memoria caché optimizado es el único factor para alcanzar un alto rendimiento del procesador. En este trabajo se comparó la eficiencia del consumo de energía, como parámetros importantes en el diseño de la arquitectura de procesadores y memorias caché. Los parámetros de medición y políticas de localización se establecieron
(asignación directa, asociativa, asociativa establecido) en cachés de memoria L1 , L2 . Se implementa en procesadores PowerPC , Alpha (tecnología RISC ) y los procesadores superescalares . El modelo de caché se propuso el uso de una simulación con las cargas de trabajo y SPEC95 SimpleScalar 3v0e. Palabras claves-- 3v0e SimpleScalar, el consumo de energía, memoria caché.
TEODORO ALVAREZ-SANCHEZ Instituto Politécnico Nacional, CITEDI Av. del Parque No. 131O, Mesa de Otay Tijuana, Baja California, México.
JESÚS ALVAREZ-CEDILLO
JUAN. HERRERA-LOZADA
JACOBO SANDOVAL-GUTIERREZ
Instituto Politécnico Nacional CIDETEC, UP Adolfo López Mateos Edif. CIDETEC, México D.F., México. [email protected], [email protected] [email protected]
1. INTRODUCCIÓN La diferencia entre el CPU y rendimiento de la memoria sigue creciendo, esta tendencia continua plantea un grave problema para el futuro desarrollo del procesador y rendimiento. Debido a los fallos de la cache, el procesador tiene que detenerse,
perdiendo tiempo valioso del CPU que se refleja en su rendimiento. Esto es especialmente cierto para los programas científicos donde el acceso a cache es inmenso provocando grandes fallas para todas las jerarquías de cache. Las caches hay de dos tipos: inclusivas y exclusivas. Durante el acceso a la cache del sistema de cache se consume energía. La energía consumida se
puede reducir por diversos métodos. Cachés Inclusivas que tienen una línea en todos los niveles de cache. Las caches exclusivas se encuentran sobre una amplia aplicaciones como son los multicore. Una línea de cache sólo está presente en un nivel de cache exclusiva. Convenientemente esto permitir que sólo la línea de cache visitada consuma la energía, de esta manera se reduciría la energía.
En este trabajo se propone un modelo de cache que se simulara en forma conjunta con el simulador Simplescalar 3v0e. El modelo propuesto se desarrolla para cachés exclusivas. El modelo puede ser modificado convenientemente para cachés inclusivas. Se supone que la cache exclusiva tradicional. Además, del nivel uno de cache tiene otra cache llamada cache de Tag. Esta caché tiene los valores de las variables de todas las vías de caché en todo los niveles. Una dirección está
acompañada de una matriz de variables en los distintos niveles. En un combinado. La correspondencia de vía cache accede. Sobre la falla, se proponen la política de sustitución en la cache exclusiva [1] es implementar la actualización de Tag en la cache adecuadamente. En este modelo, sólo la cache Tag junto con las vías de cache corresponde habilitar a los Hits. La cache de Tag (etiqueta) junto con las vías en todos los niveles de las cache, están habilitadas para conflictos de miss
(fallos). Esto reduce el consumo de energía. El modelo propuesto fue simulado para dos niveles de cache exclusiva.
El resto del trabajo se organiza de la siguiente manera. Sección 2 da la metodología, la sección 3 propuesto modelo, sección 4 análisis de rendimiento, la sección 5 la simulación y conclusión.
2. METODOLOGÍA
Considerando las cargas de trabajo SPECK95, que simularemos en las arquitecturas POWERPC y ALPHA Con la ayuda del simulador Simplescalar 3v0e, lo que integra un conjunto de herramientas de simulación la cual ofrece una infraestructura lo suficientemente capaz para modelar y simular arquitecturas superescalares, multicore. Simplescalar y obtención de datos estadístico para los diferentes configuraciones, niveles de las memorias caches donde
proporciona aciertos (Hits) y las falla (miss) de cada corrida. Simplescalar fue desarrollada por el grupo de la Universidad de Winsconsin-Madison en 1992 [5][6], la herramienta está públicamente disponible y ofrece información sobre la instalación de la herramienta además es software libre. SimpleScalar tiene la infraestructura para simular microprocesadores de 8 a 32 bits,, 64 bits y capaz de simular cargas de trabajo. Al simular el diseño de la arquitectura en conjunto con las memorias caches, puede obtener datos de las
fallas y aciertos considerando sobre el hardware diseñado. Para las pruebas de rendimiento en consumo de energía se realizaron distintas configuraciones de memorias caches, para ejecutar las cargas de trabajo denominadas benchmark. El simulador a utilizar es ejecución ―Out of Order‖. El análisis de investigación se realizará cuatro etapas, variando en algunos casos los parámetros de la memoria cache o el número de
unidades lógicas, tiempo de acceso a memoria caches, velocidad de las funcionales (cores). El objetivo de la primera etapa, es simular, el comportamiento de las memorias L1 (unificada o separada) y memoria L2 (unificada o separada) configuras desde un inicio. En la segunda etapa se realizará cambios en la configuración relacionado a la cantidad de ALU’s, donde se dejara como
constante las unidades funcionales modificaremos la
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 165
configuración inicial para la simular del modelo propuesto en memoria cache unificada L2.
En la tercera etapa, se realizará cambios en los parámetros de la memoria cache de instrucciones y la de datos. En la cuarta etapa, se refiere el ahorro de energía, que está asociada con la programación, este trabajo propone un método para ahorrar energía en memoria asociativa por conjunto y mapeo directo. El método consiste en mantener el tiempo de acceso, además, tener contador de acceso en cada vía. Todas las simulaciones se realizaron para las configuraciones POWERPC Y ALPHA. En
cada apartado de las pruebas se especifica la instrucción para poder ejecutar la simulación.
3. ARQUITECTURA DEL MODELO PROPUESTO Considere el sistema de caché. La energía consumida por el sistema depende de la cantidad de componentes en cache activos. En la cache asociativa por conjuntos, la energía de consumo depende de la cantidad de vías activas en cache. La
función deseada de subsistema de memoria caché se pueden formular como el consumo mínimo de energía en caché sujeto al tiempo promedio de acceso mínimo. Este trabajo propone alcanzar un algoritmo. La parte del Tag en la dirección es ―XOR― con 17 veces de asociatividad en cache. El resultado se desplaza a la derecha cuatro veces. La vía asignada se obtiene mediante la selección de bit valor de la variable resultante de la asociatividad de cache. Si la línea está
presente en el mapa de vías. El número de éxitos se incrementa, la línea es accedida. En caso de fallas, el número de fallos se incrementa, con respecto a la línea que traer el carácter inclusivo de la cache. El sistema cache considera inclusivo dos niveles. Deje que el nivel uno sea w1 el conjunto asociativo de cache del conjunto S1. Deje que el nivel dos sea w2 conjunto asociativo de cache
del conjunto S2. Deje que el tamaño de la línea sea en L Bytes. Considere el algoritmo descrito anteriormente. Denotar la implementación el algoritmo del sistema como Cprop. La arquitectura del sistema propuesto se muestra en la Fig.1. Considere el sistema de caché tradicional con la misma configuración. Denotemos como Ctrad. En la cache tradicional dejemos que H1, H2, T1, T2, T12, M sean en variables para el nivel uno de hits, el nivel dos de los hits, tiempo de acceso en nivel uno, tiempo de acceso en nivel dos, tiempo de
transferencia entre el nivel uno y nivel dos. Fallas penalizadas en el rastreo de dirección de Referencias R respectivamente. El tiempo medio de acceso a la memoria en la caché tradicional está dada por
( )
(
( ) ( )
)
AMAT (Ctrad) =
(HT + (R-H) M) (1)
Figura 1. Modelo propuesto de cache
Fuente: Elaboración propia
Dejar que h1, h2, t1, t2, t12, tf, m sean del nivel uno de hits, tiempo de acceso en nivel uno nivel, tiempo de acceso del nivel dos, tiempo de transferencia entre el nivel uno y nivel dos, tiempo para ejecutar el mapeo de direcciones a cierta vía, fallo
de penalidad respectivamente, del sistema propuesto. El sistema propuesto por AMAT es
( )
(
( ) ( )
)
AMAT (Cprop) =
(ht + (R-h) m) (2)
El primer término en la ecuación (3) es el momento de realizar la asignación de direcciones a modo específico. El segundo término es el tiempo que tarda el hit en nivel uno. El tercer
término es el tiempo que tarda los hits en nivel dos. El cuarto término es tiempo que toma las fallas. Una mejora en AMAT es observada si consideramos el consumo de energía.
(
( ) ( )
)
(
( ) ( )
)
(HT+(R-H)M)≥
(ht+(R-h)m) (3)
Suponga que el sistema de caché funciona en dos modos de consumo de alimentación, de alto y de bajo consumo. Durante la no operación de la memoria cache, está en modo de baja consumo. Durante la operación, el conjunto asignado de la cache asociativa tradicional el conjunto está en modo de alto consumo. El modelo propuesto, de una vía en la asignación del conjunto
está en modo de alto consumo. La energía consumida Elow, Ehigh ser la energía consumida por vía en modo de baja y alta consumo respectivamente en el sistema de cache. La energía total consumida en la caché tradicional está dada por
( ) ( ) ( )
( )( )
( )( ) ( ) (4)
El primer término de (5) es la energía que se consume en el sistema de caché tradicional durante la no operación. Todos los conjuntos de ambos niveles de caché están modo de bajo consumo. El segundo término es la energía consumida durante los hits del nivel uno. El nivel uno asignado está en modo de alto consumo. El tercer término es la energía consumida durante la falla del nivel uno y los hits del nivel dos. Los conjuntos
asignado en ambos niveles de caché están en modo de alto consumo. El cuarto término es la energía consumida durante la falla. Los conjuntos asignado en ambos niveles de caché están en modo de alto consumo. La energía consumida en el modelo propuesto está dada por
( ) ( ) ( )
( )( )
( )( ) ( ) (5)
Dirección
1101
XO
R
0001
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 166
El primer término en (6) es la energía consumida por el sistema de caché propuesto durante el no funcionamiento. El segundo
término es la energía consumida durante los hits en nivel uno. Una vía de caché está habilitada durante esta operación. El tercer término es la energía consumida durante la falla (miss) del nivel uno y los hits de nivel dos. Una vía de caché de nivel uno y otro conjunto del nivel dos están en este caso de modo de alto consumo. El cuarto término es la energía consumida durante el nivel uno y el fallo de nivel dos. En este caso una vía de caché de nivel uno y otro conjunto del nivel dos
están en modo de funcionamiento. Se observa una mejora en el consumo de energía.
( ) ( ) (
)( ) ( )( )(
) ≤ ( ) ( )
( ) ( ) ( )( )
( ) (6)
4. SIMULACIÓN El modelo propuesto se simula utilizando la herramienta SimpleScalar. Los benchmarks de referencia SPEC95 se
ejecutan con el simulador Outorder del SimpleScalar. Utilizamos esta herramienta para la simulación del modelo propuesto. El modelo de caché se valida con los benchmarks SPEC95. Los parámetros para la simulación del modelo propuesto se dan en la Tabla 1. Se supone que la comparación de Tag se realiza en paralelo. Por lo tanto el tiempo de acceso en nivel uno es
adoptar son los mismos que se modelo tradicional y el modelo propuesto.
Tabla 1 Parámetros de simulación
Parámetros Valor
Tamaño de L1 1024
Asociativa por conjuntos 8
Tamaño de Línea 32 Bytes
Tiempo de Hits en mapeo directo 1 ciclo
Penalidad de fallo en caches tradicionales 50 ciclos
Penalidad de fallos en cache propuesta 50 ciclos
Tiempo de Hits en cache totalmente asociativa 3 ciclos
Tiempo de Hits en modelo propuesto 1 ciclo
Fallas de penalidad en cache tradicional 50 ciclos
Fallas de penalidad en cache propuesto 50 ciclos
Traducción de direcciones por usar la compuerta XOR
2 ciclos
Fuente: Elaboración propia
La energía consumida se calcula a continuación. La memoria caché se supone que opera en modo de alto consumo y bajo
consumo. Supongamos que la línea de caché consume 5J (Joule) de energía en modo de bajo consumo y 10J de energía en modo de alto consumo. El número de entradas del vector propietario es de 8192 bits o 1024 Bytes. Hay 17 bits de campo del Tag, adoptamos una dirección de 32 bits. El tamaño de la cache Tag es de 17408 Bytes. El número de la cache Tag es de 18432 Bytes.
La energía consumida por la memoria cache Tag es 5760J.
La energía consumida en caché tradicional para las referencias de R está dada por la ecuación (7):
Et=SizeCache * Rf*vías*Ec + Rf*vías*Ec (7)
1024 * 58822*8 * 5 + 58822 * 8 * 5= 2411702KJ
Para el modelo propuesto, la energía consumida está dada por la ecuación (8): Ep= ET+Rf*Ec + Rf*vías* Ec * SizeCache (8)
5760J + 58822*5 + 58822* 8 * 5 *1024=2409354 KJ Los valores de energía consumida está dados en la tabla 2, la
energía consumida en el modelo propuesto es comparado con el modelo tradicional. Además en la tabla 3 se tiene los valores de los Hits y Miss de cada una de las arquitecturas utilizadas
Tabla 2 Comparación de Energía de Alpha, PowerPC y PISA
Nombre test-math
Etrad KJ
Eprop KJ
# Total de Re-ferenci-as *
#Total de instrucci-ones eje- cutadas
% Mejoramiento
ALPHA 2411702 2409354 58822 54468 1
PowerPC 6503133 6606289 158613 241113 9.8
PISA 10409162
10400281
253882 231899 1
Fuente: Elaboracion propia
Tabla 3 Valores de sistema de cache tradicional IL1 separada y IL2
unificada
Benchmark test-math
Hits IL1
Miss IL1
Hits UL2
Miss UL2
#Total de Referencias*
ALPHA 55805 2997 3520 453 58822
PowerPC 153942 4671 5143 547 158613
PISA 237945 15937 16484 687 253882
Fuente: Elaboración propia
El modelo propuesto esta simulado el algoritmo de búsqueda binaria. La búsqueda se encuentra entre 1024 números generados al azar entre cero y cien. Con un total de 1000 números aleatorios entre cero y cien. Las direcciones de matriz que se accede durante esta búsqueda se recopilaron mediante rutinas de lenguaje C. Las direcciones se asignan en la memoria caché con el algoritmo propuesto.
La Fig. 2 muestra el porcentaje sobre el consumo de energía de los parámetros indicados en la Tabla 2 (excepto el tamaño de la caché, que es variada). Como se ve en la Fig. 3 el número total de instrucciones a ejecutar vs el número total de accesos. Para los conjuntos de caché de tamaño 1024, para el modelo
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 167
propuesto es más que el modelo de caché asociativa conjunto tradicional.
Figura 2. Porcentaje en consumo de energía
Fuente: Elaboración propia
Figura 3. Porcentaje en consumo de energía.
Fuente: Elaboración propia.
5. CONCLUSION Se propone en este artículo un modelo de caché que varié las vías de forma limitada, el número de vías por conjuntos que sean 2 mínimo. El modelo propuesto se simula con benchmark
SPEC95. Se observa una mejora de la energía 1%, con respecto a la caché tradicional hasta una de mejora un 9.8% con respecto a establecer caché asociativa de 2 vías de la misma capacidad, observando los parámetros escogidos comparando la energía consumida con el modelo tradicional.
6. REFERENCIAS
[1] S. Subha, “An energy saving set associative cache
algorithm with improved performance”, JATT. Journal of Theoretical and Applied TechnologyOn Aut. . Vol. 62. No 3. pp 748-741. 30 April 2014.
[2] Patterson and J.L Hennessy, ”COMPUTER ARCHITECTURE: A QUANTITATIVE APPROACH”, 5nd. ed., Morgan Kaufman Publishers, 20014.
[3] Carlos A. Villar León, Teodoro Álvarez. S. and Roberto C. Herrera, “Simulación de cargas de trabajo Spec95 en
Simplescaler”, Electro 2014. Vol. XXXVI. pp. 16-20. 2014.
[4] Elkin Garcia, Daniel Orozco and Guang R Gao, “energy efficient tiling on a Many-Core Architecture”, 2014.
[5] Simplescalar [En línea]. Disponible en: http://www.simplescalar.com/v4test.html , sitio visitado el 01/01/2014.
[6] Simplescalar instalation.Igoy.in [En línea]. Disponible en: http://www.igoy.in , sitio visitado el 08/02/2014.
______________________________________________ Teodoro Álvarez Sánchez: Maestría en sistemas digitales por Instituto
Politécnico Nacional CINTEC. Estudiante de Doctorado en Ciencias del IPN-
CIC(Cómputo Paralelo).
Jesús Antonio Álvarez Cedillo: Graduado por la Escuela Superior de Ingeniería
Mecánica y Eléctrica (ESIME) del Instituto Politécnico Nacional, en la Ciudad de
México, como ingeniero en comunicaciones y electrónica en 1997 y
posteriormente como Maestro en Ciencias de la Informática por la Unidad
Profesional Interdisciplinaria de Ingeniería y Ciencias Sociales y Administrativas
(UPIICSA) del Instituto Politécnico Nacional en el año 2002. Desde 2007 es
candidato a Doctor en Tecnologías Avanzadas en el Centro de Investigación e
Innovación Tecnológica (CIITEC) del Instituto Politécnico Nacional. Ha ejercido
como profesor e investigador de tiempo completo del Centro de Innovación y
Desarrollo Tecnológico en Cómputo (CIDETEC) desde 2000. Ha publicado
diversos artículos relacionados con arquitectura de computadoras, procesamiento
paralelo y algoritmos de alto desempeño.
Juan Carlos Herrera Lozada: Ingeniero en Comunicaciones y Electrónica,
egresado de la Escuela Superior de Ingeniería Mecánica y Eléctrica del Instituto
Politécnico Nacional, en la Ciudad de México, en el año de 1996. En 2002 obtuvo
el grado de Maestro en Ingeniería de Cómputo con especialidad en Sistemas
Digitales y en 2011 obtuvo el grado de Doctor en Ciencias de la Computación,
ambos en el Centro de Investigación en Computación del Instituto Politécnico
Nacional, también en la Ciudad de México. Actualmente está adscrito al Centro
de Innovación y Desarrollo Tecnológico en Cómputo del Instituto Politécnico
Nacional, en donde ingresó desde 1998. Ha sido autor de diversos artículos y
ponente en congresos nacionales e internacionales.
Jacobo Sandoval : Actualmente es Profesor Visitante en el proyecto de
Arquitecturas de Sistemas Embebidos para la Investigación Científica y la
Integración de Tecnologías para el Centro de Innovación y Desarrollo
Tecnológico en Cómputo del Instituto Politécnico Nacional, CIDETEC, tiene
Doctorado y Maestría en Tecnología Avanzada por el IPN.
1
9.8
1
0
5
10
15
ALPHA PowerPC PISA
Consumo de energia
%Mejora
58822 54468
158613
241113 253882 231899
Total Ref Total Ejec
Instr ejecutadas vs instr referidas en cache
ALPHA PowerPC PISA
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 168
APLICACIÓN SOFTWARE DE APOYO PARA DISEÑO DE EVALUACIÓN BAJO
COMPETENCIAS
Resumen— El empleo de las tecnologías de la información en la
educación superior constituye una opción para que el docente pueda adquirir los conocimientos y destrezas que les permita utilizar y
elaborar materiales educativos, y de esta forma, aprovechar las
capacidades tecnológicas de los centros universitarios. Dentro del
proceso educacional la evaluación es una etapa que tiene por
finalidad comprobar, de modo sistemático en qué medida se han
logrado los resultados previstos. La presente una aplicación de
software ofrece una alternativa al docente en la evaluación bajo el
enfoque en competencias diseñando procedimientos de evaluación
(patrones) que permitan definir la estrategia de evaluación de sus
asignaturas tomando en cuenta cada uno de los aspectos importantes
que evidencien el dominio de la competencia. Esta herramienta es
desarrollada utilizando los estándares de Ingeniería de Software, UML y Proceso Unificado, así como software de licenciamiento libre
para su programación.
Palabras claves— Competencia, Evaluación, Ingeniería de Software.
MIGUEL ÁNGEL DE LA VARA
RAMÍREZ Instituto Tecnológico de la Laguna
ELISA URQUIZO BARRAZA Instituto
Tecnológico de la Laguna
ENRIQUE CUAN DURÓN
Instituto Tecnológico de la Laguna
DIEGO URIBE AGUNDIS Instituto Tecnológico de la Laguna
SARA MARÍA VELAZQUEZ REYES Instituto Tecnológico de la Laguna
1. INTRODUCCIÓN
La educación basada en competencias se centra en las
necesidades, estilos de aprendizaje y potencialidades
individuales para que el alumno llegue a manejar con
maestría las destrezas señaladas por la industria y la vida
misma.
Se definen actividades cognoscitivas dentro de ciertos
marcos que respondan a determinados indicadores
establecidos y asienta que deben quedar abiertas al futuro
y a lo inesperado.
De esta manera es posible decir, que una competencia en
la educación, es una convergencia de los
comportamientos sociales, afectivos y las habilidades
cognoscitivas, psicológicas, sensoriales y motoras que
permiten llevar a cabo adecuadamente un papel, un
desempeño, una actividad o una tarea.
Con esta referencia se plantea la necesidad de
implementar una aplicación software que proporcione al
profesor una herramienta que le permita efectuar una
evaluación acorde al modelo basado en competencias, haciendo hincapié que de por sí sola la evaluación en el
modelo de enseñanza tradicional es una actividades
compleja, bajo el enfoque en competencias se complica
considerablemente.
2. LA EDUCACIÓN BASADA EN
COMPETENCIAS
Una competencia la podemos ver como la combinación y desarrollo dinámico de conjuntos de conocimientos,
capacidades, habilidades, destrezas y atributos de carácter
intelectual y procedimental que se constituyen en un
desempeño profesional producto de un proceso
educativo. Para evidencia el dominio de una competencia
se debe definir actividades claras y precisas por parte del
docente en las cuales se permite evidenciar por parte del
alumno el dominio de las mismas. Es en esta parte donde
se centra el principal trabajo del profesor el definir ¿qué
actividades son las correctas y cuál será la manera de
evaluarlas? La educación basada en competencias se refiere a una experiencia práctica, que necesariamente se
enlaza a los conocimientos para lograr un fin. La teoría y
la experiencia práctica se vinculan, utilizando la primera
para aplicar el conocimiento a la construcción o
desempeño de algo.
Las competencias parten del marco conceptual que
provee la institución con su misión y sello característicos.
Para elegir el núcleo de competencias básicas que se
requiere construir es necesario analizar y responder en
forma realista las siguientes preguntas:
1. ¿Cuáles son las competencias básicas y necesarias para obtener buenos resultados en la práctica
profesional contemporánea?
2. ¿Qué indicadores permiten elegir las competencias
que se van a construir?
3. ¿Cuáles son los medios más efectivos para construir
estas competencias?
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 169
4. ¿Cuáles son los medios más efectivos para
comprobar que los alumnos han construido estas
competencias?
Las competencias que son tomadas en cuenta en nuestro
proyecto se clasifican en Genéricas, y Especificas.
a) Las competencias genéricas definen las capacidades
necesarias para el desempeño de cualquier profesión mediante la identificación de los elementos comunes
compartidos por todas las carreras del nivel profesional,
tales como la capacidad de aprender, de tomar decisiones,
de diseñar proyectos, las habilidades interpersonales, etc.
b) Las competencias específicas son las capacidades
referidas a la especificidad de un campo de estudio o
disciplinas requeridas para el desempeño profesional en
sus diversos ámbitos de intervención.
3. SELECCIÓN DE LA COMPETENCIAS Y
PATRÓN DE DISEÑO
En esta fase se contempla el uso de patrones para ubicar
pedagógicamente a la competencia pretendida, al nivel educativo y al estilo de aprendizaje del alumno. Un
patrón puede relacionarse con un contexto de aprendizaje
característico, definido por el académico, y entonces
puede ser, por un lado, la parte común con las
características de ese contexto de aprendizaje con la
información suficiente para aplicarse a diversas
situaciones de aprendizaje y, por otro lado, también
puede adaptarse a nuevas situaciones modificando su
contenido específico (Zapata, M. et al 2010). En la
propuesta automatizada de la creación de procedimiento
de evaluación a través de patrones de diseño se contemplan las siguientes consideraciones (Jones David.
et al.1999):
a) Identificación y especificación de patrones que
capturen una secuencia de actividades genéricas para
el desarrollo de una competencia.
b) Parametrización.
c) Especificación del diseño funcional y multimedia de
los procedimientos.
d) Creación de la base de datos de procedimientos.
e) Principios de diseño instruccional representados
mediante patrones.
Debido a las diferentes dimensiones que adquiere la
construcción de un procedimiento de evaluación y a la
falta de perfiles pedagógicos e informáticos de los
académicos, los patrones de diseño son un gran recurso
que le aportará sin lugar a dudas, calidad al recurso
creado y le aportará al aprendizaje del alumno.
En esta fase, el académico reflexiona acerca de la
competencia que pretende desarrollar en sus alumnos y
elige el patrón de diseño para la evaluación que más se corresponda a sus intenciones educativas (Urquizo, E. et
al. 2010). Esta primera fase le dará al procedimiento de
evaluación las características de ser real, pertinente,
coherente, cohesivo e integral y con las características de
calidad del ISO 9126 de usabilidad y funcionalidad [1].
Una vez que el académico tiene definida la competencia
y que ha seleccionado el patrón de diseño es momento de
generar los procedimientos de evaluación que se
integrarán a cada una de las actividades que conformen el contexto de aprendizaje considerando principios de [3]:
enfoque para la toma de decisiones; contextos
profesional, disciplinar, social e investigativo;
desempeño; inclusión de docentes y administrativos;
integración de lo cuantitativo y cualitativo;
involucramiento de estudiantes en el proceso.
El reflexionar en estos principios nos lleva a afirmar que
la evaluación de competencias es un proceso complejo y
multidimensional que merece ser tratado como un objeto
de investigación y que su adecuada incursión en el
contexto de aprendizaje le abonará a la calidad pedagógica de dicho contexto. En esta aportación
hacemos referencia a su automatización a través de un
software que guíe al académico en la selección del patrón
de diseño del procedimiento de evaluación y a la correcta
integración de dicho proceso al contexto de aprendizaje.
El producto final será un procedimiento de evaluación
que concuerda con las competencias pretendidas en el
contexto de aprendizaje que ha diseñado el académico.
De esta forma el procedimiento tendrá la garantía de
calidad suficiente para ser implementado y puesto a disposición de los usuarios.
4. MÉTODOS Y HERRAMIENTAS DE
DESARROLLO DE LA APLICACIÓN
INFORMÁTICA DE PROCEDIMIENTOS DE
EVALUACIÓN
La metodología que se ha seguido para el desarrollo de
esta aplicación informática comprende las siguientes
fases: Ingeniería de requisitos y análisis de la aplicación
para determinar lo que es importante identificar en los procedimientos de valuación en competencias.
Esto apoyado por las técnicas para recabar información
proveniente de los académicos del Instituto Tecnológico
de la Laguna.
Para las fases de análisis y diseño de la aplicación se ha
utilizado el Proceso Unificado (UP) y el Lenguaje de
Modelado Unificado, UML. En la parte de desarrollo se
utilizan herramientas de licenciamiento libre LAMP
(Linux, Apache, Myql, Php), dando como valor agregado
el hecho de no requerir inversión alguna desde el punto de vista económico.
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 170
5. ANÁLISIS Y DISEÑO DE LA APLICACIÓN
SOFTWARE
La aplicación software trabaja a partir de patrones
(plantillas, guías) previamente establecidos que sirven de
ayuda al profesor al momento de implementar sus
evaluaciones, permitiéndole ajustar a sus necesidades ya
sea añadiendo o eliminando componentes. De manera
general el proceso de integración del proceso de evaluación se esquematiza en la figura 1. En la figura 2
se muestran pantallas de captura de la aplicación de
software.
Figura 1. Proceso de evaluación apoyado por un sistema
informático de patrones de diseño.
Fuente: Elaboración propia
El procedimiento es aplicado a contextos de
aprendizajes definidos (asignatura, materia, curso, prácticas de laboratorio, etc.) dividido en 4 etapas
principales:
a) Datos Generales del procedimiento de
evaluación.- Definimos la información que
identifican nuestro procedimientos, y el contexto de aprendizaje, al cual se aplicará la
evaluación
b) Competencias.- Son divididas en competencias previas, genéricas y específicas.
a. Previas.- Pueden ser competencias
específicas o genéricas que debe de tener dominio el alumno previamente
obtenido de cursos anteriores.
b. Genéricas.
c. Especificas
c) Estilos de Aprendizaje.- Los estilos de
aprendizaje son implementados a partir del
modelo de Folder y Silverman utilizando las
dimensiones
a. Sensitivo-Intuitivo
b. Visual-Verbal
c. Inductivo-Deductivo d. Secuencial-Global
e. Activo-Reflexivo
d) Criterios de Evaluación.- Es la parte central del procedimiento de evaluación donde se aplica la
evaluación definiendo las competencias
específicas a ser evaluadas, actividades para evidenciar el dominio de las mismas, los
criterios para efectuar la evaluación y las
rubricas siendo en este apartado donde se
permite una valoración numérica o de apreciación.
Figura 2. Interfaces del sistema de diseño de
procedimientos de evaluación.
Fuente: Elaboración propia.
6. COMENTARIOS FINALES
El procesos de evaluación de competencias es algo
necesario para el flujo normal del aprendizaje de los alumnos, sin ellos el aprendizaje simplemente no sería
posible ya que para aprender es necesario tener
evidencias de los logros y de los fallos a través de la
retroalimentación y más importante aún lo es el
desarrollar oportunidades de mejora para la adquisición y
dominio de las competencias en cuestión.
Lo presentado en esta aportación contribuye a la calidad
del proceso de evaluación al presentar al profesor una
herramienta que le guíe en la elaboración del
procedimiento de evaluación para una competencia
determinada.
7. REFERENCIAS
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 171
[1] Hernández, Yosly., Montaño, N., Miguel, Vannesa, y
Velásquez, S. ―Una experiencia en la Construcción de un
Modelo de Calidad Pedagógica para Objetos de
Aprendizaje‖. Prieto, M., Sánchez, S, Ochoa, X., y
Peach, S. ―Recursos Digitales para el Aprendizaje‖
(2009).
[2] Jones, David. Sharonn., Stewart., y Power, L.
―Patterns: using proven experience to develop online
learning. Proceedings o ASCILITE’99‖ Consultado por internet el 10 de febrero del 2012. Dirección de internet:
http://www.ascilite.org.au/conferences/brisbane99/papers
/jonesstewart.pdf.
[3] Tobón, S., Pimienta, J., y García, J.A.
―Secuencias Didácticas: aprendizaje y evaluación de
competencias‖, 1ª Edición, Editorial Pearson Educación,
México, 2010.
[4] Tobón, S., García Fraile, J. A., Rial, A., y
Carretero, M. ―Competencias, Calidad, y Educación
Superior‖. Bogotá: Cooperativa Editorial Magisterio.
[5] Urquizo, E., Quintero, O., Cuan, E. ―Sistema
Automatizado de Patrones de Diseño‖ (2010). Prieto, M., Dodero, J.M., y Villegas, D. ―Recursos Digitales para
la Educación y la Cultura‖ pp 243-246 (2010).
[6] Zapata, M. ―Objetos de Aprendizaje generativos,
competencias individuales, agrupamientos de
competencias y adaptabilidad‖, Universidad de Murcia.
Dirección de internet:
http://redalyc.uaemex.mx/pdf/547/54712082002.pdf.
______________________________________________ Miguel Ángel de la Vara Ramírez: es profesor de industria en el Posgrado en Sistemas Computacionales del Instituto Tecnológico de la Laguna. Egresado del Instituto Tecnológico de la Laguna en ingeniería en sistemas computacionales con especialidad en ingeniería de software. Obtuvo el grado de
maestría en Sistemas Computacionales por el Instituto Tecnológico de la Laguna.
Elisa Urquizo Barraza: es profesora –investigadora en el Posgrado en Sistemas Computacionales del Instituto Tecnológico de la Laguna. Egreso de este instituto de la ingeniería en Electrónica y curso los posgrados: Maestría en Sistemas de Computación Administrativa (Instituto Tecnológico y de Estudios Superiores de Monterrey), maestría
en Educación (Universidad Iberoamericana) y Doctorado en Administración Estratégica (Instituto Internacional de Administración Estratégica). Sus principales áreas de investigación son: Tecnología Aplicada a la Educación y a la Generación de Conocimiento
Enrique Cuan Durón: es Ingeniero Industrial Electricista egresado del Instituto Tecnológico de la Laguna en. Obtuvo su
grado de Maestría en Sistema.
Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4,
Núm. 7. Año 2015.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México.
172