Lua: La Elegancia de un Buen Diseño

21 de Abril de 2020, 149 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, 67 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, 178 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, 1478 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, 244 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

Teoría Algorítmica de la Información y el juego del GO

15 de Mayo de 2013, 2285 vistas

Un estudio en el que se mezclan el juego del Go, la Teoría Algorítmica de la Información y los algoritmos de Compresión de Imágenes para comparar la complejidad de las partidas en función del nivel de destreza de los jugadores. ¿Hasta qué punto podemos hacer uso de herramientas de computación teórica para comprender mejor el juego de estrategia más complejo de la actualidad?, ¿podrán ayudarnos estas herramientas a generar nuevas metodologías aplicables a los grandes retos de la Inteligencia Artificial?

Etiquetas utilizadas: , , , ,

Fundamentos Matemáticos del Machine Learning (I)

15 de Marzo de 2017, 7127 vistas

El objetivo de la serie de entradas que comienza aquí es el de hacer un repaso por los fundamentos matemáticos que hay detrás del concepto de aprendizaje que nos encontramos habitualmente en áreas tan actuales como el Aprendizaje Estadístico o el Machine Learning (Aprendizaje Automático). Intentaremos presentar un marco base unificado a ambas teorías, de forma que se vea cómo cada una de ellas añade un conjunto de suposiciones adicionales a esta base (y algunas diferencias de enfoque propios de cada disciplina y los investigadores que las componen) e intentaremos, en la medida de lo posible, atacar nuestro objetivo con la ambiciosa pretensión de que el marco sea lo suficientemente general como para abarcar los distintos tipos de aprendizaje que se vienen considerando en la literatura.

En esta entrada presentaremos la motivación del problema de aprendizaje de forma muy general, y daremos el marco matemático (el de espacios de probabilidad) sobre el que montaremos el formalismo necesario para hablar de aprendizaje desde el punto de vista matemático.

Etiquetas utilizadas: , , ,