Lua: La Elegancia de un Buen Diseño

21 de Abril de 2020, 272 vistas

Hay lenguajes que motivan el descubrimiento y la experimentación (cada cual encuentra los suyos... en mi caso, Logo, Haskell, Scheme, Elm, NetLogo, Julia), y otros que me llevan al hartazgo (como C, C++, Java, Python, R, Javascript,...). Así que la sorpresa de encontrarse con un lenguaje antiguo (ya casi 30 años), pero tan bien construido que a uno le da la sensación de que mucho de lo que ha llegado después ha sido como un retroceso de ideas, deja la sensación de que se abre un nuevo camino que merece la pena ser explorado.

Lua, un lenguaje del que se oye hablar desde hace años, pero que hasta ahora no tuve la ocasión de explorar, ha sido capaz de despertar mi interés por caminos que pensaba cerrados hace tiempo, y más cuando además se descubre que llega desde Brasil y no desde los megacentros habituales.

Etiquetas utilizadas: , ,

Leer más »

NetLogo Wishlist

17 de Abril de 2020, 115 vistas

Como bien saben todos los que me rodean (o han pasado por la experiencia de recibir clases mías), no oculto mi predilección por NetLogo, a pesar de que se aleja de los circuitos profesionales (ni informáticos ni científicos).  

En esta entrada hago un listado de las cosas que echo en falta en NetLogo y que me llevarían a no desprenderme de él para tareas en las que, hasta ahora, ha funcionado mejor que la mayoría, como es ser el lenguaje base en el que doy el curso de introducción a la Inteligencia Artificial.

Etiquetas utilizadas: ,

Variational AutoEncoder

1 de Marzo de 2020, 358 vistas

Los Variational AutoEncoders (VAE) son modelos de aprendizaje que mezclan las redes neuronales con distribuciones de probabilidad. Su principal uso es el de construir modelos generativos que son capaces de producir datos sintéticos que siguen los mismos patrones que los grandes conjuntos de datos de los que se alimentan. Normalmente, se han usado para generar imágenes que asemejan, por ejemplo, características conocidas tales como caras, vehículos, habitáculos, etc. aunque en teoría podrían usarse para la generación de cualquier tipo de dato, siempre y cuando el conjunto de entrenamiento de datos reales sea adecuado (en tamaño y contenido).

Etiquetas utilizadas: , , ,

Algoritmos de Clustering

28 de Noviembre de 2019, 2195 vistas

Un algoritmo de clustering tiene como objetivo agrupar los objetos de un dataset según su similaridad, de forma que los objetos que hay dentro de un grupo (cluster) sean más similares que aquellos que caen en grupos distintos. Para resolver este problema se han desarrollado muchos algoritmos que se diferencian entre sí según qué se entiende por cluster (que, en esencia, viene dado por cómo definimos que dos objetos son más o menos similares) y por la eficiencia computacional a la hora de conseguir la agrupación final. En esta entrada haremos un recorrido por los más habituales de estos algoritmos.

Etiquetas utilizadas: , , , ,

Planificación: Fundamentos (y NetLogo)

13 de Octubre de 2019, 279 vistas

En esta entrada completamos el uso de procedimientos de búsqueda en Espacios de Estados para resolver problemas de Planificación Automática. Veremos algunas generalidades acerca del tipo de problemas que podemos resolver y de las aproximaciones formales que se han creado. También podremos ver cómo se puede implementar en NetLogo un algoritmo sencillo de conversión de un problema de planificación en uno de búsqueda (para usar, por ejemplo, BFS o A*).

Etiquetas utilizadas: , , , , , ,


ALGUNAS ENTRADAS ANTERIORES ... AL AZAR

Fractales

1 de Diciembre de 2013, 4535 vistas

El matemático Benoît Mandelbrot fue el responsable de desarrollar, en 1975, el concepto de fractal, que proviene del vocablo latino fractus (puede traducirse como “quebrado”). El término acuñado por el francés pronto fue aceptado por la comunidad científica e incluso ya forma parte del diccionario de la Real Academia Española.

Etiquetas utilizadas: , ,

Optimización en el espacio de parámetros de un modelo

28 de Diciembre de 2013, 2142 vistas

Uno de los problemas más habituales cuando se construye un modelo para simular un proceso es que, tras haber definido un buen número de parámetros para darle más flexibilidad y generalidad con el fin de abarcar las situaciones más variopintas del proceso, no sabemos qué valores de esos parámetros serán los que puedan generar un comportamiento que resulte interesante. Para resolverlo, la primera tarea que abordamos es recorrer el espacio de parámetros como si fuera un bizcocho, pinchando aquí y allá para ver cómo se comporta el modelo en esos puntos aislados y esperando reconocer qué relación hay entre las zonas exploradas y los comportamientos observados.

Etiquetas utilizadas: , , ,