7
Entrevista al Dr. Ángel Kuri Morales del CIC-IPN Algoritmos Genéticos: Herramientas de Inteligencia Artificial con su Propia Evolución Verónica Hernández López Los algoritmos genéticos son un resultado de los avances de la computación y de la genética. Son herramientas de la inteligencia artificial porque aprenden simulando parcialmente los mecanismos de la evolución. Su característica principal es su eficacia para optimizar casi cualquier problema. En el Laboratorio de Inteligencia Artificial del Centro de Investigación en Computación (CIC) del Instituto Politécnico Nacional (IPN) se desarrolla el proyecto Reconocimiento de patrones utilizando un algoritmo genético universal, a cargo del doctor Ángel Kuri Morales, quien presentó recientemente su libro “A Comprehensive Approach to Genetic Algorithms in Optimization and Learning” (“Enfoque Integral de Algoritmos Genéticos en la Optimización y Aprendizaje”), que es parte de la colección Ciencia de la Computación que editan conjuntamente el CIC y la Dirección de Publicaciones y Materiales Educativos del IPN. El investigador también se desempeña como subdirector de Investigación Aplicada del CIC y desde su tesis doctoral (“Genetic Automata and Information System Losslessness”, 1985-1987) se dedica a este campo, aunque admite que en aquel entonces era tan nuevo que ni siquiera había una amplia difusión de los libros acerca del tema. No obstante, trabajó sobre algunas cuestiones ya existentes - pero que desconocía- e inventó otras, ahora incluidas en su publicación. Computación Evolutiva Los algoritmos genéticos son parte de la Computación Evolutiva, que según explicó el doctor Kuri “simula el proceso de selección natural desde un punto de vista neodarwiniano. Esto es, cuando Darwin elaboró su teoría de la evolución, se dio cuenta que las especies evolucionaban poco a poco. Eso lo hizo concebir que la diferenciación de las especies se daba por pequeños cambios accidentales que, vistos después de mucho tiempo, parecían tener un propósito específico. “En su época fue muy revolucionario porque iba contra las enseñanzas bíblicas, que señalaban que la creación se hizo por obra de Dios en siete días. Darwin analizó las características de los antecesores de las especies e infirió que se trataba de un proceso evolutivo. En esa época no se conocía el mecanismo de la herencia desde el punto de vista molecular. Este se descubrió mucho después, en los años 50 de este siglo, cuando Watson y Crick encontraron la forma helicoidal del DNA. Después de esto, se entendió mejor que los cambios ocurrían porque en el proceso de copia de la información -contenida en los núcleos de las células- a veces hay errores. Unos se deben a que el mecanismo de copia no es perfecto y otros a que hay agentes exógenos que producen cambios en los genes.

Algoritmos Genéticos: Herramientas de Inteligencia Artificial con su Propia Evolución

Embed Size (px)

DESCRIPTION

Ciencia

Citation preview

Page 1: Algoritmos Genéticos: Herramientas de Inteligencia Artificial con su Propia Evolución

Entrevista al Dr. Ángel Kuri Morales del CIC-IPN

Algoritmos Genéticos: Herramientas de Inteligencia Artificialcon su Propia Evolución

Verónica Hernández López

Los algoritmos genéticos son un resultado de los avances de la computación y dela genética. Son herramientas de la inteligencia artificial porque aprendensimulando parcialmente los mecanismos de la evolución. Su característicaprincipal es su eficacia para optimizar casi cualquier problema.En el Laboratorio de Inteligencia Artificial del Centro de Investigación enComputación (CIC) del Instituto Politécnico Nacional (IPN) se desarrolla elproyecto Reconocimiento de patrones utilizando un algoritmo genético universal, acargo del doctor Ángel Kuri Morales, quien presentó recientemente su libro “AComprehensive Approach to Genetic Algorithms in Optimization and Learning”(“Enfoque Integral de Algoritmos Genéticos en la Optimización y Aprendizaje”),que es parte de la colección Ciencia de la Computación que editan conjuntamenteel CIC y la Dirección de Publicaciones y Materiales Educativos del IPN.El investigador también se desempeña como subdirector de Investigación Aplicadadel CIC y desde su tesis doctoral (“Genetic Automata and Information SystemLosslessness”, 1985-1987) se dedica a este campo, aunque admite que en aquelentonces era tan nuevo que ni siquiera había una amplia difusión de los librosacerca del tema. No obstante, trabajó sobre algunas cuestiones ya existentes -pero que desconocía- e inventó otras, ahora incluidas en su publicación.

Computación EvolutivaLos algoritmos genéticos son parte de la Computación Evolutiva, que segúnexplicó el doctor Kuri “simula el proceso de selección natural desde un punto devista neodarwiniano. Esto es, cuando Darwin elaboró su teoría de la evolución, sedio cuenta que las especies evolucionaban poco a poco. Eso lo hizo concebir quela diferenciación de las especies se daba por pequeños cambios accidentales que,vistos después de mucho tiempo, parecían tener un propósito específico.“En su época fue muy revolucionario porque iba contra las enseñanzas bíblicas,que señalaban que la creación se hizo por obra de Dios en siete días. Darwinanalizó las características de los antecesores de las especies e infirió que setrataba de un proceso evolutivo. En esa época no se conocía el mecanismo de laherencia desde el punto de vista molecular. Este se descubrió mucho después, enlos años 50 de este siglo, cuando Watson y Crick encontraron la forma helicoidaldel DNA. Después de esto, se entendió mejor que los cambios ocurrían porque enel proceso de copia de la información -contenida en los núcleos de las células- aveces hay errores. Unos se deben a que el mecanismo de copia no es perfecto yotros a que hay agentes exógenos que producen cambios en los genes.

Page 2: Algoritmos Genéticos: Herramientas de Inteligencia Artificial con su Propia Evolución

“Finalmente, la probabilidad de falla en el proceso de copia de la informacióngenética es bajísima. Lo que llama la atención no es que haya errores sino quesean tan pocos. Si nosotros tomamos la perspectiva de que un ser vivo es larespuesta a los problemas que plantea el medio ambiente, aquel es un diseño dela naturaleza que pretende resolver los problemas de su entorno. Un ejemplo es eldel cuerpo de los pingüinos: el volumen de estos animales les permite nadar conmuy baja resistencia y a la vez almacenar la grasa en su cuerpo. Este parece serel mejor diseño. Pareciera como si un ingeniero lo hubiera creado. Pero tal vez elmás interesante de todos los diseños lo constituyan los seres humanos, quienestienen en su cerebro una caja de simulación que les permite representar eventosque todavía no suceden. Eso es lo que le otorga su principal ventaja evolutiva alser pensante. A diferencia de cualquier otro animal, puede tomar acciones anteeventos del futuro.“Más tarde, a alguien se le ocurrió que si simulaba eso en la computadora podíadiseñar aplicaciones en, por ejemplo, la ingeniería, la economía, la toma dedecisiones financieras, etcétera. Un algoritmo genético trabaja de esa forma, conconjuntos de individuos y propone soluciones distintas. Simulamos que larepresentación, frecuentemente binaria, corresponde a los genes del individuo, suADN, y su interpretación –como números, por ejemplo- a las característicasobservables –el color de sus ojos, su estatura, etcétera. A los individuos, losdescribimos como cadenas de números y un conjunto de éstas forman unapoblación. Así se generan infinidad de individuos y representamos lo que hace lanaturaleza. Luego, observamos las características que constituyen a las mejoressoluciones y calificamos a los individuos –de manera análoga a la forma en que anaturaleza “califica” a los individuos más aptos permitiéndoles sobrevivir conmayor probabilidad. De la población escogemos a los individuos mássobresalientes y seleccionamos un subconjunto de ellos. De esta forma imitamosel procedimiento de selección natural.“Después la naturaleza creó el sexo. El sexo es un invento maravilloso de laevolución, a través del cual los genes de ambos padres se combinan pararápidamente privilegiar las características que son más adecuadas para que elindividuo sobreviva en su entorno. Si analizamos la evolución de los seres vivos,durante la mayor parte de su historia los organismos fueron asexuales yevolucionaban lentamente. Cuando apareció el sexo la evolución se hizo muchomás rápida. En computación hacemos lo mismo. De los individuos tomamos unacantidad determinada de características que van a ser del padre y otras tantas dela madre y se intercambian, de tal suerte que estamos haciendo lo mismo que losseres vivos. Nosotros tenemos 50% de la madre y el otro 50 del padre, perosomos distintos de los dos. Eso también se hace con algoritmos genéticos.“Finalmente, igual que en la naturaleza, se consideran las mutaciones. Contamoscon individuos nuevos con las características de los mejores, pero mezclados yademás con ciertas mutaciones para explorar nuevas características. En lacomputadora tenemos la ventaja de que podemos hacer eso varias miles omillones de veces por segundo. Lo que a la naturaleza le toma millones de años,nosotros lo hacemos en unos segundos. El resultado es que tengo una poblaciónde individuos y entre ellos, uno va a ser el mejor. Como por arte de magiaresolvemos el problema de la manera más económica posible porque en cada

Page 3: Algoritmos Genéticos: Herramientas de Inteligencia Artificial con su Propia Evolución

generación hacemos un proceso de selección, cruzamiento y mutación, parafinalmente encontrar al mejor individuo.“Por ejemplo, en el CIC, un estudiante de maestría hizo su tesis sobre el tema delas estructuras para construcción utilizando algoritmos genéticos y encontró queson casi 40% más baratas de las que se diseñan sin tomar en cuenta a éstosúltimos”.

Todo Empezó en los 60…¿Desde cuándo se usan los algoritmos genéticos? ¿Desde cuándo existen?Al respecto, el doctor Kuri refirió: “En los 60, dos investigadores alemanes-Shwefel y Rechenberg- inventaron las estrategias evolutivas, con las quediseñaron elementos de avión. Ellos trabajaron la evolución, pero sin tomar enconsideración la parte genética, sin hacer mezclas de ese tipo. Simple ysencillamente tomaron en cuenta la herencia y la mutación. Tuvieron mucho éxitopero como su trabajo tenía implicaciones militares, se clasificó la tecnología y nose alentó la publicación del tema. Una década después, el estadounidense JohnHolland se aplicó a la misma idea, pero sí consideró la parte genética. Fueprecisamente él quien los bautizó como algoritmos genéticos.“El auge de esta técnica empezó a principios de los 80 y realmente se reconociócomo una cuestión muy útil a principios de los 90. A partir de entonces ha tenidouna explosión fantástica; según el investigador mexicano Carlos Coello sepublican alrededor de 100 artículos diarios sobre el tema. Parece exagerado, peroquiere decir que muchísima gente se dedica a esto”.

Sí Funcionan, pero ¿Siempre?El investigador politécnico, cuya especialidad es en electrónica digital, diseñológico, arquitectura de máquinas, microprocesadores, sistemas de telecomunica-ciones digitales y, por supuesto, en algoritmos genéticos y su aplicación a lainteligencia artificial, señaló que los científicos están convencidos de que losalgoritmos genéticos sí funcionan. Ejemplos existen en diversos países del mundoy en México. Sin embargo, argumentó que es necesario saber en qué casostrabajan y cómo hacer para que siempre sean funcionales.“Necesitamos detectar qué problemas hay en este sistema evolutivo para luegotratar de corregirlos. Como gente de computación, me interesa dar con unprograma que sea aplicable a la gran mayoría de los problemas. Así tiene que ser;no puedo ofrecer un sistema que a veces realice bien su función y otras no.“Los algoritmos genéticos se catalogan dentro de las herramientas de lainteligencia artificial porque el algoritmo aprende. Pero, hay que quitarse de lamente el significado antropocéntrico que se tiene de la palabra “aprender”: el deabrir un libro y estudiar. La naturaleza aprende, eso es la evolución. Nosotrossomos un producto muy acabado de un aprendizaje de muchos millones de años.Así lo hace un algoritmo genético: aprende simulando la evolución. Claro que esuna simulación parcial, ya que hay muchos elementos no considerados porque noson necesarios ni útiles en el presente contexto.“Tal es el caso de las cadenas genéticas que son diploides. Esto es, cadenasdobles que permiten que los caracteres llamados recesivos se manifiesten en elindividuo solo si ambos progenitores los presentan. ¿Para qué le sirve eso a la

Page 4: Algoritmos Genéticos: Herramientas de Inteligencia Artificial con su Propia Evolución

naturaleza? para que aquellas cosas que fueron buenas en algún momento parala especie, no se olviden. No obstante, esto en algoritmos genéticos no se usanormalmente porque no lo necesitamos. A nosotros no nos interesa recordar loque sucedió con las anteriores generaciones porque en la computadora puedotrabajar con 100 millones de generaciones en tiempos cortos”.

Sus Aplicaciones son muy VastasLos algoritmos genéticos han sido aplicados con éxito en infinidad de problemas,actuando como un proceso de cómputo que emula la forma de proceder de laevolución genética y opera sobre una población de individuos que representan lassoluciones potenciales a un determinado problema. Al respecto, el doctor Kuripuntualizó: “Los algoritmos genéticos son herramientas para optimizar casicualquier problema, ya que éstos pueden trabajar con base en la descripción delmedio ambiente, lo cual permite resolver muchos problemas de optimización.“Una de las áreas donde se aplican es en el aprendizaje automático. Eninteligencia artificial se conocen como sistemas expertos o programas para laresolución de problemas a los que se cuestiona sobre lo qué hay que hacer y darespuestas. Hay ejemplos de sistemas expertos, por ejemplo, en medicina,abogacía, etc. La mayor parte de los sistemas expertos no incorporan todas lasreglas ni todo el conocimiento. Queremos que nuevas reglas se vayandescubriendo ¿y cómo las descubrimos? con algoritmos genéticos”.El doctor Kuri ha publicado cerca de 18 trabajos respecto a los algoritmosgenéticos. Uno de los primeros fue para hacer modelación de sistemaseconómicos y predicciones en la economía mexicana: “Aunque los sistemaseconómicos son caóticos -no existen reglas claras para ellos- sólo exhiben esacaracterística caótica temporalmente. Hay segmentos de tiempo donde sí secomportan de manera más o menos razonable. Por ello, es posible hacer análisisen períodos de estabilidad y lograr predicciones.“Otro de los campos en los que opera esta herramienta es en el reconocimiento deformas, algo difícil y complicado para la computadora. Un estudiante del CIC estáhaciendo su doctorado sobre algoritmos genéticos, lo cual lo está conduciendo aresolver un problema de reconocimiento de rostros.“Por otra parte, tenemos en las telecomunicaciones un ámbito más sofisticado enel que también son aplicables. Cuando enviamos información de un continente aotro utilizamos satélites que funcionan como espejos. Esto es así porque lasseñales de alta frecuencia atraviesan la ionosfera y hay que reflejarlas. Poner unsatélite en órbita es muy costoso, por lo que es importante optimizar el uso de loscanales de comunicación. Si quiero hacer un uso eficiente de éstos, envíoinformación y no solamente datos. Aunque en realidad mando los dos, busco quelos últimos vayan plenos de información. La compresión de datos se puederealizar con los algoritmos genéticos, ya que éstos aprenden la estructura de losmensajes y me permiten transmitir más información por el mismo canal.“Otro problema es que en Internet, las imágenes tardan en llegar porque lainformación no se comprime al máximo. Podríamos usar algoritmos genéticos paracomprimirla del lado del transmisor y descomprimirla de lado del receptor. Ustedvería que transferencia de imágenes es mucho más rápida. En eso se estátrabajando.

Page 5: Algoritmos Genéticos: Herramientas de Inteligencia Artificial con su Propia Evolución

“Otra cuestión que se usa mucho en computación son las redes neuronales quepretenden simular la estructura del cerebro. Es un mecanismo interesante queaprende también, pero hay que entrenarlo. A las redes neuronales puedenentrenarlas los algoritmos genéticos para que aprendan mejor. Así hacemosinteligencia artificial, pero no directamente. Las redes neuronales se usan en elsector financiero, en análisis de auditorías o en análisis de riesgo financiero, porejemplo. Pero su desempeño es mejor cuando las entrenan los algoritmosgenéticos.

También Tienen Limitaciones…Sin embargo, el doctor Kuri admitió que: “Los algoritmos genéticos no son unapanacea. Aunque los casos en los que no funcionan bien son pocos es muyimportante identificar cuáles son sus limitaciones y para lograr esto hay queentenderlos.“Cuando los algoritmos genéticos encuentran las soluciones lo hacen muyrápidamente y en problemas muy complicados, pero se parecen a los humanos enque no necesariamente hallan cuál es la mejor. ¿Qué hacemos nosotros?Probablemente tomamos la decisión más rápida o lo que más se aproxima a lomejor que pudimos haber hecho. Ese es el caso de los algoritmos genéticos; noencuentran siempre la mejor solución ¿cómo sabemos cuál es la mejor soluciónen un caso inesperado? Generalmente no lo sabemos, pero sí podemos encontraruna suficientemente buena. Así sucede con el algoritmo genético, que rara vez noencuentra una solución cercana a lo óptimo”.Otro aspecto que interviene en el funcionamiento de los algoritmos genéticos,indicó el investigador del CIC es el de los problemas “engañosos”. Hayinformación en los genes que pueden llevar al algoritmo hacia una soluciónerrónea. El algoritmo puede engañarse, es decir, el algoritmo “cree” que va muybien porque que cierta información genética lo lleva hacia un destino equivocado.De ahí la tarea de los especialistas para que esto no pase. En los ejemplos que hemencionado no hay engaño. Son problemas muy específicos aquellos en dondese presenta esta situación. No son problemas que ocurran frecuentemente en lavida real”. Además, el doctor Kuri explicó que hay muchas variaciones dealgoritmos genéticos. “Por ejemplo, con el elitismo hacemos que el mejorindividuo de toda la progenie nunca muera. En algoritmos genéticos esto se puedehacer; en la naturaleza no. O puedo conservar al mejor individuo y hacercruzamientos “pangenéticos”. Esto es, se toma un padre y se hace que tengamiles de descendientes. De manera normal, eso no se lleva a cabo porquetípicamente se toman parejas. Pero yo puedo encontrar a un individuo queesparza su herencia genética en toda la población. El que haya muchas varianteses lo que hace interesante el estudio de los algoritmos genéticos. Podemos hacerque las poblaciones sean grandes o chicas, que se reproduzcan mucho o poco,que muten en gran o poca cantidad”.

Enfoque Integral y el Trabajo del CICRespecto a su especialidad, el doctor Kuri publicó recientemente el libro “AComprehensive Approach to Genetic Algorithms in Optimization and Learning”

Page 6: Algoritmos Genéticos: Herramientas de Inteligencia Artificial con su Propia Evolución

(“Enfoque Integral de Algoritmos Genéticos en la Optimización y Aprendizaje”),dividido en dos volúmenes. El primero que se presentó es acerca de lo qué sonlos algoritmos genéticos, cómo y por qué funcionan: “La teoría matemática de losalgoritmos genéticos es muy incipiente porque se trata de un fenómeno muycomplejo, al igual que los de la herencia y la selección natural; además de ser muycomplicada porque es probabilística. Para su manejo adecuado, es convenienteconocer una serie de disciplinas como la estadística, la teoría de la información yde la computabilidad, entre otras”.Su autor dijo que con esta publicación da al lector la posibilidad de encontrar loque necesita para entender lo que son los algoritmos genéticos, aunque no sepaestadística o teoría de la información; y está dirigida a los estudiantes de losúltimos semestres de la carrera de computación y de los primeros años deposgrado.Respecto al trabajo que se realiza en México en este campo, el doctor Kuriexpresó que en las diferentes instituciones de educación superior se llevan a caboinvestigaciones, algunas en la cuestión práctica, otras en la teórica. Por ejemplo,en el ITAM, el Tecnológico de Monterrey, en Nuevo León; la Universidad deSonora, la UNAM y por supuesto el IPN.Paralelamente, la ingeniería nacional está aplicando estas herramientas, pero engeneral “los empresarios mexicanos son muy cautelosos y tienden a noarriesgarse con tecnologías de vanguardia. Primero, porque en México se diseñapoco y después porque algunos empresarios prefieren a comprar cosas yaprobadas aunque hayan sido diseñadas con otro tipo de usuarios en mente: sonconsumidores, más que generadores, de tecnología.“El CIC tiene como meta producir nuestra propia ciencia y como consecuencianuestra propia tecnología. Solamente así podemos ser independientes. Mientrasno seamos dueños de nuestra tecnología, difícilmente podemos aspirar a unaverdadera independencia. Si usted ve la historia, en todos los casos, las culturashegemónicas son dueñas de la tecnología: en el siglo pasado, por ejemplo, losingleses y en éste, los americanos. Toma tiempo. Este es un esfuerzo a medianoplazo. Por decreto no podemos cambiar la mentalidad de la sociedad mexicana,ésta y el grupo científico tienen que convencerse de que pueden asumir sucompromiso social.“Por eso mi libro no está escrito en español, sino en inglés. Simplemente megustaría que lo leyera más gente. Es una meta ambiciosa, ya que su distribucióndeberá darse en el IPN y a nivel internacional. El segundo libro está en proceso ytrata sobre aplicaciones”.Sin embargo, el doctor Kuri Morales está por finalizar, junto con José Galaviz,Algoritmos Genéticos, un nuevo libro del IPN, en español.

Continuará la evolución…¿Los algoritmos genéticos van a seguir su evolución? El doctor Kuri asegura que así ocurrirá porque son muy nuevos en una cienciacomo la computación, muy joven de por sí: “Los algoritmos genéticos y las redesneuronales, paradigmas inspirados ambos en analogías con la naturaleza, se hanhecho posibles porque se ha abaratado la computadora. Si hace 15 años yo

Page 7: Algoritmos Genéticos: Herramientas de Inteligencia Artificial con su Propia Evolución

hubiera planteado el paradigma evolutivo, éste hubiera sido prácticamenteincosteable, porque cuando se simulan 10 mil generaciones ocupo minutos decómputo. En el tiempo en que estudié el doctorado, el minuto de CPU valía milesde dólares y me lo hubieran negado.“Los algoritmos genéticos son una mezcla del avance de la computación y de lagenética. Si las computadoras no fueran tan rápidas y tan baratas este tipo detécnicas no tendrían sentido, serían muy caras. En la medida en que lascomputadoras sigan evolucionando y se abaraten, este tipo de cuestiones se harámás atractivas.“Actualmente, a un algoritmo genético aprender le toma segundos o minutos. Conlas nuevas máquinas –más rápidas – aprenderá en milésimas de segundo. Yentonces tendremos algoritmos genéticos hasta en el horno de microondas;podrán, también, reconocer la voz de los dueños de la casa para abrirles la puerta.Los algoritmos genéticos permitirán que las computadoras sepan cuáles son laspreferencias de su dueño...”