Download Curve fitting: Neural network (multilayer perceptron) vs symbolic
Document related concepts
Transcript
Actas de Ingeniería Vol. 2, pp. 246-253, 2016 http://fundacioniai.org/actas Curve fitting: Neural network (multilayer perceptron) vs symbolic regression Ajuste de curvas: Red neuronal (perceptrón multicapa) vs regresión simbólica Rafael Moreno P. ramsoftware(AT)gmail.com Universidad Libre. Cali – Colombia Artículo de Investigación Abstract Given a series of historical data, the curve expressed in the form y = f (x) that is closer or the best is sought match those data. Deterministic procedures exist as nonlinear regression. Other methods are not deterministic as the symbolic regression (based on genetic algorithms) and the Multilayer Perceptron (a type of neural network). A comparison of nondeterministic methods against various data sets is presented. Keywords: Curve fitting, multilayer perceptron, symbolic regression. Resumen Dada una serie de datos históricos, se busca la curva expresada en la forma y=f(x) que se acerque más o en el mejor de los casos, coincida con esos datos. Existen procedimientos determinísticos como la regresión no lineal. Otros métodos son no determinísticos como la regresión simbólica (basada en algoritmos genéticos) y el perceptrón multicapa (un tipo de red neuronal). Se presenta una comparación entre estos métodos no determinísticos frente a diversos conjuntos de datos. Palabras clave: Ajuste de curvas, perceptrón multicapa, regresión simbólica. © 2016. IAI All rights reserved Citación Moreno, R. 2016. Ajuste de curvas: Red neuronal (perceptrón multicapa) vs regresión simbólica. Actas de Ingeniería 2, 246-253. 246 1. Introducción El ajuste de curvas [1, 2] es un método para encontrar una curva, que se aproxime a una serie de puntos dados previamente. En series temporales, tales como el comportamiento del dólar frente al peso colombiano, el comportamiento del caudal de un río durante un año o el crecimiento de las plantas durante una estación, tienen en común que el eje X es una unidad de tiempo y que para un valor de X solamente puede haber un valor de Y. Para el ajuste de curvas se utiliza la regresión no-lineal, que es un procedimiento determinístico. Puede probarse en WolframAlpha [3] o usando Microsoft Excel: se genera el gráfico de dispersión y luego se aplica la opción Agregar línea de tendencia [4]. Los métodos no-determinísticos, comparados en este estudio para el ajuste de curvas, son el perceptrón multicapa (un tipo de red neuronal) y la regresión simbólica (basado en los algoritmos genéticos). El primero se considera no-determinístico porque los pesos y los umbrales se inicializan con valores aleatorios, que después son ajustados con el algoritmo de propagación hacia atrás (backpropagation) [5]. La regresión simbólica [6] requiere una serie de números aleatorios para inicializar la población, seleccionar dos individuos al azar, determinar cuál tiene el mejor ajuste, copiar el mejor y variar esta copia en forma aleatoria. Se utiliza el método de los mínimos cuadrados para saber cuál de esos métodos tiene el mejor ajuste. Entre más cerca a cero, mejor es la aproximación. 2. El perceptrón multicapa Para ajustarse a una serie temporal de puntos [7], la primera capa, de lectura, es de una neurona y la última, de salida, también de una neurona. Tendrá dos capas ocultas. Cada capa oculta tendrá cinco neuronas. El factor de aprendizaje es de 0,4. El método de ajuste será el algoritmo backpropagation. En la Figura 1 se observa el perceptrón utilizado. Figura 1. Perceptrón multicapa 3. La regresión simbólica Con base en algoritmos genéticos, la regresión simbólica se inicia generando una población de N individuos. Cada uno es una ecuación del tipo y = f(x) generada aleatoriamente. Por ejemplo: y = (0.76 * x-abs (cos(x * 0.112))) / 0.3417 y = (sen(0.76/x) + abs(cos(x/0.112))) * (0.18/abs(cos(x+0.21))) Las ecuaciones están compuestas por operadores como suma, resta, multiplicación y división, la variable independiente x, constantes que son números generados al azar, uso de paréntesis y funciones como valores absolutos de seno y coseno. Un procedimiento, que combina velocidad y ajuste, consiste en generar aleatoriamente capas de piezas algebraicas, cada una formada por una función, un operando (variable o una constante), un operador y un segundo operando (variable o una constante). En la Figura 2 se puede observar un ejemplo. Figura 2. Piezas generadas aleatoriamente Una pieza de la capa 0 se combina con alguna otra de la capa 1, que, a su vez, se combina con alguna otra de la capa 2, y así sucesivamente. Esta combinación de piezas genera la expresión algebraica que es el individuo, tal como se muestra en la Figura 3. Figura 3. Combinación de piezas El individuo de la Figura 3 tendría las piezas: Pieza [0] = 3 - x Pieza [1] = 7 - x Pieza [2] = 9 * [1] Pieza [3] = [1] / [0] Pieza [4] = x - [2] La expresión del individuo sería: y = x – [2] y = x – 9 * [1] y = x – 9 * (7 - x) Se puede formar otro individuo usando el mismo arreglo bidimensional de piezas. La mutación de éste es cambiar una pieza por otra de la misma capa. 4. Los ciclos Para comparar ambos métodos, se toma como base los ciclos que requieren. En el caso del perceptrón multicapa, en cada ciclo, se evalúa toda la serie de puntos de entrada y se compara cada salida con la serie de puntos de salida esperada, posteriormente, se aplica el algoritmo de propagación. En el caso de la regresión simbólica, en cada ciclo se toman dos individuos de la población al azar, se evalúa su aproximación y el de más baja se elimina de la población, dejando un puesto vacante, y el de mejor aproximación se le genera una copia, a la que se le modifica una pieza al azar y luego ocupa la vacante libre. En la regresión simbólica hay varios factores para ajustar. Para las pruebas se tomó una población de 1000 individuos, cada uno conformado por 10 piezas, y el arreglo bidimensional de piezas tiene 10.000 piezas por capa. El software se puede descargar del sitio: http://darwin.50webs.com/Espanol/Capit07.htm. 5. Las pruebas Prueba uno: hay un grupo de 366 puntos que semejan el rebote de un objeto que, en vez de disminuir, aumenta. Hay cambios bruscos en orientación cuando hay corte en el eje X, como se muestra en la Figura 4. 247 Figura 4. Primera prueba: Rebotes ascendentes Prueba dos: hay un grupo de 360 puntos que simula una onda creciente (Figura 5) donde no hay cambios bruscos en la dirección. Figura 7. Regresión simbólica en línea punteada; perceptrón multicapa en línea continua La regresión simbólica presenta un comportamiento que el perceptrón multicapa. mejor Tabla 2. Tiempo en primera prueba para ambos Figura 5. Segunda prueba: Incremento cíclico Prueba tres: se toma el comportamiento del dólar con respecto al peso durante el 2015 (Figura 6). Ciclos 10 000 20 000 30 000 40 000 5 0000 60 000 70 000 80 000 90 000 100 000 Perceptrón multicapa 9 020 18 107 27 017 36 163 45 496 54 729 63 768 73 381 81 973 89 622 Regresión simbólica 2 429 4 654 6 750 9 002 11 087 13 444 15 336 17 737 20 006 21 637 Figura 6. Tercera prueba: Comportamiento dólar vs peso Los datos de entrada y de salida son normalizados entre 0 y 1, la razón es que el perceptrón multicapa trabaja con valores entre 0 y 1 por su función de activación. El perceptrón multicapa tendrá 5 neuronas en cada capa oculta. Cada prueba se ejecutará 10 veces y se usarán desde 10.000 hasta 100.000 ciclos en incrementos de 10.000 Se implementaron ambos métodos usando el lenguaje de programación C# en el entorno de desarrollo Visual Studio 2015 update 2 y el .NET framework 4.5.2, aplicación de consola, no hilos y usando la librería System.Diagnostics, para medir los tiempos. Ambos algoritmos están en el mismo proyecto. Sistema operativo Windows 10 pro (64 bits). Hardware es un Intel Core i7-2600 a 3.40Ghz y 8Gb RAM DDR-3. 6. Resultados 6.1 Primera prueba: Rebotes ascendentes En la Tabla 1 y la Figura 7 se observan los resultados de la aproximación, y en la Tabla 2 y la Figura 8 los obtenidos con el tiempo. Figura 8. Regresión simbólica en línea punteada; perceptrón multicapa en línea continua El perceptrón multicapa tarda aproximadamente 4 veces más que la regresión simbólica. 6.2 Segunda prueba En la Tabla 3 y la Figura 9 se observan los resultados de la aproximación, y en la Tabla 4 y la Figura 10 los obtenidos con el tiempo. Tabla 3. Aproximación segunda prueba Ciclos 10 000 20 000 30 000 40 000 50 000 60 000 70 000 80 000 90 000 100 000 Perceptrón multicapa 2,607 1,621 1,218 1,397 1,524 0,866 0,996 0,791 0,963 2,043 Regresión Simbólica 14,001 11,702 12,332 10,673 9,619 7,048 10,073 7,276 6,247 6,189 Tabla 1. Aproximación primera prueba Ciclos 10 000 20 000 30 000 40 000 50 000 60 000 70 000 80 000 90 000 100 000 Perceptrón multicapa 11,166 12,640 8,421 14,394 8,992 7,917 8,443 9,030 11,638 10,679 Regresión Simbólica 13,309 11,831 9,802 11,155 11,412 8,650 7,686 7,140 9,285 7,756 Figura 9. Regresión simbólica en línea punteada; perceptrón multicapa en línea continua 248 El perceptrón multicapa es, en promedio, 7 veces mejor que la regresión simbólica. Tabla 4. Tiempo en segunda prueba para ambos Ciclos 10 000 20 000 30 000 40 000 50 000 60 000 70 000 80 000 90 000 100 000 Perceptrón multicapa 8 909 17 901 26 621 35 548 45 021 54 234 62 724 73 012 81 596 90 564 Regresión simbólica 2 408 4 662 6 798 8 988 11 169 13 491 15 718 17 719 20 103 21 961 Tabla 6. Tiempo en tercera prueba para ambos Ciclos Perceptrón multicapa Regresión simbólica 10 000 8 531 2 291 20 000 17 327 4 493 30 000 27 005 6 729 40 000 35 918 8 810 50 000 45 152 11 095 60 000 54 325 13 467 70 000 63 502 15 636 80 000 72 379 17 843 90 000 82 152 20 078 100 000 91 603 21 834 7. Mejorando el perceptrón multicapa Aumentando el número de neuronas en las capas ocultas se mejora su aproximación. En la siguiente prueba se aumenta a 8 neuronas en cada capa oculta. 7.1 Primera prueba En la Tabla 7 y la Figura 13 se observan los resultados de la aproximación, y en la Tabla 8 y la Figura 14 los obtenidos con el tiempo. Figura 10. Regresión simbólica en línea punteada; perceptrón multicapa en línea continua El perceptrón multicapa tarda aproximadamente 4 veces más que la regresión simbólica. 6.3 Tercera prueba En la Tabla 5 y la Figura 11 se observan los resultados de la aproximación, y en la Tabla 6 y la Figura 12 los obtenidos con el tiempo. Tabla 5. Aproximación tercera prueba Ciclos Perceptrón multicapa Regresión Simbólica 10 000 1,550 4,419 20 000 1,379 3,714 30 000 1,235 3,840 40 000 1,213 3,669 50 000 1,139 3,060 60 000 1,191 3,390 70 000 1,177 2,792 80 000 1,146 2,625 90 000 1,096 2,888 100 000 1,091 2,596 Tabla 7. Perceptrón multicapa con más neuronas Ciclos 10 000 20 000 30 000 40 000 50 000 60 000 70 000 80 000 90 000 100 000 Multicapa: Multicapa: 8 neuronas 5 neuronas 12,265 11,166 14,264 12,640 7,473 8,421 5,251 14,394 4,069 8,992 6,295 7,917 4,617 8,443 3,686 9,030 3,943 11,638 3,275 10,679 Regresión Simbólica 13,316 12,094 10,167 11,337 9,832 5,536 8,628 7,648 9,936 5,837 Figura 13. Regresión simbólica en línea punteada; perceptrón multicapa en línea continua La mejora es evidente al usar un mayor número de neuronas, pero, en cuanto al tiempo, el resultado es diferente, porque el costo fue doblar el tiempo para el perceptrón multicapa. Figura 11. Regresión simbólica en línea punteada; perceptrón multicapa en línea continua El perceptrón multicapa es en promedio 2,7 veces mejor que la regresión simbólica. Figura 12. Regresión simbólica en línea punteada; perceptrón multicapa en línea continua Figura 14. Regresión simbólica en línea punteada; perceptrón multicapa en línea continua 249 Tabla 8. Tiempo en primera prueba Ciclos 10 000 20 000 30 000 40 000 50 000 60 000 70 000 80 000 90 000 100 000 Multicapa: Multicapa: 8 neuronas 5 neuronas 19 637 9 020 39 226 18 107 58 953 27 017 79 289 36 163 98 139 45 496 117 739 54 729 140 087 63 768 162 896 73 381 182 675 81 973 201 539 89 622 Regresión simbólica 2 429 4 654 6 750 9 002 11 087 13 444 15 336 17 737 20 006 21 637 7.2 Segunda Prueba En la Tabla 9 y la Figura 15 se observan los resultados de la aproximación, y en la Tabla 10 y la Figura 16 los obtenidos con el tiempo, donde se observa que en la aproximación las mejora es evidente. 7.3 Tercera Prueba En la Tabla 11 y la Figura 17 se observan los resultados de la aproximación, y en la Tabla 12 y la Figura 18 los obtenidos con el tiempo. Tabla 11. Aproximación tercera prueba Ciclos 10 000 20 000 30 000 40 000 50 000 60 000 70 000 80 000 90 000 100 000 Multicapa: 8 neuronas 1,565 1,272 1,209 1,182 1,162 1,165 1,122 1,111 1,119 1,108 Multicapa: 5 Regresión neuronas Simbólica 1,550 4,419 1,379 3,714 1,235 3,840 1,213 3,669 1,139 3,060 1,191 3,390 1,177 2,792 1,146 2,625 1,096 2,888 1,091 2,596 Tabla 9. Aproximación segunda prueba Ciclos 10 000 20 000 30 000 40 000 50 000 60 000 70 000 80 000 90 000 100 000 Multicapa: 8 neuronas 1,126 0,602 0,599 0,905 0,272 0,273 0,333 0,378 0,689 0,568 Multicapa: Regresión 5 neuronas Simbólica 2,607 14,001 1,621 11,702 1,218 12,332 1,397 10,673 1,524 9,619 0,866 7,048 0,996 10,073 0,791 7,276 0,963 6,247 2,043 6,189 Figura 17. Regresión simbólica en línea punteada; perceptrón multicapa en línea continua Tabla 12. Tiempo en tercera prueba Ciclos Figura 15. Regresión simbólica en línea punteada; perceptrón multicapa en línea continua Tabla 10. Tiempo en segunda prueba Ciclos 10 000 20 000 30 000 40 000 50 000 60 000 70 000 80 000 90 000 100 000 Multicapa: 8 neuronas 19296 38655 57654 78346 97225 116926 139122 162164 179464 200738 Multicapa: 5 neuronas 8 909 17 901 26 621 35 548 45 021 54 234 62 724 73 012 81 596 90 564 Regresión simbólica 2 408 4 662 6 798 8 988 11 169 13 491 15 718 17 719 20 103 21 961 10 000 20 000 30 000 40 000 50 000 60 000 70 000 80 000 90 000 100 000 Multicapa: 8 neuronas 19 539 39 275 58 288 79 938 101 950 117 948 139 911 160 524 183 029 200 461 Multicapa: Regresión 5 neuronas simbólica 8 531 2 291 17 327 4 493 27 005 6 729 35 918 8 810 45 152 11 095 54 325 13 467 63 502 15 636 72 379 17 843 82 152 20 078 91 603 21 834 Figura 18. Regresión simbólica en línea punteada; perceptrón multicapa en línea continua 8. Mejorando la Regresión Simbólica Figura 16. Regresión simbólica en línea punteada; perceptrón multicapa en línea continua Esta técnica tiene diversos puntos para configurarse: tamaño de la población, número de piezas que conformará cada individuo y número de piezas por capa. El algoritmo puede variar para tener otras funciones (ahora tiene el valor absoluto del seno y el coseno) u otros operadores (ahora tiene la suma, resta, multiplicación y división). La mecánica puede variar y, en vez de seleccionar dos individuos para, se podría tomar tres o más; otro cambio sería la forma de seleccionar los 250 individuos en la población, como evaluar toda la población y tomar solamente a los mejores para reproducción, y eliminar a los peores. A continuación, se hacen las pruebas con el mismo algoritmo de regresión simbólica y sin cambiar ninguna configuración, se aumenta el número de ciclos hasta un millón (de 100.000 en 100.000), para aproximarse al tiempo que tomó el perceptrón multicapa de 8 neuronas. 8.1 Primera Prueba En la Tabla 13 se observan los resultados, donde la regresión simbólica tiene una aproximación notablemente mejor que el perceptrón multicapa. Tabla 13. Aproximación primera prueba Ciclos 100 000 200 000 300 000 400 000 500 000 600 000 700 000 800 000 900 000 1000 000 Aproximación Regresión Simbólica 5,837 4,187 6,897 2,944 3,961 2,671 1,151 0,638 3,306 1,781 Perceptrón multicapa: 8 neuronas 12,265 14,264 7,473 5,251 4,069 6,295 4,617 3,686 3,943 3,275 En la Tabla 14 se observan los resultados, donde la regresión simbólica no logró una aproximación similar a la del perceptrón. Tabla 14. Aproximación segunda prueba 100 000 200 000 300 000 400 000 500 000 600 000 700 000 800 000 900 000 1000 000 Aproximación Regresión Simbólica 8,404 5,905 5,388 4,510 3,851 4,048 4,642 2,882 5,369 4,511 Perceptrón multicapa: 8 neuronas 1,126 0,602 0,599 0,905 0,272 0,273 0,333 0,378 0,689 0,568 8.3 Tercera Prueba En la Tabla 15 se observan los resultados, donde la regresión simbólica no logró una aproximación similar a la del perceptrón. Tabla 15. Entre más cerca a cero es mejor la aproximación Ciclos 100 000 200 000 300 000 400 000 500 000 600 000 700 000 800 000 900 000 1000 000 Tabla 16. Resultados en detalle del perceptrón multicapa y la regresión simbólica Ejecución 1 2 3 4 5 6 7 8 9 10 Perceptrón multicapa: 8 neuronas 1,714 0,938 0,954 1,487 15,088 1,016 6,425 0,888 1,754 2,488 Aproximación Regresión Simbólica 4,653 3,606 7,867 12,108 6,130 4,398 13,141 7,060 7,500 0,295 En las columnas que muestran la aproximación los datos varían ampliamente. En Perceptrón multicapa la mejor aproximación es 0,888 y la peor es 15,088, mientras que en la Regresión simbólica son 0,295 y 13,141 respectivamente. El promedio de esas ejecuciones fue lo que se mostró en las tablas anteriores. Si en vez de mostrar un promedio de ejecuciones se toma la mejor ejecución de cada algoritmo, los resultados para cada prueba serían los que se muestran en las Tablas 17 a 19. Tabla 17. Primera prueba. Mejor Regresión simbólica 8.2 Segunda Prueba Ciclos con 100 000 ciclos, la Tabla 16 muestra las 10 ejecuciones de los algoritmos. Aproximación Perceptrón multicapa: 8 Regresión Simbólica neuronas 2,898 1,565 2,578 1,272 2,377 1,209 2,229 1,182 2,285 1,162 2,082 1,165 1,982 1,122 2,385 1,111 2,204 1,119 1,902 1,108 Los resultados mostrados en cada tabla anterior son un promedio de los resultados de haber ejecutado los algoritmos diez veces cada uno. Mirando en detalle cada ejecución y su resultado, se nota que los resultados varían entre estar muy cercanos a aproximación cero y alejarse demasiado. Por ejemplo, en la primera prueba, Ciclos 10 000 20 000 30 000 40 000 50 000 60 000 70 000 80 000 90 000 100 000 Promedio Multicapa: Multicapa: 8 neuronas 5 neuronas 9,272 7,915 7,385 5,065 2,305 4,986 1,559 4,177 1,387 3,187 0,965 3,639 1,706 4,231 0,779 2,362 0,624 2,577 0,888 2,412 2,687 2,362 Regresión Simbólica 2,100 5,276 0,691 3,112 0,669 0,206 0,737 0,883 0,428 0,295 1,440 Tabla 18. Segunda prueba. Perceptrón multicapa de 8 neuronas muestra mejor comportamiento Ciclos 10 000 20 000 30 000 40 000 50 000 60 000 70 000 80 000 90 000 100 000 Promedio Multicapa: 8 neuronas 0,382 0,170 0,234 0,158 0,147 0,126 0,094 0,103 0,036 0,096 0,155 Multicapa: Regresión 5 neuronas Simbólica 1,027 11,525 0,333 9,751 0,185 3,824 0,375 5,693 0,389 4,661 0,200 4,071 0,456 3,077 0,206 0,679 0,246 3,593 0,159 4,221 0,358 5,109 Tabla 19. Tercera prueba. El perceptrón multicapa de 8 neuronas es mejor Ciclos 10 000 20 000 30 000 40 000 50 000 60 000 70 000 80 000 90 000 100 000 Promedio Multicapa: Multicapa: Regresión 8 neuronas 5 neuronas Simbólica 1,410 1,397 3,197 1,219 1,249 2,643 1,070 1,161 2,589 1,031 1,142 2,150 1,034 0,735 2,094 1,075 1,145 1,872 1,027 1,081 2,123 1,016 1,082 2,015 0,971 1,022 1,982 0,982 0,860 1,978 1,084 1,087 2,264 251 Buscando el mejor en cada conjunto de pruebas, el perceptrón de 8 neuronas fue mayoritariamente mejor. Pero, para encontrar el mejor, habría que sumar los tiempos de todas las ejecuciones, y es notable el costo de encontrar un mejor ajuste de curvas, tal como se observa en los resultados de las Tablas 20 a 22 para cada prueba. Tabla 20. Tiempos Primera prueba Ciclos 10 000 20 000 30 000 40 000 50 000 60 000 70 000 80 000 90 000 100 000 Multicapa: 8 neuronas 196 373 392 260 589 530 792 892 981 387 1 177 386 1 400 868 1 628 957 1 826 748 2 015 385 Multicapa: Regresión 5 neuronas simbólica 90 195 24 161 181 068 45 542 270 174 67 382 361 632 89 587 454 963 110 980 547 293 133 581 637 682 156 606 733 806 181 106 819 725 204 664 896 217 222 814 Tabla 21. Tiempos Segunda prueba Ciclos 10 000 20 000 30 000 40 000 50 000 60 000 70 000 80 000 90 000 100 000 Multicapa: Multicapa: Regresión 8 neuronas 5 neuronas simbólica 192 964 89 093 24 082 386 553 179 011 46 218 576 538 266 213 67 035 783 463 355 483 90 790 972 254 450 210 111 304 1 169 259 542 337 132 303 1 391 219 627 236 159 167 1 621 641 730 121 182 266 1 794 643 815 959 202 575 2 007 380 905 641 228 666 Tabla 22. Tiempos Tercera prueba Ciclos 10 000 20 000 30 000 40 000 50 000 60 000 70 000 80 000 90 000 100 000 Multicapa: Multicapa: Regresión 8 neuronas 5 neuronas simbólica 195 386 85 311 23 928 392 754 173 271 45 897 582 881 270 053 68 105 799 379 359 184 90 701 1 019 499 451 522 111 805 1 179 482 543 253 132 200 1 399 111 635 022 154 223 1 605 240 723 791 180 668 1 830 290 821 521 204 666 2 004 613 916 031 223 321 En las tres pruebas se aprecia alto consumo de tiempo de multicapa 8 neuronas, frente a regresión simbólica. 8.4 Información requerida por cada algoritmo Por definición, el perceptrón multicapa utilizado en las pruebas hace uso de pesos y umbrales, que son números de tipo doublé. La cantidad para el perceptrón multicapa con 8 neuronas en las dos capas ocultas sería: Capa 1 se conecta con capa 2: 8 pesos Capa 2 con 8 neuronas: 8 umbrales Capa 2 se conecta con capa 3: 64 pesos Capa 3 con 8 neuronas: 8 umbrales Capa 3 se conecta con capa 4: 8 pesos Capa 4 con 1 neurona: 1 umbral En total requiere 8+8+64+8+8+1 = 97 valores de tipo double que, en C#, equivaldría a 97*64bits = 6208 bits. La regresión simbólica hace uso de piezas y cada pieza tiene: Una función. Entero. 32 bits Variable A. Entero. 32 bits Constante. Doble. 64 bits Operador. Entero. 32 bits Variable B. Entero. 32 bits Tipo de pieza. Entero. 32 bits Una pieza requiere 224 bits y, como una expresión está compuesta de 10 piezas en las pruebas, entonces ocuparía 2240 bits. En cada capa oculta, el perceptrón multicapa de 8 neuronas requiere casi 3 veces más almacenamiento que la regresión simbólica. Cabe aclarar que la implementación en C# fue con el tipo de datos entero por facilidad en la codificación, pero, en un examen más detallado del algoritmo, la pieza podría reemplazar el entero por el tipo de datos char, que ocupa 8 bits, y el conteo de cada pieza sería: Una función. Char. 8 bits Variable A. Char. 8 bits Constante. Doble. 64 bits Operador. Char. 8 bits Variable B. Char. 8 bits Tipo de pieza. Char. 8 bits Una pieza requeriría 112 bits, entonces, la expresión que tiene 10 piezas usaría 1120 bits. En este caso, el perceptrón multicapa de 8 neuronas requeriría 5,5 veces más información que la regresión simbólica. Elevando de 10 a 30 piezas la expresión matemática en la regresión simbólica, se repiten las pruebas para ver si el aumento en información mejora la aproximación. Los resultados para cada prueba se aprecian en las Tablas 23 a 25. Tabla 23. Aproximación primera prueba Ciclos 10 000 20 000 30 000 40 000 50 000 60 000 70 000 80 000 90 000 100 000 Regresión Regresión Simbólica: Simbólica: 30 piezas 10 piezas 13,426 13,309 12,215 11,831 10,229 9,802 10,169 11,155 10,430 11,412 10,724 8,650 9,301 7,686 7,948 7,140 10,381 9,285 8,674 7,756 Tabla 24. Aproximación segunda prueba Ciclos 10 000 20 000 30 000 40 000 50 000 60 000 70 000 80 000 90 000 100 000 Regresión Simbólica: Regresión Simbólica: 30 piezas 10 piezas 12,676 14,001 12,503 11,702 10,725 12,332 10,825 10,673 8,921 9,619 9,402 7,048 7,823 10,073 6,135 7,276 9,684 6,247 7,423 6,189 Tabla 25. Aproximación tercera prueba Ciclos 10 000 20 000 30 000 40 000 50 000 60 000 70 000 80 000 90 000 100 000 Regresión Simbólica: 30 piezas 4,528 3,768 3,139 3,576 3,245 3,036 3,147 2,868 2,831 2,572 Regresión Simbólica: 10 piezas 4,419 3,714 3,840 3,669 3,060 3,390 2,792 2,625 2,888 2,596 252 En las tres pruebas se triplicó el tiempo usado por la regresión simbólica de 30 piezas, en comparación con el tiempo usado por la regresión simbólica de 10 piezas. 9. Conclusiones Al aumentar el número de neuronas en las capas ocultas, el perceptrón multicapa mostró ser mejor ajuste de curvas que la regresión simbólica, pero, asumiendo el costo de aumentar el tiempo de procesamiento. Este aumento de tiempo es lineal (no exponencial, ni potencial), por lo que es aceptable. Por otro lado, la ventaja de la regresión simbólica es ser más rápida y requerir menos almacenamiento, pero su ajuste no alcanza al obtenido por el perceptrón, aunque se incremente el número de ciclos, número de piezas y, llegado al caso, consume más tiempo que el perceptrón. Se debe considerar que hay varias partes que se pueden mejorar, incluyendo el mismo algoritmo, por lo que no se puede asegurar que esta técnica de ajuste de curvas deba desecharse. Referencias [1] [2] Arlinghaus, S. (1994). Practical handbook of curve fitting. Boca Raton: CRC Press. [3] http://www.wolframalpha.com/input/?i=curve+fitting. [Nov 2015]. [4] Microsoft Office (2016). Agregar una línea promedio móvil o de tendencia a un gráfico. Online [Dec 2015]. [5] Sathyanarayana, S. (2014). A Gentle Introduction to Backpropagation. Numeric Insight, Inc. [6] Zelinka, I. (2004). Symbolic regression - An overview. Tomas Bata University Zlin. Faculty of Technology Institute of Information Technologies. [7] Martínez, C. (2011). Problemas abiertos en la aplicación de la Regresión Simbólica en el pronóstico de series de tiempo. Tesis de Maestría. Universidad Nacional de Colombia. [8] Borges, C. & Montaña, J. (2011). Ajuste de Curvas: Problemas de Regresión. Departamento de Matemáticas, Estadística y Computación. Universidad de Cantabria. [9] Moreno, R. (2012). Simulación: Conceptos y Programación. Cali: Universidad Libre. [10] Nicolas, P. (2013). Data Modeling using Symbolic Regression. Online [Feb 2016]. [11] García, J. (2010). Informe Final del proyecto Regresión Simbólica de Funciones Booleanas Usando Evolución Gramatical. Universidad del Quindío. Gurle, K. (2003). Numerical Methos Lecture 5 – Curve Fitting Techniques. CGN-3421 computer methods. 253