Dada una serie de datos (X, Y) donde X no se repite, se busca la expresión Y = F(X) que genere esa serie de datos.
El algoritmo es el siguiente:
1. Generar una ecuación al azar del tipo Y=F(X).
2. Con esa ecuación generar una serie de valores (X, Y).
3. Se normalizan los valores (X, Y).
4. Se toma el valor X y el valor Y, y se dividen en sumatorias, por ejemplo:
Valor X = 0.8215 se convierte a 0.8 + 0.02 + 0.001 + 0.0005
Valor Y = 0.1764 se convierte a 0.1 + 0.07 + 0.006 + 0.0004
Y cada sumando es una entrada y salida como se ve en la imagen:
5. Se envía para entrenamiento a un primer perceptrón multicapa (dos capas ocultas cada una de 8 neuronas) esos valores X en suma y, Y en suma, es decir, múltiples entradas y múltiples salidas.
6. Se envía para entrenamiento a un segundo perceptrón multicapa (dos capas ocultas cada una de 8 neuronas) esos valores (X, Y) no convertidos en suma, es decir, de una sola entrada X, y una sola salida Y.
7. Se compara la aproximación que arroja ambos perceptrones, el que más se aproxime a cero es el mejor
Se hicieron 125 pruebas. Y se obtuvieron los siguientes resultados:
Aproxima múltiples entradas-salidas | Aproximación una entrada-salida |
---|---|
2,22868144 | 2,202224568 |
29,0565581 | 29,10918799 |
0,502814132 | 0,45067045 |
4,046671152 | 12,08689106 |
26,51695886 | 26,64989753 |
23,78704308 | 24,54352531 |
1,027201803 | 0,53122769 |
1,838044032 | 1,579597839 |
2,4201994 | 1,61283111 |
29,48796268 | 29,47073618 |
5,791611299 | 2,859582268 |
25,87666521 | 24,56843495 |
11,64681911 | 17,68327662 |
1,994324444 | 1,848527124 |
2,846983417 | 2,749026843 |
9,774774291 | 16,52045278 |
29,26051803 | 29,23161098 |
1,248795514 | 0,72427718 |
31,55169489 | 30,25910494 |
3,078163865 | 2,887417298 |
6,285409782 | 6,102289781 |
20,72412939 | 20,89337094 |
1,407429058 | 1,110041661 |
1,271170356 | 0,621168276 |
1,848357104 | 0,609813062 |
1,436204381 | 1,427853386 |
0,833980859 | 0,507796137 |
1,07393188 | 0,987293893 |
14,92736026 | 14,67198885 |
4,722348745 | 4,545818565 |
2,557752327 | 2,969238414 |
1,307749667 | 1,36267139 |
2,105933055 | 2,025590473 |
0,89588997 | 0,690801393 |
27,52156501 | 27,27781667 |
1,459975764 | 0,756813007 |
3,701198108 | 0,545165207 |
1,1692307 | 1,227934795 |
3,863165224 | 27,83955694 |
29,60598209 | 29,41123677 |
0,476022778 | 0,444157009 |
27,83605542 | 28,20662131 |
29,48726252 | 29,29727948 |
3,038281148 | 3,035425564 |
2,024276034 | 2,000066963 |
2,507925583 | 2,245486524 |
29,76943514 | 30,34725735 |
1,844704661 | 1,794558467 |
1,9990065 | 0,494232252 |
1,906823124 | 0,66361312 |
29,99061803 | 29,96162233 |
3,266003757 | 3,184228235 |
2,62528838 | 3,33389031 |
2,926349773 | 3,052202887 |
2,12743037 | 2,093173274 |
27,40106893 | 28,63722354 |
3,684920568 | 3,649847733 |
6,4092867 | 6,472049695 |
1,823718589 | 1,861190619 |
11,79969452 | 26,59399987 |
2,052471677 | 0,620323016 |
5,146398915 | 25,55441326 |
11,08465182 | 27,1138065 |
1,95211811 | 1,028082962 |
2,143845924 | 0,827141464 |
28,52657738 | 28,34400914 |
1,792325131 | 0,609890343 |
1,955009896 | 0,936693555 |
1,033694011 | 0,860021395 |
1,118394705 | 0,545584034 |
1,294947302 | 0,564150549 |
2,430434217 | 2,096273558 |
23,7241025 | 26,26858937 |
3,612949488 | 30,45119158 |
28,63996542 | 28,58433186 |
1,132057872 | 0,980884859 |
0,849088921 | 0,931148476 |
3,626383221 | 28,98154962 |
1,777187765 | 1,367503473 |
15,46605227 | 20,03147164 |
3,020934018 | 2,489700882 |
26,58164851 | 27,53192688 |
1,699724973 | 0,550904045 |
3,482573923 | 3,308542061 |
15,38651595 | 15,40612966 |
2,027459215 | 0,412104789 |
3,219544094 | 3,898526993 |
23,50847383 | 26,53241535 |
2,709593673 | 4,466284402 |
4,142771588 | 24,96661786 |
3,386435479 | 1,55326743 |
1,3887042 | 0,742840436 |
28,29062103 | 28,32953342 |
1,570468793 | 1,602019971 |
5,478243122 | 5,318698323 |
2,038536182 | 0,656475639 |
7,455190952 | 30,28606323 |
1,725900666 | 0,608444798 |
2,665118151 | 3,313457064 |
2,184895499 | 1,443370143 |
4,587612816 | 29,81444738 |
1,742282274 | 1,623412639 |
2,007512582 | 1,531086638 |
3,35068411 | 16,52346595 |
0,63619993 | 0,596002403 |
2,557730712 | 2,106263908 |
4,755343272 | 4,754131763 |
2,257500745 | 0,810935042 |
1,952890399 | 2,002729022 |
1,308742971 | 0,524209886 |
0,972767463 | 0,601560066 |
7,708453731 | 15,6760444 |
3,835557705 | 3,873124298 |
26,80659398 | 26,33312232 |
5,984241506 | 5,943049393 |
1,0530161 | 0,95061154 |
0,935061339 | 0,873462355 |
29,01563916 | 29,10080262 |
2,187720627 | 2,037741724 |
28,45118634 | 28,45094548 |
3,849103747 | 1,031984277 |
28,63120365 | 29,94480239 |
2,714865238 | 0,457948077 |
24,06277862 | 23,62032808 |
Los resultados son interesantes porque la estrategia de una entrada-salida fue más eficaz, en 81 de las 125 pruebas logró mejor aproximación.
Pero curiosamente, cuando el perceptrón de entrada-salida tiene peor aproximación que el perceptrón entradas-salidas, la diferencia era bien notable. Ver los siguientes casos:
Aproxima múltiples entradas-salidas | Aproximación una entrada-salida |
---|---|
4,046671152 | 12,08689106 |
11,64681911 | 17,68327662 |
3,863165224 | 27,83955694 |
11,79969452 | 26,59399987 |
5,146398915 | 25,55441326 |
3,612949488 | 30,45119158 |
4,142771588 | 24,96661786 |
7,455190952 | 30,28606323 |
4,587612816 | 29,81444738 |
Se hizo la siguiente operación, si el perceptrón entradas-salidas le ganaba al perceptrón entrada-salida, se acumula en cuánto perdió este último; caso contrario se acumula cuánto perdió el perceptrón entradas-salidas. El resultado fue:
Pérdida acumulada perceptrón múltiples entradas-salidas | Pérdida acumulada una entrada-salida |
---|---|
47,34227392 | 258,827636 |
El perceptrón entrada-salida frecuentemente es mejor en aproximación que el perceptrón entradas-salidas. Pero cuando este primero falla, su error es más grande en comparación con el segundo. Si es por confiabilidad me quedaría con el perceptrón entradas-salidas (que pierde por muy poco).
Descargue el programa en C# dando clic aquí