Category Archives: Inteligencia Artificial

Adaptando la legislación de drones y vehículos conducidos por inteligencias artificiales

El primer ministro de Japón ha anunciado cómo el gobierno se va a mover para facilitar la introducción de varios tipos de vehículos pilotados/conducidos por inteligencias artificiales antes de las olimpiadas del 2020. Ahora mismo, tanto en Japón como en otros lugares, no es un problema de tecnología sino se seguridad y de legislación. La administración de Abe planea desregularizar no solo drones y conducción automática, también el uso de inteligencia artificial en servicios/robots médicos.

drone00

drone1

drone2

drone3Este es un ejemplo de drone-puerto que se tendrían que instalar edificios y casas que quieran recibir paquetes o cartas via drones en vez de correo tradicional.

drone4

drone5

drone6

Anotaciones relacionadas:


Lo grande, lo pequeño y la mente humana

Según mi parecer quedan en la actualidad tres grandes misterios por explicar: lo grande (El universo), lo pequeño(El mundo a escala cuántica) y la mente humana. La mayoría de la investigación que se hace hoy en día tiene como propósito final indirecto ayudar a resolver alguno de estos problemas.

Por ejemplo, dentro la revolución de la biología/genética de los últimos años una de las líneas de investigación es entender la relación entre nuestros genes y nuestro cerebro. Uno de los grandes problemas de la medicina es el poco conocimiento del cerebro. Dentro del mundo de la informática uno de los “sueños finales” es crear un máquina que sea capaz de pensar como una mente humana. Los físicos intentan unir las teorías que explican lo grande y lo pequeño. Y así lo podéis ir aplicando a casi cualquier otra disciplina y veréis que el interés principal de la humanidad es entendernos a nosotros mismos (mente principalmente) y entender el universo (lo grande y lo pequeño).

Marvin Minsky es uno de los mayores entendidos en el mundo sobre el funcionamiento del cerebro y uno de sus objetivos finales es conseguir “copiar una mente humana dentro de un ordenador”. A continuación algunos extractos de uno de sus escritos:

Will robots inherit the earth? Yes, but they will be our children. We owe our minds to the deaths and lives of all the creatures that were ever engaged in the struggle called Evolution. Our job is to see that all this work shall not end up in meaningless waste.

If we want to consider augmenting our brains, we might first ask how much a person knows today. Thomas K. Landauer of Bell Communications Research reviewed many experiments in which people were asked to read text, look at pictures, and listen to words, sentences, short passages of music, and nonsense syllables. They were later tested in various ways to see how much they remembered. In none of these situations were people able to learn, and later remember, more than about 2 bits per second, for any extended period. If you could maintain that rate for twelve hours every day for 100 years, the total would be about three billion bits — less than what we can store today on a regular 5-inch Compact Disk. In a decade or so, that amount should fit on a single computer chip.

Leer texto completo

Marvin Minsky también tiene un libro muy famoso apto para todos los públicos llamado Society of Mind muy recomendable. Por cierto, también hay otro libro con el mismo título que este post, Lo grande, lo pequeño y la mente humana escrito por el matemático Roger Penrose; aunque este último no os lo recomiendo.


Exoesqueletos

Por todos es conocida la gran fascinación por los robots que hay en Japón. De hecho no es solo afición, la realidad es que Japón es el país del mundo con más robots. La mayoría robots industriales.

Pero también hay miles de fans del concepto Mecha, es decir, máquinas manejadas por humanos con forma humanoide. También se pueden denominar técnicamente como “Exoesqueletos”. Series como Gundam, Evangelion, sin olvidarnos del clásico Mazinger Z siempre han causado furor entre los japoneses y han triunfado en el tema del merchandising sobretodo vendiendo figuras a escala. Ahora mismo en Japón hay incluso varias revistas que solo hablan de Gundam.

Mech

Pero desde que Honda terminó después de más de 20 años de investigación su primer protipo completo de Asimo hay montones de universidades, empresas y centros de investigación que usando los mismos sistemas de control (Lo más complicado de los robots humanoides es mantener el equilibrio) están desarrollando robots humanoides y últimamente también “exoesqueletos”.

Toyota está enseñando Ifoot en la Expo de Aichi, el que se podría considerar como el primer exoesqueleto mostrado al público en general de la historia.

Mech
Mech
Mech

También están presentando en la expo una especie de “vehículo ergonómico” llamado Iunit. Por cierto, el lunes me pasaré por la Expo de Aichi y ya os contaré que tal.

Mech

También he encontrado a un japonés que se ha montado su propio “Mecha” en casa, a partir de las fotos parece muy expectacular pero después de ver el vídeo, se ve que el movimiento de las ¿piernas?/¿patas? es muy sencillo. De todas formas es bastante espectacular la vista subjetiva desde el puesto de piloto.

Mech


Delaunay y Voronoi

Vamos a comentar intuitivamente uno de los algoritmos más famosos y más útiles de la geometría computacional usando un ejemplo práctico. Aprenderemos a generar imágenes como esta:

Comenzamos la aventura. Imaginaros que tenemos una empresa de transporte con varias centrales de distribución, cada punto de la imágen representa uno de estos centros:

Ahora imaginaros que debemos determinar las zona que debe cubrir cada central de distribución de forma que tengamos que viajar lo mínimo posible. Es decir, debemos determinar las zonas del plano que están más cercanas a cada punto.

Para calcular estas zonas hay que seguir una serie de pasos. Primero debemos aplicar el algoritmo de Delaunay, que consiste en trazar triángulos entre los vértices con ciertas restricciones que ahora veremos. Veamos una posible triangulación:

Esta es una forma de triangular, pero para nuestro propósito no es válida. Debemos conseguir una triangulación de forma que Cualquier circunferencia trazada entre los 3 vértices de cada triángulo no tenga ningún otro punto dentro. Lo veremos más claro con una imágen que demuestra que la triangulación anterior no era válida:

¿Cómo solucionamos el problema? Pues probando diversas triangulaciones (Hay un método complicado de explicar que lo hace muy bien) hasta que no haya ninguna circunferencia que toque más de 3 vértices. En nuestro caso solo tenemos que cambiar una arista:

Fijaros que hemos cambiado un poco la triangulación y ahora al trazar la circunferencia ya no tenemos ningún otro vértice interior. Si hacemos lo mismo con el resto de triángulos vemos que hemos conseguido que no tengan otros vértices dentro, en este momento hemos conseguido la Triangulación de Delaunay a partir de los vértices/centrales de distribución iniciales. En la siguiente imagen trazamos todas las circunferencias posibles, fijaros que ninguna toca más de 3 vértices.

Pufff, un poco lioso pero lo que queda es cuesta abajo. A continuación debemos calcular las regiones más cercanas a cada punto (A estas regiones las llamaremos Regiones de Voronoi). Para ello nos apoyaremos en la Triangulación de Delaunay que ya hemos calculado. Marcamos el punto central de cada circunferencia y trazamos Perpendiculares a las aristas de los triángulos. Vamos a verlo con dos de los círculos para no liar (Los puntos amarillos son los centros de las circunferencias y las líneas naranjas son perpendiculares a las aristas de los triángulos):

Si seguimos aplicando el mismo método (y eliminamos del dibujo los circulos para no liar) obtendremos lo siguiente:

Si además eliminamos la Triangulación de Delaunay, tendremos la imagen definitiva donde se definen las zonas más cercanas a cada centro de distribución:

Por ejemplo, la zona coloreada de verde es la Región de Voronoi del punto A. Esto quiere decir que todo lo que está pintado de verde está más cerca de A que de cualquier otro punto del dibujo. Lo podéis comprobar con una regla si no os convenzo 😉

Si habéis llegado hasta aquí, tenéis premio: Un applet donde haciendo clicks podéis ir colocando las sedes de vuestra empresa y vais viendo en tiempo real la triangulación de Delaunay y las regiones de Voronoi. También podéis generar muchos puntos dándole al botón Generar, con el que conseguiréis una imagen similar a la mostrada al inicio de este artículo. A los programadores os pongo el código fuente por si quieren trastear algo, os aviso que está muy poco documentado.

Resumiendo, en geometría computacional las regiones de Voronoi son las zonas del plano más cercanas a un conjunto dado de puntos. Esto a nivel práctico lo utilizan muchas empresas para definir sus zonas de cobertura. Por ejemplo, McDonalds lo utiliza para decidir donde tiene que poner una nueva sede. También se utiliza en planes de prevención de riesgos para saber a que zonas afectaría un escape de una central nuclear.

También se utiliza en aplicaciones más artísticas, como en la primera imágen de este artículo, la creación de cristaleras etc. También podéis generar vuestras regiones de voronoi utilizando Photoshop: Filtro -> Textura ->Vidriera . Para aplicar ese filtro Photoshop internamente realizar la Triangulación de Delaunay que hemos aprendido y posteriormente calcula las Regiones de Voronoi. Todos a crear Vidrieras y si no os queda algo claro preguntad 🙂


El test de Turing y los ordenadores Inteligentes

El test de Turing es una prueba que se propuso en los años 50 para comprobar si una máquina es inteligente o no.

El test consiste en poner a chatear a una persona con otra persona y con un ordenador; sin decirle a priori cual es la máquina y cual es la persona. Si chateando descubre quién es la persona, y quién es el ordenador se concluye que el ordenador No es inteligente. Pero si no somos capaces de determinar cual de los dos es una máquina, entonces el ordenador ha pasado el Test de Turing y se podría considerar como una aparato inteligente.

Después de 50 años ningun programa ha conseguido pasar el test realmente, aunque se han hecho muchos intentos. Pensad en lo sencillo que sería descubrir a la máquina con alguna pregunta medianamente complicada, podeís charlar con un ordenador en esta web en inglés para comprobarlo. Pero en los años 80 John Searle desarrolló un contraejemplo diciendo que aunque una máquina pasara el Test de Turing, ésta no sería inteligente:

Imagemos ahora, que un chino está chateando con nosotros por Internet. Utilizamos un diccionario de chino y diversos manuales para contestarle. De esta forma él pensará que nosotros sabemos chino cuando realmente no tenemos ni idea, simplemente seguimos unas reglas que vienen en los diccionarios y libros. ¿Quién sabe chino? ¿Nosotros, los manuales y el diccionario, el ordenador que usamos para chatear o todo el conjunto de elementos? Según Searle no sabemos chino, al igual que una máquina que pasara el Test de Turing no es sería inteligente ya que simplemente sigue unas reglas sin ser consciente de ellas.

A partir de el contraejemplo de Searle la Inteligencia Artificial vive una época de incertidumbre acerca de sus posibilidades a largo plazo. Las hipótesis de Searle nos sirven también para preguntarnos si un programa que juega al ajedrez sabe realmente jugar o simplemente sigue unas reglas predefinidas y poco inteligentes. Igual que el hombre que tiene el diccionario de chino no sabe chino y simplemente sigue unas reglas que le vienen indicadas.

La IA ha avanzado mucho en diferentes campos y somos capaces de resolver muchas tareas concretas: jugar al ajedrez, reconocer objetos, resolver problemas matemáticos, traducir textos etc. También somos capaces de crear programas que ‘aprendan’ a resolver ciertas tareas concretas, por ejemplo los filtros bayesianos que instalamos en los lectores de correo electrónico van aprendiendo a detectar los e-mails de spam. El problema es que no sabemos crear un sistema más general, un programa que juega al ajedrez no puede aprender por si solo a traducir textos, reconocer objetos o filtrar correos de spam.

Espero vuestros comentarios acerca de los fallos del contraejemplo de Searle (Hay uno muy evidente). También podéis comenzar a crear un programa que supere el Test de Turing o crear el programa definitivo que sea capaz de aprender cualquier cosa por si solo 😉


Nota: los ejemplos sobre el Test de Turing y el contraejemplo de Searle (Más conocido como la Sala china) han sido adaptados según mi visión a la época actual. Evidentemente en los años 50 no existía Internet y por lo tanto lo de chatear con otra persona no tiene sentido. Originalmente se explicaba todo en base a personas y ordenadores metidas en salas de forma que no se pudiera ver lo que hay dentro. El ‘Juez’ estaba fuera y debía determinar dentro de que sala estaba el ordenador y en cual estaba la persona. En el caso de Searle, una persona que no sabe chino que se mete en una sala con el diccionario de chino (De ahí el nombre de Sala china). El ‘Juez’ está fuera y debe determinar si la persona de dentro de la sala sabe chino.

Más información sobre el Test de Turing
Contraejemplo de Searle en Más que código