Inteligencia artificial

Como empezar en la Inteligencia Artificial (Generation5.org)

 

Inteligencia Artificial

 

 

Una de las preguntas más frecuentes que me pregunta la gente es, "¡¿Pordónde empiezo?!". De echo, ¿ por dónde debe empezar un principiante en la IA? Simple - encuentra un campo de la IA que te interese y lee sobre él. La IA es tan amplia que intentar mirar todo lo relacionado con la IA de una sola vez hará atascarse hasta a las personas más entusiastas.

Este ensayo mirará diferentes áreas de la IA e intentará dar pistas sobre que es interesante y que es más pedestre. Las áreas que tocaremos serán juegos, redes neuronales, algoritmos genéticos y programación evolutiva, robótica, y vida artificial.

 ia.jpg

Juegos

Finalmente, después de muchos años dejuegos-de-impresionantes-gráficos-sin-jugabilidad, están apareciendo juegos con gráficos impresionantes pero también con impresionantes inteligencias artificiales. Los modernos shoot-em-up en primera persona como HalfLife, HalfLife:Opposing Forces, Unreal y QuakeIII: Revolution demuestran un impresionante nivel de IA. Otros juegos como ColinMcRae Rally 2.0 están usando modernas técnicas de la IA como redes neuronales para controlar los oponentes dentro del juego. Este es desde luego un buen momento para iniciarse en la IA de los juegos.

Así que, ¿ por dónde empezar? Esto depende en gran cantidad de tu habilidad como programador - si eres bueno podrás enfrentarte a un juego completo por ti mismo, o disfrutar modificando uno ya existente (como uno de los juegos con desarrollo de mods al estilo de Quake). Sea como sea, conocer la programación en un lenguaje 'real' es indispensable - la mayoría de juegos están escritos en C/C++. De cualquier manera, si escribes el juego desde cero, podrás escribirlo en cualquier lenguaje quedesees. Para saber más detalles acerca de dónde empezar, mira en
cómo empezar con la IA de los juegos.

 

Lo Bueno

 

La mejor parte de la IA para juegos es que los efectos son muy visuales y fáciles de entender. No te enfrentas a una lista de número o a un grafo - lo que programas tendrá un efecto directo en como juegas el juego. Esto puede ser muy gratificante si el tiempo se emplea modificando la IA. Es más divertido que el resto de programación de IA por la misma razón -programar, jugar, modificar.

 visto-bueno-288849.jpg

Lo Malo

Necesitas un juego para empezar! La mayoría de proyectos de juegos de IA nunca se completan debido a lo increíblemente duro que es escribir la IA del juego sin escribir el juego en si. Modificar juegos existentes puede ser increiblemente desalentador, y añadir grandes cambios puede duplicar el trabajo - escribir el código y después integrarlo en el

visto_malo.gif

 

juego.

 

Redes Neuronales El campo de las redes Neuronales Artificiales intenta utilizar estructuras de datos diseñadas para imitar las neuronas dentro del cerebro para realizar reconocimiento y clasificación de datos. Pueden ser (y han sido) usados para una gran cantidad de tareas diferentes: predecir el mercado de acciones, extraer datos de imagen a partir de información del radar, controlar coches, robots - y mucho más.

Lo que está claro de las redes neuronales es que aprenden. Son básicamente funciones de mapeado de lujo: realizarán mapeados de un grupo de vectores sobre otro, pero aprender a realizar este mapeado por ellas mismas, a través de aprendizaje supervisado o no supervisado. Empezar con las redes neuronales no es fácil ya que necesitan un fuerte conocimiento de la teoría, requiriendo un cierto grado de conocimiento algebraico e incluso cálculo si realmente deseas entender como funcionan los algoritmos usados.

Generation5 tiene una series de ensayos que están dirigidos a introducir las redes neuronales lentamente: primero cubre el tema de los perceptrones (la red neuronal más sencilla), entonces detallando perceptrones multicapa y el algoritmo de propagación hacia atrás (back-propagation).Si quieres empezar con redes neuronales, prepárate para leer y programar mucho ya que no son fáciles de entender sin ponerse "manos a la obra".

Las redes neuronales son muy útiles en IA y pueden ser aplicadas en todas partes. Crear una buena red neuronal es una actividad muy gratificante. Pueden ser usadas en áreas como procesamiento de sonido e imagen o incluso controladores de robots - haciendo más interesantes la investigación y los resultados.

Las redes neuronales quizá no sean el mejor lugar por donde empezar ya que son un poco duras- académica y algorítmicamente hablando. La mayoría de redes neuronales son programas muy difíciles ya que no hay guías ni tipos definidos de redes neuronales para ciertos problemas. Hay tantos tipos de redes neuronales como problemas!


Algoritmos Genéticos y Programación Evolutiva AGs y programación evolutiva son campos muy interesantes, si las ideas de la evolución y la genética llaman tu atención. Gente con conocimientos en biología encontrarán la programación evolutiva muy estimulante, ya que toma mucha teoría de la biología/genética/biología teórica.

Los algoritmos genéticos básicamente usan el poder de la evolución y la genética para evolucionar soluciones a un problema. Las soluciones a un problema se codifican en genotipos, que son entonces manipulados. Se comprueba la idoneidad de cada genotipo y los mejores reproducen entre ellos para producir la siguientegeneración. Esta secuencia se repite hasta que se descubre la solución o la mejor aproximación posible.

Los algoritmos genéticos son un subgrupo de un campo mucho más amplio: programación evolutiva. La programación evolutiva agrega otras áreas de la computación inspiradas en la biología como la programación genética (evolución de algoritmos para resolver un problema). La programación evolutiva se usa habitualmente junto con otras áreas de la IA como las redes neuronales. Los AGs a veces se usan para evolucionar la arquitectura de redes neuronales o sus pesos, o son usadas para afinar parámetros en máquinas de estados finitos (en juegos).

Empezar con los algoritmos genéticos es relativamente fácil ya que la teoría es fácil de comprender para cualquiera que estudió bilogía en secundaria. Echad unvistazo en Generation5 essays para más información [editar] imagen:generation5.yes.gifLo Bueno

Es fácil empezar con ello ya que la teoría básica es fácil de entender para la mayoría y la programación no es nada compleja. Los algoritmos genéticos son fáciles de aplicar a muchos problemas, y son un buen tema de investigación para aquellos a quienes le interesa. Los fenómenos biológicos como la coevolución, la relación genotipo/fenotipo y el elitismo puede ser interesante incorporarlos en tus algoritmos genéticos y observar como afectan a su rendimiento. [editar] imagen:generation5.no.gifLo Malo

Es algo aburrido trabajar con ellos, muchos algoritmos genéticos lanzan grandes listas de números.


[editar] Robótica Mi favorito personal, la robótica es casi lo mejor de los dos mundos ya que consigues el "pulcro-ingenioso" factor de la Inteligencia Artificial unido con el realismo físico del robot - ie, es algo que puedes tocar, construir e interaccionar con ello.

La robótica comercial está empezando a despegar. SONY hizo un gran salto hacia delante en la industria del entretenimiento con el lanzamiento de SonyERS-110/111 AIBO(dibujo a la derecha). Ahora con el nuevo AIBOERS-210 y su próximo compañero bípedorobótico el SDR (Sony DreamRobot), es fácil ver que muchas familias pronto van a tener un pequeño compañero mecánico!

La robótica es un buen campo por el que preocuparse ya que escala desde lo más simples robots programables hasta los ultra-complicados robots de investigación. Si deseas empezar con la robótica echa un vistazo a cómo empezar en la robótica. [editar] imagen:generation5.yes.gifLo Bueno

En mi opinión, esta es el área que más recompensa: si disfrutas construyendo algo y ver como funciona, entonces ser capaz de programarlo para que haga cosas interesantes - la robótica es definitivamente paratí! Es divertido jugar con robots, divertido programarlos y pueden ser prácticos y entretenidos. Podrás fácilmente aplicar cualquiera de los otros paradigmas de la IA como las redes neuronales o los algoritmos genéticos en la programación. [editar] imagen:generation5.no.gifLo Malo

Requiere formación en electrónica. Esto es bueno y malo.Si nunca has soldado algo antes, pero quieres saltar a hacer unos robots alucinantes, las posibilidades son bastante altas que te veas limitado en lo que puedes conseguir. Si te tomas el tiempo para aprender y entender la teoría eléctrica tras los robots que construyes puede convertirse en una ventaja insustituible. La robótica también es cara comparada con las otras áreas (que son mucho más gratuitas, ya que puedes conseguir compiladores gratuitos para la mayoría de lenguajes).


 Vida Artificial

La Vida Artificial es un campo que avanza rápidamente dedicado a simular la vida en un ordenador. Puede ser vida en el sentido más estricto (imitando fenómenos biológicos como la digestión o el sistema nervioso) o, más comúnmente, consiste en abstracciones de la vida. Una gran cantidad de vida artificial se produce en forma de autómatas celulares. Los AC están normalmente organizados en un plano 2D y gobernados por reglas muy sencillas, de esas reglas surgen algunos comportamientos increíblemente complejos.

vida_sibn.jpg

Por ejemplo , el juego de la vida de Conway, uno de los primeros autómatas celulares fuertemente estructurados es gobernado por 2 simples reglas. Una célula no puede 'vivir' si hay más de tres o menos de dos células en las 8 células adyacentes y si el número de células alrededor de una célula muerta es exactamente tres, nace una nuevacélula. Puedes creerlo o no, pero algunos comportamientos increiblemente complejos emergen - de hecho, se ha probado que el juegode la vida de Conway puede ser configurado para actuar como una Máquina de Turing, haciéndola en teoría capaz de calcular cualquier cosa que puede calcular un ordenador actual!

El mejor consejo para empezar en la Vida artificial es bajarse algunos programasde AC como el MCell y experimentar. Entonces busca experimentos de Vida artificial más avanzados como TIERRA, antes de intentar programar algo por ti mismo.

Puede ser muy interesante, ya que pueden encontrarse gran cantidad de paralelismos entre las abstracciones de la vida y la vida misma. Los efectos pueden ser muy visuales, especialmente con cosas como los Boids(comportamiento de grupos) o autómatas celulares complejos. Son sencillos de programar.

No es demasiado práctica. La Vida artificial no es el tipo de cosa que puedes aplicar a un problema. La Vida artificial se usa sobre todo para estudio e investigación.


Filosofía

La filosofía se filtra en cualquier campo si se le da la oportunidad, pero es una parte intrínseca en la Inteligencia Artificial. Preguntas como "¿Puedenpensar los ordenadores?","¿Es el pensamiento simulado auténtico pensamiento?", "¿Deben tener derechos los ordenadores sentientes?", así como preguntas más fundamentales como el problema del cuerpo/mente están fuertemente ligados a la IA. La filosofía de la IA ha sido potenciada recientemente debido a una serie de películas de alto presupuesto de Hollywood (The Matrix, Inteligencia Artificial). Internet tiene cientos de páginas con información sobre varios temas de Filosofía/IA - intenta buscar gente como John Searle (La Habitación China), Daniel Dennett y David Chalmers o conceptos como dualismo o funcionalismo computacional.

 

Si adoras sentarte y pensar, no puedes conseguir nada mejor que la filosofía de la mente. La filosofía puede unir otros campos que disfrutes: lingüística, neurociencia, ética y diseño de software por nombrar algunos. [editar] imagen:generation5.no.gifLo Malo

Si adoras pensar, no hay nada malo. Leer toda la teoría puede ser algo aburrido para algunos, especialmente dada la notoria capacidad de los filósofos en convertirse en horribles autores!


Conclusiones

Esta lista no es de ninguna manera exhaustiva, hay: programación desatisfacción de restricciones, reconocimiento del habla e imagen, lógica difusa, datamining y muchas otras áreas. Lee por ahí páginascomo Generation5 para encontrar algo que puedas encontrar suficientemente interesante para leer durante un par de semanas, experimenta con diferentestécnicas deprogramación y lenguajes - la IA es tan amplia que estásobligado a encontrar algo interesante.


Article content copyright (C) James Matthews, 2002. All content copyright (C) 1998-2004, Generation5.

Obtenido de "http://vidaartificial.com/index.php?title=Como_empezar_en_la_Inteligencia_Artificial_%28Generation5.org%29"

|

Comentarios

Escribe un comentario

¿Quieres usar tu foto? - Inicia tu sesión o Regístrate gratis »
Comentarios de este artículo en RSS
Cerrar