sábado, 31 de diciembre de 2011

Aleatoriedad, errores e inteligencia artificial


Aleatoriedad
Se dice que un sistema presenta aleatoriedad cuando sus estados no pueden predecirse de forma exacta, sino como mucho usando probabilidades. En la Física clásica se suponía que los sistemas aleatorios lo eran por desconocimiento de su funcionamiento exacto, debido a imposibilidades prácticas o a que el sistema era demasiado complejo. 

Así, el típico experimento aleatorio de lanzar una moneda realmente es determinista, pues dados sus posición y velocidad inicial exactas, así como sus propiedades físicas (masa, geometría, momento de inercia, ...) y aplicando las leyes de la mecánica ha de ser posible determinar su estado final. 
Llama con forma caótica
Esta visión determinista se derrumbó con la Mecánica Cuántica la cual introduce un factor de aleatoriedad insalvable propio de la Naturaleza, aunque sólo en el dominio de lo extremadamente pequeño.

Por otra parte en los denominados sistemas caóticos encontramos que a pesar de ser deterministas, son tan sensibles a cualquier variación de su estado inicial que en la práctica se comportan como si fueran aleatorios. Tal es el caso del lanzamiento de la moneda, pero también de ejemplos más interesantes  como el clima,  la formación de cristales, o la forma de las llamas de un fuego.


El problema de la generación de números aleatorios
La generación de números aleatorios por ordenador es de gran importancia práctica, pues nos permite simular sucesos aleatorios. Pero resulta que no es fácil generarlos, ya que por definición un programa de ordenador es una secuencia determinada de operaciones, que se ejecutan una detrás de otra, sin posibilidad de introducir aleatoriedad, en principio. De hecho, la mayoría de programas de generación de números aleatorios son de hecho "pseudoaleatorios": usan algoritmos matemáticos que, dado un valor inicial (conocido por "semilla")  generan una secuencia definida de números x1, x2, x3, ..., de forma que para cada valor de la semilla se genera una lista distinta.

Una forma de que un algoritmo genere aleatoriedad es proporcionándole datos aleatorios desde el exterior; el propio hardware del ordenador puede proporcionarla a través de procesos impredecibles, como los movimientos de la cabeza lectora del disco duro o la tasa de actividad de la CPU.  La generación de aleatoriedad por hardware suele aprovechar fenómenos físicos altamente impredecibles, como el ruido eléctrico.

Movimiento browniano: trayectoria caótica seguida por una partícula
muy pequeña en un fluido; la dirección y la velocidad cambian repentinamente
conforme van rebotando en ella las moléculas del fluido, sin ningún patrón predecible.
En el caso de algunos algoritmos de generación de claves para criptografía como el GPG, se pide la colaboración del usuario para generar aleatoriedad:  mientras se genera la clave ha de realizar cuantas más acciones mejor, como mover el ratón rápidamente o re-dimensionar ventanas de aplicaciones; a este proceso se le llama generación de entropía.
Observemos que estos métodos utilizan de hecho sistemas físicos caóticos para generar aleatoriedad que no tienen porque ser realmente aleatorios, sólo demasiado complejos para ser predecibles. Actualmente empiezan a aparecer sistemas que recurren a los procesos cuánticos para generar auténtica aleatoriedad, como es el caso de la empresa suiza ID Quantique que vende sistemas de generación de claves aleatorias basadas en las propiedades cuánticas del fotón.

Errores aleatorios en las mediciones
Cuando medimos una magnitud física, es inevitable que el instrumento de medida afecte a la cantidad que deseamos medir; además, la medida estará afectada en algún grado por el denominado error experimental. Si el instrumento está bien calibrado y somos cuidadosos en el procedimiento de medida, entonces los errores serán totalmente aleatorios, y además sus probabilidades estarán determinadas por la distribución normal de probabilidad


Aleatoriedad y errores en la mente
Nuestra mente es una maravilla capaz de enviar un robot explorador a Marte o de enunciar la teoría de las cuerdas en un espacio de 10 dimensiones. Sin embargo, también destaca su elevada irracionalidad en ciertas ocasiones, así como su capacidad de cometer errores de todo tipo, disfunciones y aberraciones del comportamiento. A veces, la mente parece funcionar distorsionada como si algún "demonio" se hubiera infiltrado  en su interior. Esta es una característica distintiva de la mente humana en relación con la inteligencia artificial (IA), que no es tan dada a comportamientos erráticos.
Podemos preguntarnos, ¿estas disfunciones son errores aleatorios del cerebro? En esta pregunta hay dos tesis: (1) ¿el cerebro tiene errores de funcionamiento que se traducen en disfunciones mentales?, y (2) ¿estos errores no siguen ningún patrón predecible, se producen sin posibilidad de predicción?

Test de Turing
Test de Turing: ¿quien responde es
humano o máquina?
Sea como sea, los programas no tienen este tipo de errores pues son deterministas. Alan Turing, precursor de la informática y la IA, propuso en 1950 un test, el test de Turing, para discernir entre una mente humana y una artificial. Consiste en realizar el mismo conjunto de preguntas a un humano y a una máquina; de las respuestas que obtenemos se nos oculta quien las ha hecho, si hombre o máquina. Entonces si somos incapaces de deducir simplemente  analizando las respuestas si provienen de uno o del otro, diremos que la máquina ha superado el test, y muestra una inteligencia similar la la humana. El test es tan potente que hoy en día ni siquiera se utiliza debido a que se considera que ningún programa podría superarla. 

Lo que más se le acerca actualmente son los denominados chatterbots, que simulan una conversación humana pero limitada a un contexto determinado, como por ejemplo los asistentes virtuales de compras. A continuación tenemos un dialogo entre un humano (H) y el asistente virtual de RENFE Irene (I)

H: buenas tardes
I: Aquí me tienes, ¡buenas tardes!
   ¿Me dices cómo te gustaría que te llamara?
H: Pepe   
I: Fenomenal. A partir de ahora te llamaré Pepe.
H: ¿sales esta noche?
I: Me paso en esta ventana todas las horas del año... ¡Ojalá pudiera salir de aquí! Por cierto, Pepe, ¿en qué ciudad estás tú?
H: En Bombay
I: Preguntaba por una ciudad, da igual.
H: Quiero saber los horarios de cercanías
I: Tienes los horarios y recorridos de Cercanías. Los tienes en este enlace.

Un bot de tipo general que funciona aceptablemente es Cleverbot.
La habilidad de conversación del chatterbot suele limitarse a su área de conocimiento. En el caso de un programa que simulase ser un matemático, el propio Turing advirtió que el programa para superar el test debía ralentizar su respuesta e introducir algún error de vez en cuando para parecer un ser humano.  La introducción de errores en la respuesta podría ser aleatoria o bien producirse después de una larga serie de preguntas, para simular cansancio. Como ya hemos visto, este error intencionado aleatorio puede vincularse a una fuente de aleatoriedad generada por el mismo hardware de la máquina.

Aprender de los errores
Es sabido que los errores son una fuente de aprendizaje, tanto es así que una de las formas de aprender algo nuevo es por la técnica del ensayo-error, en la cual probamos algo nuevo, evaluamos el resultado, y corregimos los errores, para volver a ensayar de nuevo. Así pues, es importante que los ordenadores se equivoquen y sepan aprender de sus errores para simular el comportamiento de la mente. Los programas basados en redes neuronales simulan una red  reducida de neuronas; principalmente se utilizan para aprender a reconocer patrones: se les proporcionan unos datos de entrada con los cuales "aprenden", para después ser capaces de reconocer patrones similares. Este aprendizaje se basa en el ajuste de parámetros internos de la red usando el método ensayo-error. Por ejemplo las redes neuronales se pueden usar para leer los códigos de barra a pesar de haber manchas, arrugas o de una impresión de baja calidad.




No hay comentarios:

Publicar un comentario

Los comentarios por favor que sean sobre el tema del artículo, y siempre para completar, o para preguntar. No se admitiran comentarios que no cumplan estas premisas ni por supuesto que sean ofensivos bajo ningun concepto.

Discutir, dialogar, convencer: del razonamiento estrecho, luchador al razonamiento ámplio, amable

La verdad absoluta no está disponible Releyendo Logicomix una épica búsqueda de la verdad , un fantástico cómic sobre el principal tema de ...