Download Curve fitting: Neural network (multilayer perceptron) vs symbolic

Document related concepts

Red neuronal prealimentada wikipedia , lookup

Perceptrón multicapa wikipedia , lookup

Redes neuronales probabilísticas wikipedia , lookup

Propagación hacia atrás wikipedia , lookup

Promoter Based Genetic Algorithm wikipedia , lookup

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