perfil diego rodriguez
DESCRIPTION
bokTRANSCRIPT
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
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
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
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
4
ÍNDICE DE FIGURAS
1. Figura 1………………………………………………………………………..12
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.
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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).
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.
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).
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).
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.
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)
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.
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)
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)
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
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
29
CARD, S., MORAN, T. y NEWELL, A. (1983). “The psychology of human-
computer interaction.” Hillsdale, NJ: Lawrence Erlbaum Associates, Inc.