algoritmo genético simple en el procesamiento de lenguaje natural

Anuncio
Congreso Internacional de Investigación Tijuana.
Revista Aristas: Investigación Básica y Aplicada.
ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
ALGORITMO GENÉTICO SIMPLE EN EL PROCESAMIENTO
DE LENGUAJE NATURAL
Resumen-- Este trabajo plantea la aplicación de
algoritmos genéticos a la obtención de palabras de
entrada y de salida que representan procesos no
lineales en los que aparecen términos producto,
describiéndose el método y las ventajas de su utilización
mediante simulaciones realizadas en MATLAB. Lo cual
se aplica al procesamiento de lenguaje natural.
Palabras claves-- Algoritmos Genéticos, Inteligencia
Artificial.
DORA MARÍA CALDERÓN NEPAMUCENO
Profesora Investigadora
EFRÉN GONZÁLEZ GÓMEZ
Profesor Investigador
DORICELA GUTIÉRREZ CRUZ
Profesora
WALTER CHARLES BAUTISTA TRACONIZ
Estudiante Licenciatura en Ingeniería de Sistemas
Inteligentes.
Universidad Autónoma del Estado de México
Unidad Académica Profesional Nezahualcóyotl
[email protected]
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México.
Congreso Internacional de Investigación Tijuana.
1.
Revista Aristas: Investigación Básica y Aplicada.
INTRODUCCIÓN
Un algoritmo genético es un método que se utiliza para
resolver problemas de búsqueda y optimización. Se basa
en la genética natural y en la teoría de la evolución de
Darwin, utilizando la información histórica para
encontrar nuevos puntos de búsqueda de una solución
óptima a problemas para los que no existe un método
preciso. [5]
Los algoritmos genéticos son una de las principales
herramientas tecnológicas de la inteligencia artificial y
requieren una función-objetivo para llevar a cabo la
búsqueda de soluciones, intentando encontrar aquella que
optimice dicha función.
Una vez que el algoritmo genético obtiene una población
y en base a la función objetivo aplicada a cada uno de los
individuos, se seleccionan los mejores y se combinan
para generar nuevas poblaciones; este proceso se repite
hasta que se cumplan los criterios de paro. [1]
Funcionamiento básico de un algoritmo genético
A continuación se muestra el funcionamiento básico de
un algoritmo genético, considerando que previamente es
necesario determinar una función objetivo del problema
de optimización y especificar la manera de codificar las
posibles soluciones.
Generación de la población inicial
Normalmente l algoritmo genético genera de forma
aleatoria una población para el primer ciclo, formada por
un conjunto de cromosomas (individuos), o cadenas de
bits a los cuales se les aplica la función objetivo.
Evaluación de los cromosomas
La evaluación se realiza calculando la función objetivo
para cada uno de los cromosomas que forman la
población actual. De esta forma se determina la
adaptación de cada individuo de la población actual.
Las funciones para la evaluación de la aptitud son
específicas a cada problema.
Selección
Consiste en seleccionar los cromosomas que serán
cruzados en la siguiente generación. Los cromosomas
con mejor aptitud tienen mayor probabilidad de ser
seleccionados.
Existen diferentes métodos de selección que pueden
utilizar los algoritmos genéticos.
A continuación se describen brevemente dos de ellos:
Método de la ruleta o selección proporcional: Este
método consiste en crear una ruleta en la que cada
cromosoma tiene asignada una fracción proporcional a su
aptitud. A los individuos más aptos se les asigna un área
mayor de la ruleta, para que sean seleccionados más
veces que los menos aptos.
ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
Método del torneo: En este método se eligen subgrupos
de individuos de la población y después se hace competir
a los individuos que integran cada subgrupo. Se elige el
individuo de cada subgrupo que tenga el valor de aptitud
más alto. [2][3]
Cruza
Es el intercambio de material genético entre dos
cromosomas a la vez para generar dos descendientes
donde se combinan las características de ambos
cromosomas padres. Una forma común de cruza consiste
en establecer un punto de intercambio en un lugar
aleatorio del cromosoma de los dos individuos, y uno de
los individuos contribuye todo su código anterior a ese
punto y el otro individuo contribuye todo su código a
partir de ese punto para producir una descendencia.
Mutación
Al igual que una mutación en los seres vivos cambia un
gen por otro, una mutación en un algoritmo genético
también causa pequeñas alteraciones en puntos
determinados del código de un individuo.
Por último, se comprueba si alguno de los individuos
disponibles satisface los criterios establecidos y se puede
considerar como solución al problema.
El algoritmo genético se detiene cuando se cumpla un
número determinado de generaciones o cuando no haya
cambios en la población.[4]
2. DESARROLLO
El programa inicia pidiendo la palabra objetivo y la
palabra inicial, independientemente de sus tamaños, ya
que la palabra inicial se ajustara a la palabra objetivo. Si
la palabra inicial es mayor, el programa la recorta al
tamaño de la palabra objetivo, y si es menor, obtiene
letras del abecedario aleatoriamente para completar el
tamaño. Para obtener las letras adicionales se utiliza una
función random sobre el abecedario, y de este modo se
genera las letras necesarias. La conversión a binario se
hace utilizando una función llamado Bin, donde el
resultado lo guarda en un arreglo para su posterior
extracción. El siguiente paso consiste en hacer una
selección y competencia de individuos, es decir, de los
valores de 0 y 1 de las palabras ya convertidas, se toma el
mayor y se asigna como el ganador. Posteriormente se
inicia el proceso de cruce entre el individuo ganador y
perdedor, para extraer de ellos los genes que generaran al
nuevo individuo. Al nuevo individuo se le aplica el
proceso de mutación para mejorarlo, el grado de
mutación depende de la necesidad requerida, en nuestra
caso es de 40%, lo que indica que el nuevo individuo es
totalmente distinto al individuo anterior generado. El
nuevo individuo pasa a ser nuestra nueva palabra inicial,
y se le aplica nuevamente el algoritmo genético, para
extraer las características necesarias, y de esta forma se
repite el proceso hasta que se logre el objetivo que es
encontrar la palabra final.
¿Qué se requiere para aplicar un algoritmo genético?
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México.
146
Congreso Internacional de Investigación Tijuana.
Revista Aristas: Investigación Básica y Aplicada.
Esto conlleva la ejecución de un ciclo compuesta de
diferentes etapas.
A continuación se presenta un
esquema con el correspondiente ciclo:
El ciclo está compuesto por los siguientes pasos:
1. Generar población
2. Evaluar adecuación
3. Los mejores se reproducen, los peores se extinguen
4. Aplicar mutaciones
5. Actualizar población
6. Volver a etapa 2
EJEMPLOS
Ejemplo 1: Palabra Playa y océano
desarrolla, sobre todo el procesamiento de lenguaje
natural. Esto parece trascender a los mercados
financieros, donde se viven cambios a consecuencia de
las decisiones humanas. El hecho de pensar que los
algoritmos computacionales puedan tener una base en la
evolución de los organismos puede ser sorprendente, sin
embargo el hecho de que los Algoritmos Genéticos
puedan ser aplicados a muchas áreas donde los
conocimientos computacionales actuales como las
búsquedas aleatorias o graduales no han tenido resultados
óptimos nos conduce a pensar que los Algoritmos
Genéticos constituyen realmente una poderosa
herramienta de búsqueda heurística con la habilidad de
explotar y aprender de sus dominios.
Lo Algoritmos Genéticos son relativamente fáciles de
entender e implementar, y su principal ventaja y
desventaja a la vez es su robustez, si posee una mala
implementación, el Algoritmos Genéticos seguirá
corriendo y tarde o temprano encotrará el problema o
encotrará un óptimo local.
Dejemos que la naturaleza sea nuestra guía, dado que la
mayoría de los problemas a los que se van a aplicar los
algoritmos genéticos son de naturaleza no lineal, es mejor
actuar como lo hace la naturaleza, aunque intuitivamente
pueda parecer la forma menos acertada.
Por ultimo dejemos que la naturaleza actúe de forma
distribuida, por tanto, se debe de minimizar la necesidad
de operadores que "vean" a la población. Ello permite,
además, una fácil paralelización del algoritmo genético.
Por ejemplo, en vez de comparar el rendimiento de un
individuo con todos los demás, se puede comparar sólo
con los vecinos, es decir, aquellos que estén, de alguna
forma, situados cerca de él.
4.
Fuente: Elaboración propia.
Ejemplo 2.
Fuente: Elaboración propia.
3.
CONCLUSIONES
Los algoritmos genéticos son una herramienta útil para
obtener soluciones de problemas que requieren la
optimización y cuyas posibles respuestas se encuentran
dentro de un universo limitado. La vida es un proceso de
constante evolución que implica transformaciones
ordenadas y no-ordenadas de los sistemas en donde se
ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
REFERENCIAS
Koza John R., Genetic Programming On the
Programming of Computers by Means of Natural
Selection. Editorial MIT Press, 1998.
Bramer Max, Devedzic Vlandan, Artificial Intelligence
Applications and Innovations. Editorial Kluwer
Academic,2004.
Coppin Ben, Artificial Intelligence Illuminated. Sudbury,
MA. Editorial Jones and Bartlett, 2004.
Russell Stuart y Norving Peter. Inteligencia Artificial: Un
enfoque moderno. Editorial Prentice Hall, 2004.
Lakhmi C., Martin N. M., Fusion of Neural Networks,
Fuzzy Systems and Genetic Algorithms: Industrial
Applications.Editorial CRC Press, 1998.
Dora María Calderón Nepamuceno: Doctora en
Ciencias en la especialidad en Control Automático.
Profesora Investigadora de tiempo completo en la
Universidad Autónoma del Estado de México – Unidad
Académica Profesional Nezahualcóyotl.
Áreas de
interés: Ingeniería de software e Inteligencias Artificial
(Sistemas Basados en conocimiento).
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México.
Congreso Internacional de Investigación Tijuana.
Revista Aristas: Investigación Básica y Aplicada.
Efrén González Gómez. Maestro en Ciencias en
Sistemas Computacionales. Profesor Investigador de
tiempo completo en la Universidad Autónoma del Estado
de México – Unidad Académica Profesional
Nezahualcóyotl. Áreas de interés: Reconocimiento de
Patrones e Inteligencias Artificial
ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
Doricela Gutiérrez Cruz. Doctora en Sistemas. Profesor
de tiempo completo en la Universidad Autónoma del
Estado de México – Unidad Académica Profesional
Nezahualcóyotl. Áreas de interés: Ingeniería de software
e Inteligencias Artificial (Sistemas Basados en
conocimiento).
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México.
Descargar