perfil diego rodriguez

30
UNIVERSIDAD CATÓLICA BOLIVIANA “SAN PABLO” UNIDAD ACADÉMICA REGIONAL COCHABAMBA Departamento de Ciencias Exactas e Ingeniería Ingeniería de Sistemas Modelo de interfaz inteligente capaz de detectar patrones de hábitos periódicos de uso del usuario Tesis de Licenciatura en Ingeniería de Sistemas Diego Rodriguez Aguila Cochabamba Bolivia Abril de 2014

Upload: everson-vidal-mamani-huayta

Post on 17-Jan-2016

12 views

Category:

Documents


0 download

DESCRIPTION

bok

TRANSCRIPT

Page 1: Perfil Diego Rodriguez

UNIVERSIDAD CATÓLICA BOLIVIANA “SAN PABLO”

UNIDAD ACADÉMICA REGIONAL COCHABAMBA

Departamento de Ciencias Exactas e Ingeniería

Ingeniería de Sistemas

Modelo de interfaz inteligente capaz de detectar patrones de hábitos

periódicos de uso del usuario

Tesis de Licenciatura en Ingeniería de Sistemas

Diego Rodriguez Aguila

Cochabamba – Bolivia

Abril de 2014

Page 2: Perfil Diego Rodriguez

1

ÍNDICE GENERAL

INTRODUCCIÓN ........................................................................................................... 5

ANTECEDENTES ........................................................................................................... 5

PROBLEMA .................................................................................................................... 7

Situación Problemática ................................................................................................ 7

Formulación del Problema .......................................................................................... 8

HIPÓTESIS ...................................................................................................................... 8

OBJETIVOS ..................................................................................................................... 8

Objetivo General .......................................................................................................... 8

Objetivos Específicos ................................................................................................... 8

Acciones ........................................................................................................................ 9

ALCANCE ...................................................................................................................... 11

Alcance del proyecto .................................................................................................. 11

Alcance del producto ................................................................................................. 12

LÍMITES ........................................................................................................................ 12

Límites del Proyecto .................................................................................................. 12

Límites del Producto .................................................................................................. 13

JUSTIFICACIÓN .......................................................................................................... 13

CRONOGRAMA ........................................................................................................... 13

1. MARCO TEÓRICO .............................................................................................. 16

1.1. Experiencia de Usuario ................................................................................... 16

1.2. Interfaces Inteligentes (IUI’s) ........................................................................ 16

1.2.1. Definición del concepto de IUI ................................................................... 16

Page 3: Perfil Diego Rodriguez

2

1.2.2. Propiedades de las IUI’s ............................................................................. 19

1.2.3. Modelamiento de Usuario en las IUI’s ...................................................... 23

1.2.4. IUI’s basadas en redes neuronales artificiales .......................................... 25

1.2.5. IUI’s basadas en registros de datos históricos .......................................... 27

1.3. Redes Neuronales Artificiales ........................................................................ 27

1.3.1. Redes back-propagation ............................................................................. 27

1.3.2. Redes SOM ................................................................................................... 27

1.3.3. Redes de Hopfield ........................................................................................ 27

1.4. Datos Estadísticos ............................................................................................ 27

1.5. Estructuras de Datos ....................................................................................... 27

1.5.1. Árboles binarios ........................................................................................... 27

1.5.2. Montículos binarios ..................................................................................... 27

1.5.3. Árboles de segmentos .................................................................................. 27

1.6. Metodología de Desarrollo de Software ........................................................ 27

1.6.1. Selección de metodología ............................................................................ 27

1.6.2. Metodología Orientada a Prototipos ......................................................... 27

1.7. Tecnologías de Desarrollo............................................................................... 27

1.8. Arquitectura de Software ............................................................................... 27

2. MARCO PRÁCTICO ............................................................................................ 27

2.1. Definición de los componentes de la red neuronal ....................................... 27

2.2. Diseño de la estructura de datos para organizar los datos históricos ........ 27

2.3. Diseño de la forma de integración de redes neuronales y datos históricos 27

2.4. Desarrollo del prototipo sobre Windows ...................................................... 27

Page 4: Perfil Diego Rodriguez

3

2.5. Desarrollo del modelo de IUI basado en la integración de redes neuronales

con registros de datos históricos ............................................................................... 27

BIBLIOGRAFÍA ........................................................................................................... 28

Page 5: Perfil Diego Rodriguez

4

ÍNDICE DE FIGURAS

1. Figura 1………………………………………………………………………..12

Page 6: Perfil Diego Rodriguez

5

INTRODUCCIÓN

Hoy en día se vive un constante crecimiento en la industria de la informática, dentro de

todas las áreas que implican el software (móviles, web, escritorio, etc…) y cada vez es

más necesario ser competitivo con respecto a los demás. Durante la última década la

importancia de los distintos componentes de software han cambiado sustancialmente,

dado que anteriormente, se consideraba que lo más importante del software era la

funcionalidad. Para los desarrolladores este concepto aún se mantiene, pero no para los

clientes, para los cuales la experiencia de usuario (UX) es más importante que la

tecnología. Si el cliente no tiene una experiencia agradable utilizando cierto producto de

software, no le importará cuán funcional sea, dejará de utilizarlo. Grandes proyectos de

software fracasan tan sólo por no haber tomado en cuenta la UX que brinda su sistema.

Un buen diseño de experiencia de usuario trata de hacer las cosas sencillas, no sólo a nivel

de interfaz (UI), sino de comunicación y cultura en la propia empresa o proyecto.

“La interfaz gráfica de usuario (GUI) es un componente muy importante en el diseño de

UX, dado que ésa es la carta de presentación del sistema al usuario” (NIELSEN y

NORMAN, 2000). Sin embargo, “la GUI no brinda la experiencia de usuario por sí sola,

sino junto con los diseños de interacción, de navegación y la arquitectura de información.”

(GARRET, 2000)

ANTECEDENTES

Desde la década pasada, se han creado muchas y diversas técnicas para mejorar la

experiencia que un usuario tiene al utilizar un producto de software. Con este fin surgió

un nuevo concepto, las interfaces inteligentes, mejor conocidas como IUI’s. Han habido

investigaciones y bastantes esfuerzos en lo que concierne a IUI’s, que se basan en registro

de frecuencias, montículos binarios, técnicas de data mining y redes neuronales, entre

otros.

Page 7: Perfil Diego Rodriguez

6

Una interfaz inteligente se caracteriza por brindar una presentación del producto de

software (una UI) que tiene la capacidad de mostrarse al usuario lo más ajustado posible

a sus necesidades y de forma casi automática y autónoma. Probablemente desde que

nacieron las interfaces gráficas, empezó a manejarse el concepto de personalización.

Aunque este concepto ha ido evolucionando con el transcurso del tiempo, casi siempre es

el usuario quien debe tomarse un tiempo para ajustar ciertas herramientas a su

conveniencia. En cambio las interfaces inteligentes poseen, al menos conceptualmente, la

habilidad de adaptarse al usuario según el uso que él le da al producto de software.

Dicha habilidad de adaptarse es una gran ventaja para el usuario, en especial cuando se

utilizan aplicaciones que tienen muchas opciones en su interfaz, ya que las IUI’s se

encargan de seleccionar las más pertinentes para él. Pero según el tipo de IUI, el resultado

de esta selección de opciones es diferente y no al cien por ciento lo que el usuario espera,

debido a los factores que la interfaz inteligente haya tomado para adaptarse a él.

Existen distintos paradigmas de interfaces inteligentes que se han ido formando durante

las investigaciones en el área de interacción hombre-máquina (HCI, por sus siglas en

inglés). Dentro de esta área se han definido tres tipos de interacciones que sirven para

crear las interfaces inteligentes: basadas en el usuario, basadas en el modelo, y basadas en

los agentes. La interacción basada en el usuario se centra en los intereses individuales de

cada usuario, y las IUI’s deben ser adaptables a él y también dinámicas, es decir que

cambian en el tiempo, según las necesidades. La interacción basada en el modelo implica

el uso de modelos y conocimientos reusables que se plasman en la forma en la que se

presentará la UI, tal como la utilización de recursos psicológicos para saber las

necesidades del usuario. La interacción basada en agentes implica delegar, a agentes de

software, las tareas concernientes a distintas facetas de la interacción. No hay una

Page 8: Perfil Diego Rodriguez

7

definición estricta de los agentes, pero sí se caracterizan por tener autonomía,

adaptabilidad, pro-actividad y sociabilidad. (Cf. ICEB, 2004: 925-926)

Un tipo de interfaces inteligentes, que fueron mencionadas previamente, son las basadas

en redes neuronales. Este tipo de interfaces son conocidas por su capacidad de adaptarse

al cliente, ya que aunque sus necesidades cambien con el tiempo, es versátil y se

reacomoda a éstas. También tienen la propiedad de reconocer distintos patrones de

comportamiento del usuario. Por otro lado, una cualidad de este tipo de IUI’s es la

eficiencia, dado que no se hace ningún tipo de análisis estadístico para saber las

preferencias del usuario.

Cabe destacar también a las interfaces inteligentes basadas en registros de datos históricos.

Estas interfaces tienen la propiedad de reconocer patrones de uso periódico del usuario,

esto lo logra por medio de distintos análisis estadísticos. Dicho análisis permite acertar

bastante en las necesidades del usuario pero llevan un tiempo extra de procesamiento. El

problema esencial que tienen este tipo de IUI’s es que una vez que se va formando un gran

registro histórico de las actividades del usuario se torna muy difícil que se adapte a nuevas

necesidades que pueda tener.

PROBLEMA

Situación Problemática

El uso de productos de software con muchas opciones en su interfaz provoca una

notable pérdida de tiempo del usuario, que tiene que buscar entre los múltiples

menús y las varias opciones que existen por menú, lo que conlleva al deterioro de la

experiencia de usuario.

Las interfaces inteligentes resuelven en parte el problema, al tomar en cuenta las

preferencias, los patrones y hábitos de uso del usuario. Sin embargo, toman en

Page 9: Perfil Diego Rodriguez

8

cuenta los hábitos como un todo, y no logran dar el resultado que los usuarios

esperarían, ya que éstos hábitos de uso son diferentes según periodos de tiempo, días

de la semana, semanas del mes, incluso meses del año. Para estas personas, la

interfaz inteligente, no es suficiente para mejorar su experiencia al usar estos

productos.

Formulación del Problema

Los métodos actuales de interfaces inteligentes no detectan patrones de hábitos

periódicos de uso del usuario, lo cual ocasiona la pérdida de tiempo e insatisfacción

en la experiencia de uso de un producto de software.

HIPÓTESIS

La integración de redes neuronales y almacenamiento de datos históricos permitirán

desarrollar una herramienta capaz de detectar patrones de hábitos periódicos de uso del

usuario.

OBJETIVOS

Objetivo General

Diseñar un modelo de interfaz inteligente capaz de detectar patrones de hábitos

periódicos de uso del usuario.

Objetivos Específicos

Establecer los componentes de la red neuronal en base a la arquitectura más

apropiada para el aprendizaje de hábitos de uso del usuario.

Page 10: Perfil Diego Rodriguez

9

Elegir la estructura de datos más apropiada para organizar los datos históricos,

de forma que facilite la detección de hábitos periódicos del usuario.

Determinar el funcionamiento integrado de redes neuronales y datos históricos

de forma que posibilite la detección de patrones de hábitos periódicos de uso

del usuario.

Desarrollar un prototipo que trabaje en segundo plano sobre Windows, que

capture y automatice el uso de aplicaciones del usuario, para definir y validar

el modelo.

Diseñar el modelo de integración de redes neuronales con registros de datos

históricos.

Acciones

Objetivos Específicos Acciones

Establecer los

componentes de la red

neuronal en base a la

arquitectura más

apropiada para el

aprendizaje de hábitos de

uso del usuario.

Analizar los siguientes modelos de redes

neuronales: back-propagation, SOM y redes de

Hopfield, para seleccionar el más conveniente.

Definir la estructura de la red neuronal según el

modelo seleccionado.

Determinar datos relevantes del usuario que

servirán para la alimentación de la red, estos

también serán utilizados en el registro de datos

históricos.

Elegir la estructura de

datos más apropiada para

organizar los datos

Determinar qué datos estadísticos son necesarios

para poder detectar los patrones del usuario.

Page 11: Perfil Diego Rodriguez

10

históricos, de forma que

facilite la detección de

hábitos periódicos del

Definir la estructura de datos en que los datos serán

almacenados.

Definir la estructura de datos que deberá facilitar la

extracción de información estadística.

Determinar el

funcionamiento

integrado de redes

neuronales y datos

históricos de forma que

posibilite la detección de

patrones de hábitos

periódicos de uso del

usuario.

Seleccionar la información relevante de los datos

históricos que servirán de retroalimentación para la

red neuronal.

Definir el proceso de reaprendizaje de la red

neuronal en base a la información estadística de los

datos históricos.

Definir qué resultados obtenidos de la red neuronal

y de los de los datos históricos son relevantes, para

dar el resultado final.

Desarrollar un prototipo

que trabaje en segundo

plano sobre Windows,

que capture y automatice

el uso de aplicaciones del

usuario, para definir y

validar el modelo.

Realizar diagrama de clases que tendrá el prototipo.

Diseñar la arquitectura.

Desarrollar los componentes del sistema.

Realizar pruebas del prototipo para el

descubrimiento de posibles fallas.

Poner a prueba las partes de lo que será el modelo,

utilizando el prototipo.

Page 12: Perfil Diego Rodriguez

11

Objetivos Específicos Acciones

Diseñar el modelo de

integración de redes

neuronales con registros

de datos históricos.

Plantear el modelo en base a los resultados de la

implementación del prototipo.

Plasmar el modelo de integración con el diseño de

la red neuronal y de los datos históricos en un

diagrama representativo.

Detallar la justificación de la forma en que se

definieron cada uno de los componentes del

modelo.

Realizar una descripción del funcionamiento de

cada componente del modelo.

ALCANCE

Alcance del proyecto

Se analizarán los siguientes modelos de redes neuronales que se utilizan en

IUI’s: redes multicapa de tipo back-propagation, mapas auto-organizados (Self

Organizing Maps, más conocidos como SOM) y redes recurrentes de Hopfield,

para identificar el(los) modelo(s) que sería(n) más conveniente(s) para el

proyecto.

Previo a la definición del modelo, se definirá qué datos del usuario son

relevantes, para ser almacenados como datos históricos y que sirvan para la

alimentación de las redes neuronales.

Las pruebas del modelo se realizarán en el prototipo.

Page 13: Perfil Diego Rodriguez

12

En cuanto al prototipo:

a) Será desarrollado en el lenguaje C# sobre la plataforma .NET 4.0.

b) Será capaz de capturar datos del teclado, del mouse e interacción con

archivos.

c) Tendrá opciones de configuración para activar o desactivar la captura de

clics, partes del teclado (por ejemplo, pad. Numérico, teclas especiales o

las teclas correspondientes al alfabeto) y archivos con los que interactúa.

Alcance del producto

Se elegirá una estructura de datos ya definida, la combinación de varias

estructuras o, de ser necesario, una variante a definirse durante el desarrollo

del proyecto.

El modelo propuesto se presentará por medio de un diagrama en el que se

representen tanto los componentes como la forma en que interactúan entre

ellos.

LÍMITES

Límites del Proyecto

Para la selección de modelos de redes neuronales sólo se realizará una

comparación teórica de las propiedades y ventajas de cada uno, no se

implementarán dichos modelos ni pondrán a prueba para realizar la elección.

No se diseñará un modelo matemático, sino un modelo conceptual.

Respecto al prototipo:

a) La captura de datos no será sensible al contexto, es decir no discriminará

entre aplicaciones para realizar la captura.

b) No será intrusivo, no realizará tareas sin confirmación del usuario.

Page 14: Perfil Diego Rodriguez

13

c) No tendrá la opción de programar tareas manualmente.

Límites del Producto

No se hará un estudio previo de los hábitos de un grupo de usuarios para la

elaboración del modelo.

El modelo no contemplará la posibilidad de que haya múltiples usuarios

utilizando una misma cuenta.

JUSTIFICACIÓN

El modelo de integración de redes neuronales con registro de datos históricos permitirá

que cualquier programa o aplicación en el que sea implementado tenga una interfaz

inteligente capaz de detectar patrones de hábitos periódicos de usuario lo cual mejorará la

interacción hombre-máquina y la experiencia de usuario, incluso más que implementando

otro tipo de IUI’s.

CRONOGRAMA

Fecha Inicio Fecha Fin Acciones

11/03/2014 18/03/2014 Analizar los siguientes modelos de redes neuronales: back-

propagation, SOM y redes de Hopfield, para seleccionar el

más conveniente.

19/03/2014 30/03/2014 Definir la estructura de la red neuronal según el modelo

seleccionado.

Page 15: Perfil Diego Rodriguez

14

31/03/2014 02/04/2014 Definir datos relevantes del usuario que servirán para la

alimentación de la red, estos también serán utilizados en el

registro de datos históricos.

25/03/2014 05/04/2014 Definir qué datos estadísticos son necesarios para poder

detectar los patrones del usuario.

29/03/2014 07/04/2014 Definir la estructura de datos en que los datos serán

almacenados.

7/04/2014 20/04/2014 Definir la estructura de datos que deberá facilitar la

extracción de información estadística.

16/04/2014 20/05/2014 Seleccionar la información relevante de los datos

históricos que servirán de retroalimentación para la red

neuronal.

19/05/2014 16/06/2014 Definir el proceso de reaprendizaje de la red neuronal en

base a la información estadística de los datos históricos.

10/07/2014 10/08/2014 Definir qué resultados obtenidos de la red neuronal y de

los de los datos históricos son relevantes, para dar el

resultado final.

11/08/2014 18/10/2014 Realizar diagrama de clases que tendrá el prototipo.

11/08/2014 18/10/2014 Diseñar la arquitectura.

11/08/2014 18/10/2014 Desarrollar los componentes del sistema.

11/08/2014 18/10/2014 Realizar pruebas del prototipo para el descubrimiento de

posibles fallas.

Page 16: Perfil Diego Rodriguez

15

15/10/2014 31/10/2014 Poner a prueba las partes de lo que será el modelo,

utilizando el prototipo.

1/11/2014 14/11/2014 Plantear el modelo en base a los resultados de la

implementación del prototipo.

10/11/2014 20/11/2014 Plasmar el modelo de integración con el diseño de la red

neuronal y de los datos históricos en un diagrama

representativo.

20/11/2014 30/11/2014 Detallar la justificación de la forma en que se definieron

cada uno de los componentes del modelo.

11/11/2014 18/11/2014 Realizar una descripción del funcionamiento de cada

componente del modelo.

Figura 1. Diagrama de cronograma de avance del proyecto.

Elaboración propia.

Page 17: Perfil Diego Rodriguez

16

1. MARCO TEÓRICO

1.1. Experiencia de Usuario

1.2. Interfaces Inteligentes (IUI’s)

1.2.1. Definición del concepto de IUI

Las interfaces inteligentes nacen de un sub-área de las investigaciones del área de la

interacción hombre-máquina (HCI por sus siglas en inglés). Su objetivo es mejorar dicha

interacción usando tecnología nueva e inteligente. Utilizando técnicas de inteligencia

artificial, las IUI’s conviven con diferentes formas de entradas y salidas, tratando de

ayudar al usuario de una forma inteligente. Ellas buscan resolver algunos de los problemas

que las actuales interfaces de manipulación directa no pueden, tales como:

Creación de sistemas personalizados:

No existen dos personas que sean iguales, ellas tienen distintos hábitos,

preferencias, formas de trabajar y entornos. Una interfaz inteligente que toma en

cuenta esas diferencias es capaz de proveer una forma personalizada de

interacción. La interfaz conoce al usuario y utiliza ese conocimiento en su forma

de comunicarse con él.

Exceso de información o filtrado de problemas:

Buscar la información correcta en la computadora o en internet puede llegar a ser

como buscar una aguja en un pajal. Las interfaces inteligentes tienen la capacidad

de reducir esa sobrecarga de información que puede ocasionarse cuando se busca

en grandes bases de datos o sistemas complejos. Filtrando la información que es

irrelevante, la interfaz puede reducir esa carga cognitiva al usuario. Además, la

IUI puede proponer nueva y útil información de fuentes que el usuario no conoce.

Proporcionar ayuda en el uso de programas nuevos y complejos:

Los sistemas computacionales pueden ser muy complicados de usar cuando es la

primera vez que se los utiliza. A medida que uno lucha para llegar a conocer y

Page 18: Perfil Diego Rodriguez

17

entender un nuevo programa, pueden aparecer nuevas versiones de software o

actualizaciones que incluyen nueva funcionalidad. Muchos usuarios no logran

mantenerse al día con ello. Los sistemas inteligentes de ayuda pueden detectar y

corregir los conceptos erróneos, explicar nuevos y proveer información para

simplificar las tareas.

Hacerse cargo de las tareas del usuario:

Una IUI puede también ver que es lo que uno está haciendo, comprender y

reconocer su intención, y hacerse cargo de esas tareas completamente, es decir,

automatizándolas, permitiendo al usuario enfocarse en otras cosas.

Otras formas de interacción:

Actualmente, el tipo más común de interacción con dispositivos son el teclado y

el mouse. Las investigaciones sobre IUI’s buscan otras formas de interacción

hombre-máquina (por ejemplo, el habla o los gestos). Si se provee múltiples

formas de interacción, las personas con alguna discapacidad tendrán la capacidad

de usar los sistemas mucho más fácilmente.

Resumiendo, en vez de que el usuario se adapte a una interfaz, una IUI puede adaptarse al

usuario y su entorno. La IUI trata de determinar las necesidades de un usuario en particular

y maximizar la eficiencia en la comunicación (Cf. EHLERT, 2003: 1-2).

Como se vio anteriormente, las IUI’s son un subárea de la interacción hombre-máquina

(HCI). En la literatura el término “interfaz de usuario inteligente” es utilizado para denotar

un tipo particular de interfaz al igual que el campo de investigación. Otros sinónimos que

se utilizan a menudo son interfaces adaptativas (o autoadaptables), interfaces

multimodales, o tecnologías de interfaz inteligente. Los primeros dos en realidad son

subtipos de las interfaces inteligentes, mientras que el último es usado como sinónimo de

Page 19: Perfil Diego Rodriguez

18

IUI’s como área de investigación. El principal problema en definir los términos “interfaz

de usuario inteligente” yace en la palabra “inteligente”. Por décadas, los investigadores

han tratado de definir qué es la inteligencia. Allá en 1950, Alan Turing tuvo la propuesta

de definir la inteligencia con lo que ahora conocemos como el Test de Turing, pero el

debate aún no termina. A través de los años se han ideado numerosas definiciones de lo

que es la inteligencia. Muchas definiciones mencionan la habilidad de adaptarse

(aprendizaje y enfrentamiento de nuevas situaciones), la habilidad de comunicarse, y la

habilidad de resolver problemas.

Una interfaz de usuario “normal” se define como un método de comunicación entre el

usuario y la máquina. Si se extiende esta definición, se puede decir que una interfaz de

usuario inteligente utiliza algún mecanismo de inteligencia para conseguir esta

comunicación entre hombre-máquina. En otras palabras, las IUI’s son interfaces con la

habilidad de adaptarse al usuario, ser comunicativas, y resolver problemas para él.

La adaptación y la resolución de problemas son temas importantes abordados por la

investigación sobre inteligencia artificial (AI) y por lo tanto muchas IUI’s se basan en

gran medida en las técnicas desarrolladas en las investigaciones sobre AI. Sin embargo,

no todas las interfaces inteligentes tienen la capacidad de aprendizaje y resolución de

problemas. Muchas de estas interfaces a las cuales llamamos inteligentes se enfocan más

en las vías de comunicación entre el usuario y la máquina. Estas habitualmente aplican

técnicas de interacción como reconocimiento de voz, seguimiento de la mirada y

reconocimiento facial.

Existen otras áreas de investigación que han influenciado sobre las IUI’. Algunos

ejemplos son: psicología, ergonomía, factores humanos, ciencias de la cognitividad y

ciencias sociales. En la siguiente figura se muestran las áreas y la relación que estas tienen

con las IUI’s (Cf. EHLERT, 2003: 3).

Page 20: Perfil Diego Rodriguez

19

Figura 2. Interfaces inteligentes y su relación con otras áreas

Fuente: EHLERT 2003

1.2.2. Propiedades de las IUI’s

La propiedad más importante de las IUI’s es que son diseñadas para mejorar la

comunicación entre el usuario y la máquina. No importa mucho qué tipo de técnicas sean

utilizadas para conseguir esta mejora, siempre y cuando se las pueda considerar como

“inteligentes”. A continuación se presenta una lista de varios tipos de técnicas que son

utilizadas habitualmente en las interfaces de usuario inteligentes:

La tecnología de entrada inteligente: que utiliza técnicas innovadoras de obtener

las entradas del usuario. Estas técnicas incluyen el lenguaje natural, seguimiento

de la mirada, reconocimiento de expresiones faciales, y el seguimiento de otro tipo

de gestos.

Page 21: Perfil Diego Rodriguez

20

El modelamiento de usuario: que cubre las técnicas que permiten a un sistema

mantener o inferir conocimiento acerca del usuario basándose en las entradas

recibidas.

La adaptación al usuario: que incluye todas las técnicas que permiten que la

comunicación entre el usuario y la máquina se adapte a diferentes usuarios y

diferentes situaciones como por ejemplo, aprendizaje de la máquina o

reconocimiento del contexto.

La generación de explicaciones: que abarca todas las técnicas que permiten a un

sistema explicar sus resultados al usuario como por ejemplo, salida de voz,

agentes de interfaz inteligente, retroalimentación táctil en un entorno de realidad

virtual.

Aparte de mejorar la comunicación, otras propiedades importantes de las IUI’s son la

personalización y la flexibilidad de uso. Para conseguir la personalización, las IUI’s a

menudo utilizan una representación del usuario. Estos modelos de usuario guardan

información acerca del comportamiento, conocimiento y habilidades del usuario. Nuevo

conocimiento acerca del usuario puede ser inferido basado en la entrada y el historial de

la interacción del usuario con el sistema.

Con el fin de ser flexibles, las IUI’s utilizan la adaptación o el aprendizaje. La adaptación

puede ocurrir basándose en el conocimiento almacenado en un modelo del usuario, o de

inferirla utilizando las entradas actuales. El aprendizaje ocurre cuando el conocimiento

almacenado cambia para reflejar la nueva información. Debido a las dificultades que

implican crear IUI’s y la cantidad de ingeniería del conocimiento que es necesaria, muchas

IUI’s se enfocan en un solo y específico método de interacción (por ejemplo, el habla) o

en un particular y bien definido dominio de la aplicación (Cf. EHLERT, 2003: 4).

Page 22: Perfil Diego Rodriguez

21

Un error comúnmente cometido es confundir una interfaz inteligente con un sistema

inteligente. Un sistema que exhiba alguna forma de inteligencia no es necesariamente una

interfaz inteligente. Existen muchos sistemas inteligentes con muy simples, y nada

inteligentes, interfaces y el hecho de que un sistema tenga una interfaz inteligente no

implica que el sistema por debajo es inteligente.

Figura 3. Sistema inteligente vs Interfaz inteligente

Fuente: EHLERT 2003

Desafortunadamente, el margen entre un sistema y su interfaz no siempre es claro. A

menudo la tecnología utilizada en una IUI también es parte del sistema que corre por

debajo, o puede inclusive que ésta sea el sistema entero. Por ejemplo, un sistema de

reconocimiento de voz puede ser parte de la interfaz inteligente de un sistema, así como

también puede ser el sistema como tal dependiendo de cómo se lo vea. Si una IUI puede

ser considerada un sistema completo, entonces por definición es un sistema inteligente

(Cf. EHLERT, 2003: 5).

Page 23: Perfil Diego Rodriguez

22

Existen varias guías de diseño para interfaces de usuario, pero muy pocas se centran en

las interfaces inteligentes. Varios investigadores han empezado a definir algunas guías de

diseño de lo que deben tener específicamente las IUI’s, o de lo que se espera de ellas. A

continuación se presenta una lista de algunas sugerencias encontradas en la siguiente

bibliografía (BENYON 1993: 65-87), (LIEBERMAN 1997), (BIRNBAUM 1997):

Una interfaz de usuario adaptable debe ser desarrollada en paralelo con la

aplicación. Esto es necesario debido a que el diseñador continuamente necesita

centrarse en las partes del sistema que necesitan ser adaptables.

No interferir en la interacción del usuario. Siempre debería ser posible para el

usuario ignorar las acciones proactivas de la IUI. Sugerir por sobre actuar.

Operar en tiempo real. Muchos de los beneficios de una IUI nacen de actuar

mientras el usuario está ocupado trabajando con el sistema.

Tomar ventaja del tiempo que el usuario piensa. Cuando el usuario está pensando

sobre qué entrada será la siguiente que ingresará, la IUI puede tomar ventaja de

ese tiempo de procesamiento disponible, así no pone en riesgo en ralentizar la

interacción del usuario con el sistema.

Monitorear que está haciendo el usuario. Tomar ventaja de la información

implícita en las acciones del usuario.

Permitir al usuario elegir su forma personal de interacción. Los diferentes usuarios

tienen distintas preferencias de interfaz y algunas técnicas pueden ser distractoras

y confusas para algunos de ellos.

Page 24: Perfil Diego Rodriguez

23

1.2.3. Modelamiento de Usuario en las IUI’s

Un componente importante dentro de lo que son las IUI’s es el modelo del usuario, dado

que este permite que los elementos de la interfaz sientan, perciban, procesen y respondan

a la información del usuario pertinentemente. Es también un paso crítico en el diseño de

los elementos de una interfaz, porque ayuda a conocer las necesidades del usuario, al

mismo tiempo, tomando en cuenta un bajo costo de rendimiento.

En términos generales se definen dos tipos de modelamiento del usuario: el modelamiento

estático y el dinámico (Cf. BEALE y FINALY, 1992:65-84). El modelamiento estático es

usualmente utilizado para comprender a los usuarios más representativos de una

aplicación, de modo que las necesidades y características más comunes y significantes del

usuario pueden ser incorporadas en el diseño de la interfaz, [habitualmente utilizado en el

diseño de interfaces de manipulación directa]. El modelamiento dinámico es una actividad

constante durante la vida de una aplicación. Considerando los cambios en las diferencias

y habilidades individuales del usuario mientras se utiliza una aplicación, el modelamiento

estático y el diseño de interfaz fijo difícilmente pueden tomar en cuenta varios

comportamientos dinámicos de diferentes usuarios durante el uso de una aplicación de

computadora en sus específicos entornos de tareas. Cuando una aplicación está en la etapa

de diseño, el diseño de interfaz se centra en una gran población de usuarios. Después de

que la aplicación es distribuida a usuarios individuales, se convierte en la herramienta de

cada uno de ellos en particular. La aplicación debe ser individualizada para poder cubrir

requerimientos específicos y dinámicos de cada usuario. Por lo tanto, es necesario

desarrollar un perfil dinámico de usuario, y este debe ser utilizado para adaptar la interfaz

a los requerimientos obtenidos del usuario. En general, el modelamiento estático y el

dinámico se complementan mutuamente para poder hacer un diseño de interfaz

compatible con las necesidades y características del usuario durante todo el ciclo de vida

de una aplicación. (Cf. NONG, 1997:2-3)

Page 25: Perfil Diego Rodriguez

24

Según (BEALE y FINALY, 1992: 3), se considera que el modelamiento de usuario es el

reconocimiento de patrones en el comportamiento del usuario. El modelamiento estático

de usuario difiere del dinámico en que el estático reconoce los patrones de

comportamiento común de una población de usuarios, mientras que el dinámico reconoce

los patrones de comportamiento repetitivos en un usuario particular a través del tiempo.

El diseño de muchos elementos de la interfaz comprende ambos, el modelamiento estático

y el dinámico.

Con respecto al contenido, la estructura, y el estilo de la interfaz, el modelamiento estático

de usuario debería iniciar con definir metas, métodos, operadores, y selección de reglas

(CARD, MORAN y NEWELL, 1983) de tareas típicas realizadas por usuarios

representativos. Desde el análisis de tareas, funciones básicas de una aplicación,

elementos de la interfaz (por ejemplo, iconos, comandos, menús, campos), y la estructura

de la interfaz (por ejemplo, organización de campos, jerarquía de menús) pueden ser

deducidos. Mientras que si un usuario en particular utiliza una aplicación en su entorno

de tareas específico, él puede utilizar, de forma repetitiva, ciertas combinaciones y/o

secuencias especiales de ejecución de iconos, comandos, selección de menús y utilización

de ciertos campos. Por eso, el modelamiento dinámico de combinaciones y secuencias de

acciones del usuario es necesaria, y la capacidad de adaptación del diseño de la interfaz

es imprescindible para satisfacer las necesidades especiales del usuario y sus necesidades

especiales de ejecutar acciones repetidamente y así poder mejorar la experiencia del

usuario. (Cf. NONG, 1997:3)

Algunas actividades implicadas comúnmente al momento de hacer un modelamiento del

usuario son:

Reconocimiento de patrones para identificar patrones comunes entre usuarios o

secuencias de acciones repetitivas del usuario.

Page 26: Perfil Diego Rodriguez

25

Clasificación de patrones para categorizar los patrones del usuario por sus

habilidades y tareas.

Asociación de patrones de usuario para revelar relaciones entre patrones de

usuario.

Algunas actividades comúnmente implicadas en el diseño e implementación de interfaces

inteligentes incluye:

Almacenamiento y recuperación de patrones para permitir la memorización y el

recuerdo preciso de patrones de usuario.

Predicción de patrones para automatizar secuencias de acciones del usuario

utilizando patrones. (Cf. NONG, 1997:5)

1.2.4. IUI’s basadas en redes neuronales artificiales

La inteligencia artificial es requerida para apoyar las actividades en el modelamiento del

usuario y en las interfaces inteligentes. Los sistemas expertos y las redes neuronales

artificiales son dos populares paradigmas en lo que es la inteligencia artificial. Los

sistemas expertos requieren adquisición de conocimiento explicita y una representación

del conocimiento, y sus capacidades inteligentes son limitadas a qué ha sido programado

en los sistemas. Las redes neuronales son capaces de aprender de ejemplos, y representar

el conocimiento de forma implícita en sus conexiones entre neuronas para el procesado

eficiente. Como la interacción del usuario con la computadora en muy raras ocasiones es

completamente predecible, los datos recolectados del seguimiento de la interacción del

usuario difícilmente pueden ser manipulados exitosamente por los sistemas explícitos de

conocimiento como los sistemas expertos. (Cf. NONG, 1997:5)

Page 27: Perfil Diego Rodriguez

26

La capacidad de las redes neuronales de aprender de ejemplos es muy útil a la hora de

reconocer y generalizar patrones del comportamiento del usuario. También son capaces

de ajustar el conocimiento previamente aprendido en un entorno cambiante. Las

capacidades de las redes neuronales en la representación implícita de conocimiento y

procesamiento paralelo también proveen el soporte necesario en cuanto a la eficiencia de

procesamiento, requerida por el modelamiento dinámico del usuario. La robustez de las

redes neuronales frente a las variaciones erráticas de comportamiento, conocidas como

ruido, también es valorado para el modelamiento del usuario. Por lo tanto, las redes

neuronales proveen una muy buena alternativa para soportar esa inteligencia requerida en

el modelamiento del usuario en las interfaces inteligentes. (Cf. NONG, 1997:5)

Page 28: Perfil Diego Rodriguez

27

1.2.5. IUI’s basadas en registros de datos históricos

1.3. Redes Neuronales Artificiales

1.3.1. Redes back-propagation

1.3.2. Redes SOM

1.3.3. Redes de Hopfield

1.4. Datos Estadísticos

1.5. Estructuras de Datos

1.5.1. Árboles binarios

1.5.2. Montículos binarios

1.5.3. Árboles de segmentos

1.6. Metodología de Desarrollo de Software

1.6.1. Selección de metodología

1.6.2. Metodología Orientada a Prototipos

1.7. Tecnologías de Desarrollo

1.8. Arquitectura de Software

2. MARCO PRÁCTICO

2.1. Definición de los componentes de la red neuronal

2.2. Diseño de la estructura de datos para organizar los datos históricos

2.3. Diseño de la forma de integración de redes neuronales y datos históricos

2.4. Desarrollo del prototipo sobre Windows

2.5. Desarrollo del modelo de IUI basado en la integración de redes neuronales

con registros de datos históricos

Page 29: Perfil Diego Rodriguez

28

BIBLIOGRAFÍA

ICEB (Diciembre 2004), “Adaptive User Interfaces for Intelligent E-

Learning: Issues and Trends” en

<http://watnow.uwaterloo.ca/pub/rahim/AUI-ICEB-2004(Dec2004)EN060-

paper.pdf> en Febrero 2014.

NIELSEN, Jakob y NORMAN, Don (Octubre 2000) “The Definition of User

Experience” en <http://www.nngroup.com/articles/definition-user-

experience/> en Abril 2014

GARRET, Jesse James (30 Marzo 2000), “Los Elementos de la Experiencia

de Usuario” <http://www.jjg.net/elements/translations/elements_es.pdf> en

Febrero 2014.

EHLERT, Patrick (Febrero 2003), “Intelligent user interfaces, introduction

and survey” < http://www.kbs.twi.tudelft.nl/docs/report/DKS03-01.pdf> en

Abril 2014.

BENYON, D. (1993) Cap. “Adaptive systems: a solution to usability

problems” en “User Modelling and User-Adapted Interaction”, Vol. 3, No.1

BIRNBAUM, L., LIEBERMAN, H. (1997) “Compelling intelligent user

interfaces; how much AI?” < http://www.merl.com/publications/docs/TR96-

28.pdf> en Abril 2014

BEALE, R. Y FINALY, J. (1992). Cap. “Pattern recognition and

classification in dynamic and static user modeling” en “Neural networks and

pattern recognition in human-computer interaction”. New York: Ellis

Horwood.

NONG, Ye. (1997) “Introduction: Neural Networks in User Modeling and

Intelligent Interface”

<http://enpub.fulton.asu.edu/ye/Published_Journal_Papers/Ye_17.pdf> en

Abril 2014

Page 30: Perfil Diego Rodriguez

29

CARD, S., MORAN, T. y NEWELL, A. (1983). “The psychology of human-

computer interaction.” Hillsdale, NJ: Lawrence Erlbaum Associates, Inc.