En el aprendizaje automático , la programación genética (GP) es la creación o modificación automática de programas utilizando algoritmos genéticos . Con la ayuda de esta metodología, se “cultivan” programas que son cada vez mejores (de acuerdo con una determinada función de aptitud para los cromosomas) resolviendo el problema computacional establecido.
La elección de cómo codificar un programa en un algoritmo genético es uno de los principales problemas de la programación genética. El programa debe estar codificado de tal manera que sea fácil realizar automáticamente cambios aleatorios (operador de mutación) y combinar dos algoritmos en uno (operador de cruce).
Los métodos de codificación se pueden dividir en dos clases:
En la codificación de árboles, cada nodo del árbol contiene una función y cada hoja un operando. Una expresión representada como un árbol puede evaluarse fácilmente de forma recursiva. Las GPU tradicionales son más fáciles de usar para desarrollar programas escritos en lenguajes que incorporan naturalmente una estructura de árbol: Lisp , Haskell , F# y otros lenguajes de programación funcionales.
También se han propuesto e implementado con éxito representaciones de programas que no son árboles, como la programación genética lineal adecuada para lenguajes imperativos tradicionales.
Operador de cruceEn una representación de árbol, el operador de cruce se implementa mediante un intercambio entre dos árboles por cualquier nodo junto con sus descendientes (subárboles).
Ejemplo:
individuo _ Children [ randomChildIndex ] = otherIndividual . Hijos [ randomChildIndex ] ; Operador de mutaciónA diferencia del operador de cruce, el operador de mutación afecta solo a un cromosoma. En una vista de árbol, se puede implementar cambiando la información en un nodo o agregando/eliminando un nodo o un subárbol completo. En este caso, es necesario controlar la exactitud de los resultados del operador.
Ejemplo:
individuo _ Información = información aleatoria ();o
individuo = generarNuevoIndividuo ();La programación metagenética es un GP en el que no solo se cambia un programa de computadora dado y, por lo tanto, se "crece", sino también los propios operadores de cruce y mutación aplicados.
.
Aprendizaje automático y minería de datos | |
---|---|
Tareas | |
Aprendiendo con un maestro | |
análisis de conglomerados | |
Reducción de dimensionalidad | |
Pronóstico estructural | |
Detección de anomalías | |
Graficar modelos probabilísticos | |
Redes neuronales | |
Aprendizaje reforzado |
|
Teoría | |
revistas y congresos |
|