viernes, 29 de mayo de 2009

Agentes para recuperación de información

La información reviste su carácter de “bien” sostenido en actividades de “servicio” porque es el medio a partir del cual las organizaciones adquieren un conocimiento como un “valor” que fácilmente se cataloga como valor económico en la medida en que se capitaliza, renta, ofrece, demanda, gasta y produce. De igual manera la información puntualiza el crecimiento de las organizaciones a un nivel de empoderamiento económico en la medida en que rescata el patrimonio histórico de las mismas, fortalece el posicionamiento de éstas en un mercado y por último asegura la viabilidad de su proyección a las oportunidades de negocio: la información es un bien económico, y se comporta como tal. “Cuesta dinero, vale dinero, y su gestión produce dinero”.

La recuperación de la información es una operación en la que se interpreta una necesidad de información de un usuario y se seleccionan los documentos más relevantes capaces de solucionarla. En el contexto de Internet, se puede definir el objetivo de la recuperación como la identificación de una o más referencias de aplicaciones Web que resulten relevantes para satisfacer una necesidad de información del usuario. La recuperación de información en la Web se realiza mediante los denominados motores de búsqueda. a los cuales se les ha denominado con otros términos sinónimos, tales como: buscadores, rastreadores, webcrawlers, agentes, índices y directorios. Los mayores motores de búsqueda apenas cubren un 25% de la Web, mientras que los principales índices es dudoso que lleguen a un 5%. La desventaja de este ingente volumen de información es que, por razones de celeridad en la respuesta, obliga a limitar las prestaciones de búsqueda de forma que suelen faltar ciertas capacidades avanzadas. Otros problemas importantes derivan de la diferente cobertura de la red, el elevado porcentaje de enlaces no activos y la desactualización de los recursos debido a la frecuencia de revisión muy baja o inadecuada.

Un índice temático es una página Web o un sitio Web, en donde, las distintas materias se encuentran organizadas en torno a un conjunto de epígrafes. En general, la diferencia radica en el hecho de que los índices temáticos contienen direcciones que son recopiladas, organizadas y clasificadas manualmente y la búsqueda se lleva a cabo exclusivamente sobre los recursos indexados del directorio. Los agentes inteligentes pueden realizar una serie de tareas sin que los humanos u otros agentes les tengan que decir qué hacer a cada paso que dan en su camino. Se diferencian de los motores de búsqueda en que éstos albergan contenidos estáticos, aunque se actualizan con cierta frecuencia, y responden directamente a las peticiones de los usuarios. Si un motor de búsqueda pudiera almacenar peticiones de los usuarios y notificarles la llegada de información útil, entonces el motor de búsqueda sería un agente.

Los directorios o índices presentan una selección de recursos Web organizados de acuerdo a una estructura o clasificación jerárquica de materias que van desde categorías más amplias a categorías más específicas. Los directorios se exploran mediante la navegación de una base de datos de documentos Web compilados, recogidos y organizados manualmente por expertos, colaborados por robots de localización automática de recursos en la red. La búsqueda jerárquica sirve al usuario de guía, permitiendo acceder a la información en el contexto temático al que pertenece y en relación con otras áreas temáticas. Los directorios también presentan un motor de búsqueda interno para localizar directamente recursos de la base de datos, mediante diferentes ecuaciones de búsqueda y palabras clave, obviando de esta manera el uso del directorio temático. Los sistemas de búsqueda por palabras pueden actuar de dos maneras: (1) Sobre la clasificación, en una sección de ella, cuando por ejemplo, se sabe en qué parte del directorio es posible localizar información interesante. (2) Sobre las páginas, pero en este caso se limitan a la información recopilada por el índice, fundamentalmente sobre sitios Web. De esta manera, la búsqueda de información en los directorios puede hacerse bien de forma guiada, mediante clasificaciones jerárquicas, o bien a partir de términos específicos.

Los motores de búsqueda o buscadores tienen sus antecedentes en los simples listados de direcciones de recursos y documentos de la red, y son la respuesta al rápido volumen de crecimiento de la red, que supera la capacidad de los recursos humanos de los directorios. Los buscadores son bases de datos creadas por indización automática del texto completo de las páginas Web, y realizada por un programa llamado robot. Este robot lógico o araña, explora de forma automática los servidores, extrayendo las palabras más significativas de cada página y creando un índice de búsqueda. Aún cuando los programas lleguen a ser similares, no existen dos programas de búsqueda exactamente similares en términos de tamaño, velocidad y contenido; no existen dos motores de búsqueda que utilicen coincidentemente el mismo listado de relevancia y tampoco cada motor de búsqueda ofrece las mismas opciones de búsqueda. Existe una gran porción de la red que las “arañas” de los buscadores no pueden o no alcanzan a indexar. Se las nombra como la “red Invisible” o la “red profunda” e incluye, entre otras cosas, sitios protegidos por contraseñas, documentos detrás de “cortinas de fuego”, material archivado, herramientas interactivas, y los contenidos de ciertas bases de datos.

Un agente es una entidad autónoma capaz de almacenar conocimiento sobre sí misma y sobre su entorno, con objetivos y capacidades determinadas. Asimismo, un agente inteligente es un programa que basándose en su propio conocimiento, realiza un conjunto de operaciones que satisfacen las necesidades de un usuario o de otro programa, bien por iniciativa propia o porque alguno de estos se lo requiere. La diversidad de las definiciones sobre lo que representa un agente, se da en la medida en que cada uno de ellos es diseñado de acuerdo a las necesidades específicas del usuario, pero si bien cada uno se establece desde perspectivas diferentes, existe un punto donde todos parecerían ser iguales, este punto se encuentra constituido por las características más representativas de los agentes: (1) Comunicativo. Un agente debe entender las necesidades, objetivos y preferencias del usuario. (2) Autónomo. Un agente debe interactuar con el entorno, tomando decisiones y actuando por cuenta propia. (3) Adaptable. Un agente debe ser capaz de aprender del entorno. (4) Continuo. Un agente debe ejecutarse sin necesidad de ser controlado. (5) Social. Un agente debe comunicarse con otros agentes. (6) Móvil. Un agente debe tener la capacidad de trasladarse a través de la red.

Los agentes proporcionan la siguiente tipologías de herramientas de segunda generación: (1) Clientes z39.50. Permiten la consulta simultánea de un elevado número de servidores, mediante un único protocolo, es decir, una interfaz y un lenguaje de consulta. Es especialmente útil para recuperar la información que se encuentra en la llamada “Internet invisible”. (2) Volcadores. Permiten volcar automáticamente una copia idéntica de sedes, directorios y documentos, manteniendo su estructura y sus elementos. Se puede programar la hora del volcado, reduciendo considerablemente el tiempo y el costo, además de que se puede activar el vuelco de diferentes tipos especiales de documentos (3) Metabuscadores. Permiten realizar la recuperación de la información en varios motores de búsqueda de manera simultanea. A diferencia de los metabuscadores de primera generación, la mayoría de las tareas pueden automatizarse y son muy flexibles en su configuración: traducen expresiones en lenguaje natural, envían los perfiles a varios motores de búsqueda y procesan los resultados, eliminando los duplicados, y ordenando los contenidos de acuerdo a criterios y formatos definibles. (4) Trazadores. Permiten la búsqueda en las páginas enlazadas desde una página Web determinada o desde una lista de resultados de un buscador. Desde esta primera sede, llamada “semilla”, y aprovechando la naturaleza hipertextual de Internet, van comprobándose las páginas que se encuentran enlazadas según una serie de criterios de pertinencia, y así sucesivamente hasta un nivel prefijado. Aunque generan mucho ruido y constituyen una técnica lenta, permiten recuperar información que es imposible de localizar para los buscadores. (5) Indizadores Permiten indizar y resumir automáticamente diferentes páginas Web, y exportar los resultados en diferentes formatos reutilizables por editores Web. (6) Mapeadores. Describen íntegramente una sede, detallando cada archivo y directorio, proporcionando además un mapa de contenidos. Permiten obtener datos numéricos que ayudan a evaluar dichos contenidos y establecen una comparativa entre diferentes sedes web, con base en valores como el tamaño, la densidad hipermedia de la sede, su estructura de niveles, la tipología de enlaces, etc.

Guillermo Choque Aspiazu
www.eldiario.net
Marzo 9 de 2009

Sistemas expertos difusos

La inteligencia artificial comenzó como resultado de la investigación en psicología cognitiva y lógica matemática. Se ha enfocado sobre la explicación del trabajo mental y la construcción de algoritmos de solución a problemas de propósito general. Punto de vista que favorece la abstracción y la generalidad. La inteligencia artificial es una combinación de la ciencia de las computadoras, la biología, la fisiología y la filosofía, tan general y amplio como eso, es que reúne varios campos, todos los cuales tienen en común la creación de máquinas que puedan “pensar”. La idea de construir una máquina que pueda ejecutar tareas percibidas como requerimientos de inteligencia humana es un atractivo. Las tareas que han sido estudiadas desde este punto de vista incluyen juegos, traducción de idiomas, comprensión de idiomas, diagnóstico de fallas, robótica, y principalmente el suministro de asesoría experta en diversos temas. Es así como los sistemas de administración de base de datos cada vez más sofisticados, la estructura de datos y el desarrollo de algoritmos de inserción, borrado y localización de datos, así como el intento de crear máquinas capaces de realizar tareas que son pensadas como típicas del ámbito de la inteligencia humana, acuñaron el término inteligencia artificial el año 1956.

Durante años de actividad, la inteligencia artificial estuvo dedicada a las investigaciones teóricas y al desarrollo de experimentos a través de programas que demostraran “actitudes inteligentes”, con estos programas se pretendía que la máquina jugara ajedrez, demostrara teoremas matemáticos, y otros. En los ya pasados años 1970 surgió un nuevo paradigma en la inteligencia artificial, los denominados “sistemas expertos”, cuya función consistía en desarrollar trabajos similares a los que desarrollaría un especialista en un área determinada, la idea no radicaba en sustituir a los expertos, sino que estos sistemas sirvieran de apoyo a los especialistas en un “dominio” de aplicación específico y ampliamente especializado.

Los sistemas expertos constituyen de manera esencial sistemas de computación basados en conocimientos cuyos componentes representan un enfoque cualitativo de la programación. Muchas personas pueden creer que un sistema experto es un sistema compuesto por subsistemas y a su vez estos por otros subsistemas hasta llegar a los programas, y que los sistemas expertos se miden por la cantidad de programas que contienen. Sin embargo la cantidad no es lo que prima en los sistemas expertos, si no la calidad del mismo, esta cualidad está dada por la separación de las reglas que describen el problema, del programa de control que es quien selecciona las reglas adecuadas. Se puede decir que un sistema experto está compuesto por una base de conocimiento, una base de hechos y una máquina de inferencias. Por otra parte estos sistemas no se miden por la cantidad de instrucciones o programas sino por la cantidad de reglas que hay contenida en su base de conocimiento. La principal diferencia entre un sistema experto tradicional con un sistema experto difuso es que el primero se encuentra basado en reglas de producción con lógica clásica y el segundo en reglas de producción con lógica difusa, bajo el supuesto que la mayoría de los ingenieros del conocimiento utiliza un formalismo de representación de conocimiento conocido como reglas de producción.

Para el desarrollo de un sistema experto difuso primero es necesario abordar un área de interés, dentro de esta área se selecciona a los expertos, que son los especialistas capaces de resolver los problemas en dicha área. Por ejemplo el área de interés de la prospección petrolera son precisamente los proyectos de inversión petrolera y un especialista podría ser un ingeniero petrolero. Ahora bien, casi siempre estos especialistas, son expertos en un dominio específico y es sobre este dominio, donde poseen su mayor experiencia. Una vez seleccionado al experto o a los expertos y que estos estén de acuerdo en proporcionar sus conocimientos, comienza a jugar su papel el “ingeniero del conocimiento”, que es el encargado de extraer los conocimientos al experto y diseñar una representación adecuada, ya sea en forma de reglas u otro tipo de representación, conformando así la base de conocimientos del sistema experto.

Por su parte la lógica difusa es una innovación tecnológica que usa métodos como la codificación difusa, reglas difusas y la decodificación difusa para permitir que el comportamiento deseado de un sistema sea descrito usando el lenguaje natural cotidiano. Sus aplicaciones van desde bienes de electrónica de consumo y aplicaciones caseras hasta procesos de ingeniería y automatización industrial. Dichas aplicaciones no se logran con el uso del modelado matemático convencional, sino con lógica difusa y su lenguaje de cómputo coloquial. La lógica difusa es una lógica aproximada al razonamiento de los seres humanos. Una disciplina matemática teórica que reacciona a los constantes cambios de las variables, reta a la lógica tradicional en que no está restringida a los valores de cómputo binarios como el cero y el uno. En cambio, permite las verdades parciales y el manejo de múltiples valores. Esta disciplina se encuentra adelantada en problemas que no pueden ser fácilmente representados por que su modelo matemático no está disponible o se encuentra incompleto. El lenguaje natural usado en el control difuso permite a los ingenieros del software incorporar la naturaleza ambigua y aproximada de la lógica humana a la computadora. El uso del modelado lingüístico, en lugar del matemático, mejora grandemente la transparencia del sistema y el potencial de modificación. Permite ciclos de desarrollo rápidos, programación sencilla y control cuasi exacto.

La lógica se reconoce como la más precisa de todas las ciencias y disciplinas teóricas. Muchas de las ciencias modernas y matemáticas se basan en sus principios de precisión. Despistan las ventajas de su exactitud, la lógica booleana clásica tiene un serio problema: no puede reproducir los patrones del pensamiento humano. Esto es porque los patrones del pensamiento humano son principalmente intuitivos. En ambos, pensamiento y lingüística humanos, las referencias a conceptos definidos vagamente son frecuentes. Un ejemplo de esto es el conjunto de gente alta, un concepto que puede ser fácilmente entendido esconde el problema del establecimiento de qué altura puede ser una persona ser considerada alta. En la lógica tradicional, la idea de “persona alta” debe ser correlacionada con una altura exacta. Sin una frontera límite sería imposible establecer si una premisa es verdadera o falsa. Si, por ejemplo, 1.90m se establece como el límite, entonces sería irracional que una persona con una altura de 1.95m sea considerada como alta y otra persona de 1.85m no lo sea. En este caso la mente humana podría pensar acerca de la fuerza y la debilidad de la relación entre un dato ejemplo y el establecimiento del límite. En lógica difusa, esto se denomina grado de pertenencia.

El hombre ha estado tratando de duplicar el pensamiento humano desde la invención de la computadora. Los sistemas expertos, el más antiguo de los campos de la investigación de la inteligencia artificial, prometen conseguirlo. Aunque en ciertas aplicaciones los sistemas expertos pueden crear patrones similares, están lejos de haber dominado la tarea. Las reglas de producción son la base de la representación del conocimiento en los sistemas expertos convencionales. En estos sistemas regidos por reglas, el comportamiento del sistema esta típicamente definido usando tres clases de términos hablados. Estas palabras describen cantidades técnicas, conjunciones y causalidades. Las reglas de producción convencionales, sin embargo, están limitadas porque no reflejan el significado oculto de las palabras específicas. Esto se refiere al hecho de que en la lingüística humana, la misma palabra puede tener varias connotaciones. Para que las reglas de producción modelen adecuadamente los patrones del pensamiento humano, ellas deben incluir esta característica. Las reglas de producción convencionales tienen otra desventaja: una precondición de validez debe ser claramente definida. Esta definición tajante no existe habitualmente en el pensamiento humano.

Los sistemas de lógica difusa son también regidos por reglas, pero ellas usan diferentes conceptos para representar a los elementos lingüísticos. Las cantidades técnicas son representadas por variables lingüísticas, esto permite a las expresiones ser más o menos verdad en uno o incluso varios conjuntos. Las reglas lingüísticas son formadas usando operadores que representan conjunciones y disyunciones lingüísticas. Finalmente, los cómputos de las mismas reglas, representadas por una causalidad lingüística, son ejecutados. Este paso es llamado inferencia difusa y en los sistemas expertos difusos su proceso se encarga a la máquina de inferencia. Como un mecanismo de complemento, los métodos de codificación difusa y decodificación difusa encadenan el sistema experto completo al proceso.

Guillermo Choque Aspiazu
www.eldiario.net
Marzo 2 de 2009

viernes, 22 de mayo de 2009

Usabilidad Web

Generalmente las personas que se desempeñan como ingenieros de diseño son usuarios que poseen subjetividades inherentes en relación con el producto software que están creando, es decir, saben perfectamente como manejar y como encontrar rápidamente todas las opciones. El problema de esto es que en ocasiones no se tiene en cuenta los niveles de experiencia del usuario medio. Actualmente, a pesar de que mucha gente vive en contacto con el mundo de la informática, en principio no tienen el grado de conocimientos de un profesional de dicho campo. Por eso no se debe presuponer que cualquier usuario sabrá desenvolverse con la misma facilidad que un ingeniero del software la primera vez que utilice una aplicación Web. Para solucionar este problema surgió inicialmente la usabilidad, centrada en conseguir un manejo sencillo e intuitivo de las aplicaciones incorporadas en un producto software. La facilidad de uso es el núcleo de la usabilidad. El éxito de una aplicación descansa sobre dos pilares fundamentales: que sea útil, en el entendido que cumpla las expectativas del público objetivo, y que sea fácil de utilizar, como fundamento sobre el cual se construye la usabilidad.

Se puede decir que el termino usabilidad surgió poco después de la expansión de Internet, a finales de los años 1990. Pero, la idea que se quiere expresar es bastante anterior, cuando la usabilidad se conocía con otros nombres como Diseño Centrado en el Usuario. Una definición aproximada menciona que la usabilidad es la capacidad de un programa informático, o mejor dicho, de su interfaz, para ser utilizado con facilidad. Esto persigue que cualquier usuario, aunque no tenga conocimientos previos, sea capaz de desenvolverse por el programa de forma intuitiva, aprovechando toda su funcionalidad. Una definición más formal menciona que: “La usabilidad se refiere a la capacidad de un software o sistema interactivo de ser comprendido, aprehendido, usado fácilmente y atractivo para un usuario, en condiciones específicas de uso. También es la efectividad, eficiencia y satisfacción con la que un producto permite alcanzar sus objetivos específicos”.

La definición de usabilidad conforme a la norma ISO 9241, parte 11 señala: “la usabilidad es el rango en el cual un producto puede ser usado por unos usuarios específicos para alcanzar ciertas metas especificadas con efectividad, eficiencia y satisfacción en un contexto de uso especificado”. De hecho, la usabilidad no se limita a sistemas computacionales exclusivamente, sino que es un concepto aplicable a cualquier elemento en el cual se va a producir una interacción entre un humano y un dispositivo. En el caso de los sistemas computacionales, la usabilidad abarca desde el proceso de instalación de la aplicación hasta el punto en que el sistema sea utilizado por el usuario, incluyendo también el proceso de mantenimiento. El término usabilidad, aunque de origen latino, en el contexto que se utiliza deriva directamente de la palabra en inglés: usability. Si bien los filólogos hispánicos consultados coinciden en afirmar que el término puede ser creado en la lengua castellana, su acepción no está clara. En castellano significa capacidad de uso, es decir, la característica que distingue a los objetos diseñados para su utilización de los que no. Sin embargo la acepción inglesa es más amplia y se refiere a la facilidad o nivel de uso, es decir, al grado en el que el diseño de un objeto facilita o dificulta su manejo. La usabilidad define el objetivo del sistema creado. Sin ella, cualquier mensaje o contenido no tiene sentido, lo que es tan obvio que no debería ser objeto de discusión siquiera. Si bien el concepto mismo de usabilidad es de reciente aplicación, desde hace mucho tiempo se maneja por criterios como facilidad de uso, amigable con el usuario, etc.

La usabilidad universal es la característica de un sistema que pretende ser utilizado por: (1) tipos específicos de usuarios, (2) tareas para las cuales el sistema se ha hecho, y (3) el contexto en el que se produce la interacción. El “grado de usabilidad” de un sistema es, por su parte, una medida empírica y relativa de la usabilidad del mismo. Empírica porque no se basa en opiniones o sensaciones sino en pruebas de usabilidad, realizadas en laboratorio u observadas mediante trabajo de campo. Relativa porque el resultado no es ni bueno ni malo, sino que depende de las metas planteadas o de una comparación con otros sistemas similares. El concepto de usabilidad se refiere a un producto software o a un aparato de hardware, aunque también puede aplicarse a cualquier sistema hecho con algún objetivo particular. El modelo conceptual de la usabilidad, proveniente del diseño centrado en el usuario, no está completo sin la idea de utilidad. En inglés, utilidad + usabilidad es lo que se conoce como usefulness. Jakob Nielsen, considerado el guru de la usabilidad, definió la misma como el atributo de calidad que mide lo fáciles que son de usar las interfaces Web.

Los principios básicos en los que se basa la usabilidad son los siguientes: (1) Facilidad de aprendizaje. Se refiere a la facilidad con la que nuevos usuarios desarrollan una interacción efectiva con el sistema o producto. Está relacionada con la predicibilidad, sintetización, familiaridad, la generalización de los conocimientos previos y la consistencia. (2) Flexibilidad. Hace mención a la variedad de posibilidades con las que el usuario y el sistema pueden intercambiar información. También abarca la posibilidad de diálogo, la multiplicidad de vías para realizar la tarea, similitud con tareas anteriores y la optimización de comunicación entre el usuario y el sistema. (3) Robustez. Es el nivel de apoyo al usuario que facilita el cumplimiento de sus objetivos. Está relacionada con la capacidad de observación, de recuperación de información y de ajuste de la tarea al usuario.

Para conseguir aplicaciones Web usables, las mismas deben seguir los siguientes principios: (1) Anticipación, la aplicación Web debe anticiparse a las necesidades del usuario. (2) Autonomía, los usuarios deben tener el control sobre la aplicación Web. Los usuarios sienten que controlan una aplicación Web si conocen su situación en un entorno abarcable y no infinito. (3) Los colores han de utilizarse con precaución para no dificultar el acceso a los usuarios con problemas de distinción de colores. (4). Consistencia, las aplicaciones deben ser consistentes con las expectativas de los usuarios, es decir, con su aprendizaje previo. (5) Eficiencia del usuario, las aplicaciones Web se deben centrar en la productividad del usuario. (6) Reversibilidad, una aplicación Web debe permitir deshacer las acciones realizadas. (7) Ley de Fitts, indica que el tiempo para alcanzar un objetivo con el ratón está en función de la distancia y el tamaño del objetivo. A menor distancia y mayor tamaño más facilidad para usar un mecanismo de interacción. (8) Reducción del tiempo de latencia. Hace posible optimizar el tiempo de espera del usuario, permitiendo la realización de otras tareas mientras se completa la previa e informando al usuario del tiempo pendiente para la finalización de la tarea. (9) Aprendizaje, las aplicaciones Web deben requerir un mínimo proceso de aprendizaje y deben ser utilizadas desde el primer momento de manera intuitiva. (10) El uso adecuado de metáforas facilita el aprendizaje de una aplicación Web, pero un uso inadecuado de esta puede dificultar enormemente el aprendizaje. (11) La protección del trabajo de los usuarios es prioritario, se debe asegurar que los usuarios nunca pierden su trabajo como consecuencia de un error. (12) Legibilidad, el color de los textos debe contrastar con el del fondo, y el tamaño de fuente debe ser suficientemente grande. (13) Seguimiento de las acciones del usuario, conociendo y almacenando información sobre el comportamiento previo del usuario se debe permitir la ejecución de operaciones frecuentes de manera más rápida. (14) Interfaz visible. Se debe evitar elementos invisibles de navegación que han de ser inferidos por los usuarios, menús desplegables, indicaciones ocultas, etc.

Algunas conclusiones y casos recogidos en estudios e investigaciones por Sun Microsystems, mencionan lo siguiente: (1) La usabilidad demuestra reducciones en el ciclo de desarrollo de los productos de 33 a 50%. (2) El 63% de los proyectos de desarrollo del software sobrepasan su presupuesto, siendo una de las causas más importantes la relacionada con la usabilidad. (3) El porcentaje de código que se dedica al desarrollo de la interfaz con los usuarios ha ido aumentando a lo largo de los años hasta un promedio del 47 al 60% del conjunto de la aplicación. (4) El 80% de las tareas de mantenimiento se deben a requerimientos de usuarios no previstos, quedando el resto debido a fallos y errores. Por otro lado, la introducción de criterios tendentes a hacer amigable y fácil de usar un producto, no puede negarse desde tiempos inmemoriales, desde la cinta para sujetar una prenda de vestir hasta las asas en viejas ánforas prehistóricas, tuvieron como idea original facilitar el uso de un objeto, por ende éste se hacía más atractivo y por consiguiente cobraba otro valor en el mercado.

Guillermo Choque Aspiazu
www.eldiario.net
Febrero 23 de 2009

viernes, 15 de mayo de 2009

Seguridad informática

Generalmente, los sistemas de información incluyen todos los datos de una compañía y también en el material y los recursos de software que permiten a una compañía almacenar y hacer circular estos datos. Los sistemas de información son fundamentales para las compañías y deben ser protegidos. Normalmente, la seguridad informática consiste en garantizar que el material y los recursos de software de una organización se usen únicamente para los propósitos para los que fueron creados y dentro del marco previsto.

La seguridad informática se resume, por lo general, en cinco objetivos principales: (1) Integridad. Garantizar que los datos sean los que se supone que son. La verificación de la integridad de los datos consiste en determinar si se han alterado los datos durante la transmisión accidental o intencionalmente. (2) Confidencialidad. Asegurar que sólo los individuos autorizados tengan acceso a los recursos que se intercambian. La confidencialidad consiste en hacer que la información sea ininteligible para aquellos individuos que no estén involucrados en la operación. (3) Disponibilidad. Garantizar el correcto funcionamiento de los sistemas de información. El objetivo de la disponibilidad es garantizar el acceso a un servicio o a los recursos. (4) Evitar el rechazo. Garantizar que no se pueda negar una operación realizada. Evitar el repudio de información constituye la garantía de que ninguna de las partes involucradas pueda negar en el futuro una operación realizada. (5) Autenticación. Asegurar que sólo las personas autorizadas tengan acceso a los recursos. La autenticación consiste en la confirmación de la identidad de un usuario; es decir, la garantía para cada una de las partes de que su interlocutor es realmente quien dice ser. Un control de acceso permite garantizar el acceso a recursos únicamente a las personas autorizadas.

La seguridad informática consiste en asegurar que los recursos del sistema de información, conocidos como material informático o productos software, de una organización sean utilizados de la manera planificada y que el acceso a la información allí contenida así como su modificación sólo sea posible a las personas que se encuentren acreditadas y dentro de los límites de su autorización. Se puede entender como seguridad un estado de cualquier tipo de información que indica que ese sistema está libre de peligro, daño o riesgo. Se entiende como peligro o daño todo aquello que pueda afectar su funcionamiento directo o los resultados que se obtienen del mismo. Para la mayoría de los expertos el concepto de seguridad informática es utópico porque no existe un sistema cien por ciento seguro.

Los activos son los elementos que la seguridad informática tiene como objetivo proteger. Son tres elementos que conforman los activos: (1) Información. Es el objeto de mayor valor para una organización, el objetivo es el resguardo de la información, independientemente del lugar en donde se encuentre registrada, en algún medio electrónico o físico. (2) Equipos que la soportan. Software, hardware y organización. (3) Usuarios. Son los individuos que utilizan la estructura tecnológica y de comunicaciones que manejan la información. El activo más importante que se posee es la información y, por lo tanto, deben existir técnicas que la aseguren, más allá de la seguridad física que se establezca sobre los equipos en los cuales se almacena. Estas técnicas las brinda la seguridad lógica que consiste en la aplicación de barreras y procedimientos que resguardan el acceso a los datos y sólo permiten acceder a ellos a las personas autorizadas para hacerlo. Existe un viejo dicho en la seguridad informática que dicta: “lo que no está permitido debe estar prohibido” y ésta debe ser la meta perseguida. Los medios para conseguirlo son: (1) Restringir el acceso, de personas de la organización y de las que no lo son, a los programas y archivos. (2) Asegurar que los operadores puedan trabajar pero que no puedan modificar los programas ni los archivos que no correspondan, sin una supervisión minuciosa. (3) Asegurar que se utilicen los datos, archivos y programas correctos en y por el procedimiento elegido. (4) Asegurar que la información transmitida sea la misma que reciba el destinatario al cual se ha enviado y que no le llegue a otro. (5) Asegurar que existan sistemas y pasos de emergencia alternativos de transmisión entre diferentes puntos. (6) Organizar a cada uno de los empleados por jerarquía informática, con claves distintas y permisos bien establecidos, en todos y cada uno de los sistemas o aplicaciones empleadas. (7) Actualizar constantemente las contraseñas de accesos a los sistemas de cómputo.

Frecuentemente, la seguridad de los sistemas de información es objeto de metáforas. A menudo, se la compara con una cadena, afirmándose que el nivel de seguridad de un sistema es efectivo únicamente si el nivel de seguridad del eslabón más débil también lo es. De la misma forma, una puerta blindada no sirve para proteger un edificio si se dejan las ventanas completamente abiertas. Lo que se trata de demostrar es que se debe afrontar el tema de la seguridad a nivel global y que debe constar de los siguientes elementos: (1) Concientizar a los usuarios acerca de los problemas de seguridad. (2) Seguridad lógica, es decir, la seguridad a nivel de los datos, en especial los datos de la empresa, las aplicaciones e incluso los sistemas operativos de las compañías. (3) Seguridad en las telecomunicaciones. Es decir en las tecnologías de red, servidores de compañías, redes de acceso, etc. (4) Seguridad física. También conocida como seguridad de infraestructuras materiales, consiste en asegurar las habitaciones, los lugares abiertos al público, las áreas comunes de la compañía, las estaciones de trabajo de los empleados, etc.

Generalmente, la seguridad de los sistemas informáticos se concentra en garantizar el derecho a acceder a datos y recursos del sistema configurando los mecanismos de autentificación y control que aseguran que los usuarios de estos recursos sólo posean los derechos que se les han otorgado. Los mecanismos de seguridad pueden sin embargo, causar inconvenientes a los usuarios. Con frecuencia, las instrucciones y las reglas se vuelven cada vez más complicadas a medida que la red crece. Por consiguiente, la seguridad informática debe estudiarse de modo que no evite que los usuarios desarrollen usos necesarios y así puedan utilizar los sistemas de información en forma segura. Por esta razón, uno de los primeros pasos que debe dar una compañía es definir una política de seguridad que pueda implementar en función a las siguientes cuatro etapas: (1) Identificar las necesidades de seguridad y los riesgos informáticos que enfrenta la compañía así como sus posibles consecuencias. (2) Proporcionar una perspectiva general de las reglas y los procedimientos que deben implementarse para afrontar los riesgos identificados en los diferentes departamentos de la organización. (3) Controlar y detectar las vulnerabilidades del sistema de información, y mantenerse informado acerca de las falencias en las aplicaciones y en los materiales que se usan. (4) Definir las acciones a realizar y las personas a contactar en caso de detectar una amenaza

La política de seguridad comprende todas las reglas de seguridad que sigue una organización, en el sentido general de la palabra. Por lo tanto, la administración de la organización en cuestión debe encargarse de definirla, ya que afecta a todos los usuarios del sistema. En este sentido, no son sólo los administradores de informática los encargados de definir los derechos de acceso sino sus superiores. El rol de un administrador de informática es el de asegurar que los recursos de informática y los derechos de acceso a estos recursos coincidan con la política de seguridad definida por la organización. Es más, dado que el administrador es la única persona que conoce perfectamente el sistema, deberá proporcionar información acerca de la seguridad a sus superiores, eventualmente aconsejar a quienes toman las decisiones con respecto a las estrategias que deben implementarse, y constituir el punto de entrada de las comunicaciones destinadas a los usuarios en relación con los problemas y las recomendaciones de seguridad.

La seguridad informática de una compañía depende de que los usuarios aprendan las reglas a través de sesiones de capacitación y de concientización. Sin embargo, la seguridad debe ir más allá del conocimiento de los empleados y cubrir las siguientes áreas: (1) Un mecanismo de seguridad física y lógica que se adapte a las necesidades de la compañía y al uso de los empleados. (2) Un procedimiento para administrar las actualizaciones. (3) Una estrategia de realización de copias de seguridad planificada adecuadamente. (4) Un plan de recuperación luego de un incidente. (5) Un sistema documentado actualizado. (6) Un listado de las causas de inseguridad.

Guillermo Choque Aspiazu
www.eldiario.net
Febrero 16 de 2009

viernes, 8 de mayo de 2009

Conciencia maquinal

El termino “inteligencia artificial” fue acuñado formalmente el año 1956 durante la Conferencia de Dartmouth, más para entonces ya se había estado trabajando en ello durante mas de cinco años en los cuales se había propuesto muchas definiciones distintas que en ningún caso habían logrado ser aceptadas totalmente por la comunidad investigadora. La inteligencia artificial estudia el software y hardware necesarios para simular el comportamiento y comprensión humanos. El objetivo último de la inteligencia artificial es simular la inteligencia humana en una máquina creando robots que sean conscientes y con sentimientos reales, similares a los humanos. Uno de los problemas más difíciles es simular la conciencia, cualidad que hace que el ser humano se de cuenta de su propia existencia.

Se sabe que en el cerebro existen diez mil millones de neuronas, cada una de las cuales, por término medio, tiene un millar de uniones con otras neuronas, lo cual equivale a cien mil kilómetros de cables. En las computadoras avanzadas los sucesos individuales son un millón de veces más rápidos que en el cerebro, pero la conectividad masiva y el modo simultáneo de actividad del cerebro permite a la biología, por ahora, superar a la electrónica. Si la computadora más rápida realiza aproximadamente mil millones de operaciones por segundo, esta actividad resulta insignificante si se la compara con los cien mil millones de operaciones que tienen lugar en el cerebro de una mosca en reposo. Al paso que evoluciona la complejidad de las computadoras, alcanzar la actividad del cerebro es solamente cuestión de tiempo. No debe olvidarse que cualquier cerebro, máquina u otra cosa que posea una “mente” debe estar compuesta de cosas más pequeñas que no pueden pensar en absoluto. Y el hombre, siguiendo este argumento, apenas si sería una ingente cantidad de amebas, la mayoría de ellas terriblemente estúpidas.

Aristóteles, en su obra “Política”, hace referencia a máquinas pensantes como una alternativa a la esclavitud, máquinas autónomas capaces de atender las necesidades de sus amos. En los últimos años el investigador George Dyson menciona: “En el juego de la vida y la evolución hay tres jugadores en la mesa: los seres humanos, la naturaleza y las máquinas. Yo estoy al lado de la naturaleza. Pero la naturaleza, sospecho, está del lado de las máquinas.” En la misma línea, pero más contundente, Hans Moravec, del Instituto de Robótica de la Universidad Carnegie Mellon, advierte: “El mundo posbiológico será un mundo en el que el género humano habrá sido arrastrado por la marea del cambio cultural, usurpado por su propia progenie artificial. Cuando esto suceda, el ácido desoxirribonucléico se encontrará fuera de lugar, pues habrá perdido la carrera evolutiva ante un nuevo tipo de competencia.” Opinión que aparenta responder a la pregunta planteada por el célebre escritor Arthur C. Clark: “El implacable avance de la inteligencia artificial obliga a formular la inevitable pregunta: ¿estamos probando la siguiente especie de vida inteligente sobre la Tierra?”. Por su parte, Francis Crick, premio Nóbel de medicina por su descubrimiento, junto con James Watson, de la doble hélice del código genético, brinda ésta hipótesis asombrosa: “…que nosotros, nuestros pesares y alegrías, nuestras memorias y nuestras ambiciones, nuestra sensación de identidad personal y libre albedrío, no son en realidad sino el comportamiento de un vasto ensamblaje de células nerviosas y sus moléculas asociadas.” Lo que vendría a corroborar lo que desde hace tiempo vienen repitiendo los científicos dedicados a la inteligencia artificial: “Las máquinas pensantes existen ya: se llaman seres humanos”. Y por si lo anterior no bastase, considere la competente opinión del premio Nóbel Jacques Monod: “Los seres vivos, tanto por su estructura macroscópica como por sus funciones, son estrechamente comparables a máquinas.”

Muchos filósofos y científicos opinan que es poco concebible que una verdadera inteligencia pudiera manifestarse sin estar acompañada por la consciencia. Estas capacidades, o habilidades, podrían compararse con la llave y la cerradura, en donde una no tiene sentido sin la otra; de la misma manera que es inconcebible suponer que existe un lugar denominado “ciudad” totalmente aparte y por separado de los parques, los edificios, las calles, las personas, los negocios, los medios de transporte y todas aquellas otras entidades materiales que le dan forma. Si se alcanza la inteligencia, la consciencia surge como consecuencia. No obstante, hay otros pensadores que consideran que la conciencia no necesariamente está “atada” a la inteligencia. Por ejemplo, argumentan, los hormigueros se comportan de una manera bastante inteligente, aunque es muy difícil defender la idea de que existe alguna clase de conciencia unificada “revoloteando” entre las miles de hormigas que lo componen.

Las posturas de la inteligencia artificial, ante la posibilidad de simular la conciencia por una computadora, son las siguientes: (1) Inteligencia artificial fuerte. Los partidarios de esta postura piensan que toda actividad mental es de tipo computacional, incluidos los sentimientos y la conciencia, y por tanto se pueden obtener por simple computación. (2) Inteligencia artificial débil. Plantea que la conciencia es una característica propia del cerebro. Y mientras toda propiedad física se puede simular computacionalmente, no se puede llegar por este procedimiento al fenómeno de la conciencia en su sentido más genuino. Los que pertenecen a este grupo dicen que la simulación por computadora de un huracán no es en sí mismo un huracán, o que la simulación de la digestión por el estómago no digiere nada, se trata simplemente de procesos no causales. (3) Nueva física Esta postura defiende que es necesaria una nueva física para explicar la mente humana y que quizá en el futuro se pueda simular, pero ciertamente no por métodos computacionales; para ello es necesario que en el futuro se descubran nuevos métodos científicos que todavía se desconocen. (4) Mística Esta postura defiende que la conciencia no se puede explicar ni física, ni computacionalmente, ni por otro medio científico. Es algo totalmente fuera de la esfera científica, pertenece al mundo espiritual y no puede ser estudiada utilizando la razón científica, escapa al método de conocimiento racional heredado de la cultura griega.

Muchos filósofos opinan que la computadora no tiene ni podrá tener consciencia, porque está construida con materiales no orgánicos y no cuenta con una estructura neuronal profundamente integrada a un cuerpo biológico. Tal vez la consciencia humana sea un fenómeno biológico que dependa de la interacción del cerebro con el resto del cuerpo y con el mundo que lo rodea, de la propia herencia y de los miles de millones de años de evolución de la vida sobre la Tierra. Roger Penrose, por ejemplo, sugiere que los fenómenos de la consciencia no sólo no podrían llevarse a cabo, sino que ni siquiera podrían ser simulados por ningún tipo de computadora, ya que éstas solamente pueden obedecer un algoritmo. Los seres humanos, en cambio, poseen un pensamiento consciente porque la actividad física, la “computación” de su cerebro es de índole cuántica, algo completamente distinto y que está mucho más allá de la “simple” computación algorítmica. En consecuencia, y para este pensador, sólo aquellas entidades capaces de ejecutar una “computación cuántica” serían verdaderamente conscientes. Sin embargo, y según sus propias palabras, “en este momento se carece totalmente de la comprensión física necesaria para construir tal presunta máquina.” También el filósofo David Chalmers opina de forma similar: quizá la consciencia sea una propiedad inmaterial, no-física, y fundamental del universo, vagamente comparable con la masa, el espacio y el tiempo y que acompaña ciertas configuraciones de materia como, por ejemplo, un cerebro orgánico. Para este pensador, sólo se conseguirá construir máquinas inteligentes cuando éstas puedan evolucionar, pues la consciencia resulta de la evolución de las especies.

Otros filósofos, en cambio, admiten que si alguna vez se llegara a imitar el funcionamiento del cerebro, quizás también se podrían simular las emociones y los sentimientos. Pero para eso no sólo habría que diseñar un cerebro artificial, sino también un cuerpo y, en lo posible, de forma humana. En consecuencia, la máquina ya no sería simplemente una computadora con gran inteligencia, ni siquiera un robot dotado de elaborados sistemas sensoriales y motores, sino un complicado androide capaz de interaccionar con el entorno, con los problemas de la vida real y con las personas. De esta manera, en el modelado del intelecto inorgánico posiblemente se deba tener en cuenta, también, las teorías cognitivas, culturales, históricas y sociales. Aunque esta “pseudo-sensibilidad” tal vez no sea una consciencia auténtica, se le parecerá bastante. De todas formas, y desde el punto de vista de la ingeniería, se trata de un reto formidable, principalmente debido a que no se sabe que es lo que hace que el cerebro humano sea consciente.

Guillermo Choque Aspiazu
www.eldiario.net
Febrero 9 de 2009

viernes, 1 de mayo de 2009

Árboles de decisión

Un árbol de decisión es un modelo de predicción utilizado en el ámbito de la inteligencia artificial. Dada una base de datos se construyen diagramas de construcción lógicas, muy similares a los sistemas de predicción basados en reglas, que sirven para representar y categorizar una serie de condiciones que ocurren de forma sucesiva, para la resolución de un problema. Un árbol de decisión tiene unas entradas las cuales pueden ser un objeto o una situación descrita por medio de un conjunto de atributos y a partir de esto devuelve una respuesta la cual en último término es una decisión que es tomada a partir de las entradas. Los valores que pueden tomar las entradas y las salidas pueden ser valores discretos o continuos. Se utilizan más los valores discretos por simplicidad, cuando se utilizan valores discretos en las funciones de una aplicación se denomina clasificación y cuando se utilizan los continuos se denomina regresión.

Un árbol de decisión lleva a cabo una prueba a medida que este se recorre hacia las hojas para alcanzar así una decisión. El árbol de decisión suele contener nodos internos, nodos de probabilidad, nodos hojas y arcos. Un nodo interno contiene una prueba sobre algún valor de una de las propiedades. Un nodo de probabilidad indica que debe ocurrir un evento aleatorio de acuerdo a la naturaleza del problema, este tipo de nodos es redondo, los demás son cuadrados. Un nodo hoja representa el valor que devolverá el árbol de decisión y finalmente las ramas brindan los posibles caminos que se tienen de acuerdo con la decisión tomada.

Los árboles de decisión son herramientas excelentes como ayuda para realizar elecciones adecuadas entre muchas posibilidades. Su estructura permite seleccionar una y otra vez diferentes opciones para explorar las diferentes alternativas posibles de decisión. Los árboles de decisión son guías jerárquicas multi-vía donde los valores de las características son el criterio diagnostico para evaluar la calidad de la solución y determinar el uso más apropiado. La jerarquía se refiere a que la toma de una decisión o camino lleva a otra, hasta que todos los factores o características involucradas se hayan tomado en cuenta. Es multi-vía porque pueden existir más de dos opciones y es una guía porque al responder una pregunta se llega a una decisión.

El uso de árboles de decisión tuvo su origen en las ciencias sociales con los trabajos de Sonquist y Morgan el año 1964 y Morgan y Messenger el año 1979, ambos realizados en la Universidad de Michigan. El programa para la “Detección de Interacciones Automáticas”, creada el año 1971 por los investigadores Sonquist, Baker y Morgan, fue uno de los primeros métodos de ajuste de los datos basados en árboles de clasificación. En estadística, el año 1980, Kass introdujo un algoritmo recursivo de clasificación no binario, llamado “Detección de Interacciones Automáticas Chi-cuadrado”. Hacia el año 1984, los investigadores Breiman, Friedman, Olshen y Stone, introdujeron un nuevo algoritmo para la construcción de árboles y los aplicaron a problemas de regresión y clasificación. El método es conocido como “Árboles de clasificación y regresión”. Casi al mismo tiempo el proceso de inducción mediante árboles de decisión comenzó a ser usado por la comunidad de “Aprendizaje automático”.

El término árboles es por la apariencia de la gráfica asociada, que se asemeja a un árbol con las raíces en la parte superior creciendo hacia la parte inferior. La raíz es el nodo superior, en cada nodo se hace una partición hasta llegar a un nodo terminal u hoja. Cada nodo no-terminal contiene una pregunta en la cual se basa la división del nodo. Cada nodo terminal contiene, en el caso de árboles de regresión, el valor de la variable de respuesta o para árboles para clasificación, el nombre de la clase a la cual pertenece. La construcción de un árbol de decisión se basa en cuatro elementos: (1) Un conjunto de preguntas binarias. (2) El método usado para particionar los nodos. (3) La estrategia requerida para detener el crecimiento del árbol. (4) La asignación de cada nodo terminal a un valor de la variable de respuesta o a una clase. Las diferencias principales entre los algoritmos para construir árboles se hallan en la estrategia para podar los árboles, la regla para particionar los nodos y el tratamiento de los valores perdidos.

Los árboles de decisión son una manera de representar una serie de reglas que culminan en una clase o valor. Los modelos de árboles de decisión son comúnmente usados en la minería de datos para examinar los datos e inducir las reglas para realizar predicciones. Los árboles de decisión crecen a través de una división iterativa de grupos discretos, donde la meta es maximizar la “distancia” entre grupos por cada división. Una de las distinciones entre los diferentes métodos de “división” es la manera en la que miden esta distancia. Se puede pensar que cada división de los datos en nuevos grupos debe ser diferente uno de otro tanto como sea posible. Esto también se denomina “purificación” de grupos. Los árboles de decisión que se utilizan para predecir variables categóricas son llamados árboles de clasificación, y los árboles usados para predecir variables continuas son llamados árboles de regresión. Los árboles de decisión manejan datos no numéricos de manera bastante conveniente. La habilidad para aceptar datos categóricos minimiza la cantidad de transformaciones en los datos y la explosión de variables de predicción inherentes en las redes neuronales. Algunos árboles de clasificación fueron diseñados, y de hecho trabajan mejor cuando las variables de predicción también son categóricas.

En términos técnicos, un árbol de decisión es un diagrama que representa en forma secuencial condiciones y acciones; muestra qué condiciones se consideran en primer lugar, en segundo lugar y así sucesivamente. Este método permite mostrar la relación que existe entre cada condición y el grupo de acciones permisibles asociado con ella. Un árbol de decisión sirve para modelar funciones discretas, en las que el objetivo es determinar el valor combinado de un conjunto de variables, y basándose en el valor de cada una de ellas, determinar la acción a ser tomada. Los árboles de decisión son normalmente construidos a partir de la descripción de la narrativa de un problema. Ellos proporcionan una visión gráfica de la toma de decisión necesaria, especifican las variables que son evaluadas, qué acciones deben ser tomadas y el orden en el cual la toma de decisión será efectuada. Cada vez que se ejecuta un árbol de decisión, solo un camino será seguido dependiendo del valor actual de la variable evaluada. Se recomienda el uso del árbol de decisión cuando el número de acciones es pequeño y no son posibles todas las combinaciones.

Se ha demostrado que los árboles de decisión son eficaces cuando es necesario describir problemas con más de una dimensión o condición. Los árboles de decisión también son útiles para identificar los requerimientos de datos críticos que rodean al proceso de decisión, es decir, los árboles indican los conjuntos de datos que se requiere para el proceso de formulación de decisiones o la toma de acciones. El analista debe identificar y elaborar una lista de todos los datos utilizados en el proceso de decisión, aunque el árbol de decisión no muestre necesariamente todos los datos. Si los árboles de decisión se construyen después de completar el análisis de flujo de datos, entonces es posible que los datos críticos se encuentren definidos en el diccionario de datos. Si únicamente se usan árboles de decisiones, entonces el analista debe tener la certeza de identificar con precisión cada dato necesario para tomar la decisión.

De retorno a la comunidad del aprendizaje automático, la construcción de árboles de decisión es sin duda el método de aprendizaje automático más utilizado. El dominio de aplicación de los árboles de decisión no está restringido a un ámbito concreto sino que pueden ser utilizados en diversas áreas, desde aplicaciones de diagnóstico médico hasta juegos como el ajedrez o sistemas de predicción meteorológica. En estas aplicaciones, el conocimiento obtenido en el proceso de aprendizaje se representa mediante un árbol en el cual cada nodo interior contiene una pregunta sobre un atributo concreto, con un hijo por cada posible respuesta, y cada hoja del árbol se refiere a una decisión. Un árbol de decisión puede usarse para clasificar un caso comenzando desde su raíz y siguiendo el camino determinado por las respuestas a las preguntas de los nodos internos hasta encontrar un nodo hoja del árbol.

Guillermo Choque Aspiazu
www.eldiario.net
Febrero 2 de 2009