Materiales: [ Cód.: identificaGANoLineal.mlx ] [ PDF ]
Este vídeo realiza, con sencillas modificaciones, la adaptación del vídeo [
Como novedad metodológica, no obstante, se propone el uso de búsqueda
“local” con el comando fmincon dándole como “semilla” (estimado inicial) un
valor arbitrario o, mejor, el valor propuesto por el algoritmo genético. El
comando fmincon realiza optimización basándose en gradientes, o en descenso
local numérico (Nelder-Mead), o... bueno, detalles no son importantes aquí. De
todos modos, estos algoritmos locales (más rápidos que genéticos, pero
más propensos a quedarse atascados) no parecen progresar más que
el genético en este problema concreto. Para aclarar diferencias entre
búsqueda local (relativamente rápida) y búsqueda global (lenta), ver vídeo
[
Realmente todo es muy similar al referido vídeo del caso lineal, pero se observa que, como era de esperar, un modelo no lineal parece ajustar mejor en entrenamiento y en validación.
Nota: también se puede usar ejecución en paralelo en máquinas multicore (casi todas hoy en día) si se tiene el Parallel Computing Toolbox instalado, con la opción “UseParallel”; eso no se comenta en el vídeo, pero sí en el MLX/PDF de materiales; en problemas sencillos a veces el sobrecoste de cargar múltiples copias de Matlab en memoria hace que no compense, al menos la primera vez que se ejecuta.
Rutinas globales/locales similares a las aquí propuestas están en el núcleo
de las funciones de la System Identification Toolbox para tareas de identificación
“grey-box” caja-gris de parámetros físicos como idnlgrey, como por ejemplo
las usadas en el vídeo [
Colección completa [VER]:
Anterior Identificación experimental con algoritmo genético de parámetros de modelo masa-muelle-amortiguador
Siguiente Identificación sistema masa-muelle no-lineal: Matlab, idnlgrey