5
σ(u)= 1 1 + exp(-u) . ∂σ(u) ∂u = σ(u)(1 - σ(u)).

Perceptrón multicapa y algoritmo backpropagation

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Perceptrón multicapa y algoritmo backpropagation

Perceptrón multicapa y algoritmo backpropagation

Dr. Wilfrido Gómez Flores

1. Preeliminares

1.1. Perceptrón multicapa

Considere un perceptrón multicapa (MLP) con tres capas: entrada→oculta→salida, comose muestra en la Figura 1.

Figura 1: Un MLP totalmente conectado de tres capas y la notación utilizada para la derivacióndel algoritmo backpropagation.

1.2. Función sigmoidal

La función sigmoidal se utiliza comúnmente como función de activación en las capas ocultas:

σ(u) =1

1 + exp(−u). (1)

Primera derivada de la función sigmoidal:

∂σ(u)

∂u= σ(u)(1− σ(u)). (2)

1

Page 2: Perceptrón multicapa y algoritmo backpropagation

1.3. Función softmax

En problemas de clasi�cación multiclase, la capa de salida es una función softmax:

σ(uk) =exp(uk)∑cl=1 exp(ul)

, k = 1, . . . , c. (3)

Primera derivada de la función softmax:

∂σ(uk)

∂uj=

{σ(uk)(1− σ(uj)) k = j,

−σ(uj)σ(uk) k 6= j.(4)

1.4. Función de pérdida

El entrenamiento de un MLP consiste en encontrar el conjunto de pesos que reduzca laentropía cruzada categórica entre la salida de la red y la referencia (o etiqueta de clase):

J(w) = −c∑

k=1

tk log(zk), (5)

donde t = [t1, . . . , tc]T es la salida deseada en formato one-hot-encoding, z = [z1, . . . , zc]

T es elvector de respuestas en la capa de salida, y w representa a todos los pesos en la red.

1.5. Regla de la cadena

La salida de la MLP se puede ver como una interacción de varias funciones sigmoidales ypesos sinápticos para generar una salida que puede cuanti�carse en términos de una función depérdida. Entonces, el valor de la función de pérdida J está determinado por una composición defunciones sigmoidales y para calcular su derivada se debe hacer uso de la regla de la cadena, lacual establece que si una variable y, depende de una segunda variable u, que a la vez depende deuna tercera variable x; entonces, la razón de cambio de y con respecto a x puede ser calculadacon el producto de la razón de cambio de y con respecto a u multiplicado por la razón de cambiode u con respecto a x. La regla de la cadena se puede expresar como:

dy

dx=dy

du

du

dx. (6)

2. Algoritmo backpropagation

La regla de entrenamiento backpropagation está basada en descenso de gradiente y regla dela cadena. Los pesos se inicializan aleatoriamente y cambian en la dirección que reduce el errormediante la regla Delta:

∆w = −η ∂J∂w

, (7)

donde η es la taza de aprendizaje. Entonces la regla de actualización en la t-ésima iteración es:

w(t+ 1) = w(t) + ∆w(t). (8)

Para derivar el algoritmo de entrenamiento backpropagation, considere un MLP con tres capas(entrada→oculta→salida) como se muestra en la Figura 1.

2

Page 3: Perceptrón multicapa y algoritmo backpropagation

2.1. Actualización de los pesos de la la capa oculta→salida

Derivar la función de pérdida J(w) con respecto de los pesos de la capa oculta→salidamediante la regla de la cadena:

∂J

∂wkj=∂J

∂zk

∂zk∂ukj

∂ukj∂wkj

, (9)

dondeukj = yjwkj, (10)

es decir, la respuesta del j-ésimo nodo oculto multiplicada por el peso wkj que lo conecta conel k-ésimo nodo de salida. Se puede simpli�car (9) para solamente calcular:

∂J

∂wkj=

∂J

∂ukj︸ ︷︷ ︸A

∂ukj∂wkj︸ ︷︷ ︸B

. (11)

Sustituyendo (5) en el término A de (11) se tiene:

∂J

∂ukj=

∂ukj

(−

c∑k=1

tk log zk

), (12)

= −c∑

k=1

tk∂

∂ukj(log zk), (13)

= −c∑

k=1

tkzk

∂zk∂ukj︸ ︷︷ ︸A.1

. (14)

Nótese que el término A.1 en (14) corresponde con la derivada de la función softmax dadaen (4), en donde se tienen dos casos: k = j y k 6= j; por tanto,

∂J

∂ukj= −

[tkzk

∂zk∂ukj

+c∑

k=1,k 6=j

tjzj

∂zj∂ukj

]. (15)

Sustituyendo (4) en (15) se tiene:

∂J

∂ukj= −

[tk

��zk��zk(1− zk) +

c∑k=1,k 6=j

tj

��zj

(−zk��zj)

](16)

= −tk(1− zk) +c∑

k=1,k 6=j

tjzk (17)

= −tk + tkzk +c∑

k=1,k 6=j

tjzk (18)

= zk

(tk +

c∑k=1,k 6=j

tj

)︸ ︷︷ ︸

A.2

−tk. (19)

Nótese que el término A.2 en (19) es equivalente a∑c

k=1 tk = 1 (debido a que tk es la salidadeseada en formato one-hot encoding). Por tanto,

∂J

∂ukj= zk − tk. (20)

3

Page 4: Perceptrón multicapa y algoritmo backpropagation

Por otro lado, sustituyendo (10) en el término B de (11) se tiene:

∂ukj∂wkj

=∂

∂wkj(yjwkj) , (21)

= yj�����

1∂wkj∂wkj

, (22)

= yj. (23)

Finalmente, sustituyendo (20) y (23) en (11) se tiene:

∂J

∂wkj= (zk − tk) yj. (24)

Por tanto, sustituyendo (24) en (7), se obtiene la regla Delta para actualizar los pesos de lacapa oculta→salida:

∆wkj = −η (zk − tk)︸ ︷︷ ︸δk

yj. (25)

2.2. Actualización de los pesos de la la capa entrada→oculta

Derivar la función de pérdida J(w) con respecto de los pesos de la capa entrada→ocultamediante la regla de la cadena:

∂J

∂wji=

∂J

∂yj︸︷︷︸A

∂yj∂uji︸︷︷︸B

∂uji∂wji︸ ︷︷ ︸C

, (26)

dondeuji = xiwji, (27)

es decir, la i-ésima variable del patrón de entrada x = [x1, . . . , xi, . . . , xd]T multiplicada por el

peso wji que lo conecta con el j-ésimo nodo oculto.Por regla de la cadena, el término A en (26) es equivalente a:

∂J

∂yj=

c∑k=1

∂J

∂ukj

∂ukj∂yj

, (28)

lo cual indica que la respuesta yj del j-ésimo nodo oculto se distribuye a los c nodos de salida,donde ∂J

∂ukjestá dada por (20) y que es igual a δk en (25); por tanto,

∂J

∂yj=

c∑k=1

δk∂ukj∂yj

. (29)

Sustituyendo (10) en (29) y resolviendo se tiene:

∂J

∂yj=

c∑k=1

δk∂

∂yj(yjwkj), (30)

=c∑

k=1

δkwkj����7

1∂yj∂yj

, (31)

=c∑

k=1

δkwkj. (32)

4

Page 5: Perceptrón multicapa y algoritmo backpropagation

Nótese que yj en el término B en (26) representa la respuesta del j-ésimo nodo ocultoactivado por la función sigmoidal en (1), es decir,

yj = σ(uji). (33)

Por tanto, sustituyendo (33) en el término B en (26) se tiene:

∂yj∂uji

=∂

ujiσ(uji). (34)

De acuerdo con la derivada de la función sigmoidal en (2), la derivada en (34) queda como:

∂yj∂uji

= σ(uji)(1− σ(uji)). (35)

Por otro lado, sustituyendo (27) en el término C en (26) se tiene:

∂uji∂wji

=∂

∂wji(xiwji) , (36)

= xi∂wji∂wji

, (37)

= xi. (38)

Finalmente, sustituyendo (32), (35) y (38) en (26) se tiene:

∂J

∂wji=

(c∑

k=1

δkwkj

)(σ(uji)(1− σ(uji)))xi. (39)

Por tanto, sustituyendo (39) en (7), se obtiene la regla Delta para actualizar los pesos de lacapa entrada→oculta:

∆wji = −η

(c∑

k=1

δkwkj

)(σ(uji)(1− σ(uji)))︸ ︷︷ ︸

δj

xi. (40)

5