xDDDD oka oka voy a dar explicaciones (o a tratar de darlas)
La historia es la siguiente:
Se quiere aproximar una función s(x)=(1+cos(2*pi*x))/2 con x e [0,1] con un perceptron multicapa
características del perceptron usado:
* 1 capa oculta de 3 neuronas
* 1 neurona en la capa de entrada (toma como entrada la variable X)
* 1 neurona en la capa de salida (da como salida la aproximación y(x) de s(x))
* La función de activación usada para las neuronas de la capa oculta y la capa de salida es del tipo SIGMOIDAL es decir f(t)=1/(1+exp(-t))
* La función de activación de la capa de entrada es la función identidad f(t)=t
las neuronas funcionan de la siguiente manera: dan como salida (las salidas se llaman "a"

la función de activación (f(t)) evaluada en el valor de t igual a la suma de todas las entradas que le llegan multiplicadas por unos coeficientes llamados pesos W sumados a un offset llamado U. Cada neurona tiene una sola salida y múltiples entradas, además de una entrada offset llamada U.
para calcular la salida de la neurona j de la capa n:
an_j = f( sumatorio por i de {wn-1_ij*an-1_i}+un_j)
los pesos y los offsets como explicaré mas adelante se adaptan siguiendo una regla llamada BACK PROPAGATION.
los subindices van de la siguiente forma:
(puede ser confuso leed con atención)
* salida ai_j : corresponde a la salida de la neurona J de la capa i
* peso wi_jk: peso aplicado a la salida de la neurona j de la capa i al entrar en la neurona k de la capa i+1
* entrada offset ui_j: entrada de offset de la neurona j de la capa i
el esquema de la red es el siguiente:
.....................................u2_1.....................................u3_1
......................................|.................................................|
.....................................v................................................v
x -->( )---w1_11----->( )----w2_11---------------------->( )-----> y
........... .........................................................................../. /
............ ...................................u2_2............................/. /
............. ..................................|................................../. /
................................................v.............................../. /
..................\__w1_12------->( )---w2_21-------------/. /
.................. .............................................................../
......................................................u2_3................../
.........................................................|....................../
........................................................v...................../
.........................__w1_13------->( )---w2_31-----/
juas vaya dibujo, cruzo los dedos para que lo veais bien
para calcular la salida y, se empieza des de la izquierda calculando la salida de las neuronas de la capa oculta (2) y luego tururut la salida de la capa 3 es decir y.
de donde salen los valores de w y u? w y u son los encargados de sintonizar la forma de la salida de la red para aproximar una función, la forma de encontrarlos es ENTRENAR LA RED, eso se hace cogiendo un cojunto de puntos del intervalo de x que queremos aproximar la función s(x) y mostrándolos a la red de forma repetida aplicando despues de entrar cada punto la regla de la retropropagacion para hacer converger los valores de w y u.
Como se hace:
REGLA DE LA RETROPROPAGACION
se empieza con el error entre y(x) [funcion aproximada] y s(x) [funcion que se quiere aproximar] y éste error se va propagando des de la capa de salida hasta la oculta. Para ello se calculan los llamados deltas generalizados.
para calcular los deltas y variar los pesos existen dos casos a distinguir: deltas de neuronas de la capa de salida, deltas de neuronas de cualquier otra capa.
* pesos de las entradas de la capa de salida: w2_i1 (de la neurona i de la capa 2 a la neurona de salida) para la iteracion M+1
W2_i1( M+1 ) = W2_i1(M)+ALFA*d3_1(M)*a2_i(M)
donde ALFA es el llamado coeficiente de entrenamiento: cuanto mas alto mas rapido varían los pesos
para el offset la formula es similar:
U3_1(M+1)=U3_1(M)+ALFA*d3_1(M)
como calcular d3_1(M)= - (s(x)-y(x))*y(x)*(1-y(x))
* pesos y offsets para la capa oculta: w1_1j (de la neurona de entrada a la neurona j de la capa oculta (2))
W1_1j(M+1)= W1_1j(M)+ALFA*d2_j(M)*(s(x)*W1_1j(M))
analogamente
U2_j(M+1)=U2_j(M)+ALFA*d2_j(M)
y para calcular
d2_j(M)=a2_j*(1-a2_j)*d3_1(M)*W2_j1(M)
-----------------------------------------------------------------------------------
el cálculo como veis es pesado y cabron y tiene que hacerse al introducir cada valor de x en la red....
a base de ir metiendo puntos y aplicando la regla los parametros W y U se van ajustando y el error cada vez es mas pequeño (de hecho hace una forma como de hipérbole).
Dudo que mi explicación sea suficiente para que nadie haga nada, pero así he justificado las etiquetas de las columnas de la plantilla de excel.
Os animo a consultar bibliografía y probar de hacer algo.
Saludos.