Introducción a la Inteligencia Artificial

B

#30

Ahora estoy de mudanza, me piro a otro país xD, de Holanda a Francia. Pasaré un par de semanas parado en este tema.

Cómo también va dirijido mi blog a cosas de robótica, no voy a enfocarlo a gaming, si no a IA sin más. La primera parte va a ser dedicado a comportamientos colectivos en tiempo real (hay mucho dónde rascar aquí).

Todos los ejemplos están escritos en C++ utilizando SFML (renderizado más que nada) y Eigen (álgebra). El código está escrito para que sea muy legible, y más que C++ es pseudo código de lo explícito que es xD. La idea es introducir herramientas para que el usuario sepa lo que tiene entre manos y lo entienda sobre el papel. La implementación es algo que si entiendes la herramienta, te debe de dar igual C++, C#, Python o lo que sea, ya que al final son ecuaciones matemáticas.

En unas cuatro horas he organizado ya lo siguiente:

Tema 0 (Introducción y preliminares): Exponer que temas voy a tratar en detalle (una vez tienes el Tema 0, puedes saltar a otro cualquiera sin tener que ir uno a uno). Introducir la notación empleada y modelos. Ejemplo básico en C++ que servirá cómo punto de partida para los demas temas.

Tema 1 (Flocking) : El clásico que se utiliza y ve en todas partes, de 1986 http://www.red3d.com/cwr/boids/ . Modelo poderoso pero con limitaciones. Sirve para ilustrar cómo escribir matemáticamente conceptos cómo cohesión por ejemplo.

Temas que ya veré cómo iré introduciendo: Control de formaciones, movimiento de formaciones, captura y órbita a un target, escalado de formaciones, división de formaciones, creación de "opiniones y líderes", etc, etc.

5
MTX_Anubis

Aunque no haya contestado al hilo es algo que sigo muy de cerca. La robotica y la IA me gustan mucho Seuroncete. Por cierto, si al final vas a escribirlo en tu blog, ponlo en #1 que será más cómodo xD

Y cuando termines piensa en editarlo en un pdf y al menos poner y solicitar donaciones o venderlo con contenido algo más avanzado y mejor explayado, solo una idea.

Y buen trabajo ;)

1 1 respuesta
B

#32

Jaja, el contenido estará en el blog y haré un post/guía en el foro con los correspondientes links.

Según vea cuanto tiempo me lleva y repercusión, ya veré si pido aunque sea donaciones para continuar. De momento es porque me gusta y apetece xD.

1 mes después
B

Acabo de editar #1 con la información del curso que estoy escribiendo. De momento, la lección 0 ya está online, ya me vais comentando.

3
B

Echo en falta de la web un "Follow" o suscripción via email. Como la web es worpress puedes meterle un plugin y listo.

He visto las primeras formulas y se me ha caído el mundo a los píes :(. Hice el bachiller técnico pero física y matemáticas las pasé raspando. Me va a costar entender eso.

A ver que tal va saliendo el blog.

1 respuesta
B

#35

Ojo, tengo que aprender a poner un plugin cómo el que comentas :P, luego lo miro.

Las fórmulas son necesarias, pero hay que distinguir "dos niveles". Saber leerlas (cómo si fuera un lenguaje de programación u otro idioma) para poder entenderlas y luego ya empezar a operar, comprenderlas más en detalle y a fondo etc. Este segundo nivel es ya más para desarrollo y poder controlar que lo que se escribe es correcto.

Si no estás familiarizado con la notación o alguna expresión, tú pregunta.

B

Está me rompe los esquemas :D
Esta formula me supera

Más por el hecho de desconocer parte de su nomenclatura que la de hallar la solución aunque olvidé completamente como resolver integrales.

2 respuestas
VoPrak

#37 Te va a contestar perfectamente SeuroN, pero no le tengas miedo a las integrales. Recuerda que si son definidas, puedes meterla en la calculadora y listo. Esa por ejemplo, va de un tiempo inicial (t0) a la suma de ese tiempo inicial con un incremento del tiempo (t0 + Incremento de t). En esas variables irían números concretos que después al meterlos en una calculadora normalita, te da un resultado.

Si me he equivocado díganmelo que edito y ya está :)

1 respuesta
B

#37

Si miras (1) tenemos que la derivada de la posición es igual a la acción de control (la interpretación física es que la velocidad sería igual a la acción de control, es decir, tenemos control absoluto sobre la velocidad según este modelo).

Aplicamos la operación inversa a la derivada en ambos lados de la ecuación, esto es, la integral.

A la izquierda la integral "anularía" la derivada y me quedaría p(t) (Al ser su operación inversa es cómo decir, tengo 5 p (derivada) y lo multiplico por 1/5 (operación inversa, la integral), el resultado es p) .

A la derecha me queda la integral de u(t).

Lo que yo quiero saber no es p(t) (aquí t es todo el tiempo desde -inf a +inf), si no que empezando en p(t0) (dónde t0 es un instante cualquiera, por ejemplo el segundo 0) y sabiendo cuanto vale u(t0), cuanto valdría p(t0 + dt). Existen muchos algoritmos numéricos para evaluar aproximadamente esa integral. Es lo que dice #38, puedes meterlo en una calculadora!
Uno muy popular, especialmente por su simplicidad, es Euler , que viene a decir

p(t0 + dt) \approx p(t0) + u(t0)*dt,

Físicamente puedes dar la siguiente interpretación, la posición en el instante p(t0 + dt), es la posición en p(t0) más "velocidad * tiempo", que seguramente te suene más xD.

1
B

Más o menos lo voy pillando aunque tengo que ponerme más a fondo sino, en 2 días se me olvida :/

19 días después
B

He subido lección 1: Flocking .

Cuando tenga otra vez tiempo preparé la siguiente, cómo hacer que un agente siga una trayectoria dada (contendrá un bonus track de cómo generar tales trayectorias xD).

2
willy_chaos

#1 La verdad, le echare un vistazo puesto que lo que nos han enseñado en la carrera de IA, fue la historia de la IA ... y eso que supuestamente teniamos a una profesora que dominaba tela ...

Si luego lo juntas con Data mining ya genial, porque mas de lo mismo... lo que nos han enseñado es a usar funciones de python como PCA , TruncateSVD etc...

Merci!

1 respuesta
B

#42

Sí. Lo que veo es que existe un gap.

Hay cursos realmente buenos, con su fundamento teórico y más dificiles de seguir, pero que es cómo debería ser un curso universitario.

Moralla en internet y demás sitios que te dicen, pulsa aquí, llama a esta función, instala no se qué y voilá! Vamos que no aprendes nada xD

Yo intento ser riguroso en el sentido de enseñar la base, omitiendo demostraciones y formalidades pero sí extrayendo el significado físico/matemático de la teoría. Y por supuesto, nada de "magia" de usa esta función en python o instala el toolbox de Matlab y enseñarte a ser una máquina... que para eso ya tenemos máquinas xD.

La gracia está en enseñar que todas esa "magia" realmente no es para tanto, que si tienes un mínimo de formación y ganas es accesible, y puedes implementar cosas desde cero en caso de que lo necesites.

B

Un vídeo, aunque offtopic con respecto al diseño de vídeo juegos, pero bastante interesante sobre el tema :P

C

Siempre que sea IA en videojuegos mira, el problema sería llegar a crear una mente que piense libremente...

3 meses después
B

Aunque tengo el roadmap escrito la verdad es que tengo la guía un tanto dejada.... a finales de septiembre le meteré otro empujón y subiré dos o tres lecciones más. Entre ellas, un algoritmo que he desarrollado para formaciones.

Funciona bastante de puta madre con aviones de verdad xD, así que aplicado a la IA de juegos debería ir mucho mejor y tener más posibilidades. Aquí os dejo el vídeo.

1

Usuarios habituales

Tags