Skip to content

Artificial Neural Networks (ANNs)#

Modelo del perceptron (Perceptron model)#

flowchart LR
subgraph inputs
x1[x1]
x2[x2]
end

fx(("f(X)"))

subgraph Output
y[y]
end

x1 -- w1+b--> fx
x2 -- w2+b --> fx
fx --> y

w: weight
b: bias

\(\hat{y} = \sum_{i=1}^{n} x_iw_i + b_i\)

y si a帽adimos que \(B = b1+b2+...+bn\)

\(\hat{y} = B + \sum_{i=1}^{n} x_iw_i\)

Redes neuronales (Neural networks)#

Las redes neuronales se generan al unir varios modelos de perceptr贸n en lo que se llama modelo del perceptr贸n multicapa (multi-layer perceptron model).

Las salidas de una capa de perceptrones, se usa como entrada para la siguinte capa de perceptrones.

Los perceptrones tambi茅n se llaman neuronas.

flowchart LR
subgraph layer 1 - Input layer
l1p1((L1P1))
l1p2((L1P2))
l1pn((L1Pn))
end

subgraph layer 2
l2p1((L2P1))
l2p2((L2P2))
l2pn((L2Pn))
end

subgraph layer n
lnp1((LnP1))
lnp2((LnP2))
lnpn((LnPn))
end

subgraph Output - Output layer
o[output]
end

l1p1 --> l2p1
l1p1 --> l2p2
l1p1 --> l2pn

l1p2 ==> l2p1
l1p2 ==> l2p2
l1p2 ==> l2pn

l1pn -.-> l2p1
l1pn -.-> l2p2
l1pn -.-> l2pn

l2p1 --> lnp1
l2p1 --> lnp2
l2p1 --> lnpn

l2p2 ==> lnp1
l2p2 ==> lnp2
l2p2 ==> lnpn

l2pn -.-> lnp1
l2pn -.-> lnp2
l2pn -.-> lnpn

lnp1 --> o
lnp2 ==> o
lnpn -.-> o

L: layer

P: perceptron

  • La primera capa se llama capa de entrada (input layer).
  • La 煤ltima capa se llama capa de salida (output layer). Esta 煤ltima capa puede tener una o m谩s neuronas.
  • Las capas entre la capa de entrada y salida se llaman capas escondidas (hidden layers).

Se considera que una red es una redes neuronal profunda (deep neural networks) cuando contiene 2 o m帽as capas escondidas.

Funciones de activaci贸n (activation functions)#

Estas funciones se usan para limitar la salida de cada neurona.

\(Z = W*x + b\)

Activation function Traducci贸n al espa帽ol Descripci贸n
Step function Funci贸n paso Salida es 0 si Z<=0, o salida es 1 si Z>0
Sigmoid function Funci贸n sigmoide Parecida a la step function (mismos l铆mites) pero m谩s suave. \(f(z) = \dfrac{1}{(1+e^{-z})}\)
Hyperbolic Tangent - tanh(z) Tangente hiperb贸lica Como la funci贸n sigmoide, pero en lugar de entre 0 y 1 es entre -1 y 1
Rectified Linear Unit - ReLU Relu Salida es 0 si Z<=0, o salida es Z si Z>0. \(f(z) = \max(0,z)\)

To see more activation functions, see link below.

https://en.wikipedia.org/wiki/Activation_function

Clasificaci贸n multiclase#

Principalmente hay dos tipos de clasificaci贸n multiclase.

  • Clases no exclusivas. Cuando un dato puede ser asignados a varias clases o categer铆as.
  • Clases mutuamente exclusivas. Cuando s贸lo se puede asignar a un dato una clase o categor铆a.

La mejor forma de organizar multiples clases es tener un nodo de salida por clase o categor铆a.

Funci贸n de coste y descenso del gradiente#

La funci贸n de coste, tambi茅n llamada como funci贸n de p茅rdida, es la media de la diferencia entre la salida de nuestra red neuronal y el valor real.

Una de las funciones de coste m谩s comunes es la funci贸n de coste cuadr谩tica.

\(C = \dfrac{1}{2n}\sum_{x} abs(y(x)-a^L(x))^2\)

y(x): Valores reales
a(x): Valores de predicciones
L: suele ser la 煤ltima capa.
$a^L(x): $ Salida de la funci贸n de activaci贸n de la capa L.

Se puede pensar en la funci贸n de coste, como una func贸n que depende de 4 elementos principalmante.

\(C(W,B, S^r, E^r)\)

\(W\): Pesos de la red.
\(B\): Todos los bias de la red
\(S^r\): Entrada de una muestra de entrenamiento.
\(E^r\): Salida deseada de esa muestra de entrenamiento.

Lo normal ser铆a utilizar la combinaci贸n de elementos que genera el error m谩s bajo, pero calcular esto es muy complejo.

Si cogemos como ejemplo que la funci贸n de coste genera una par谩bola invertida, hay un m铆nimo en un punto, que ser铆a el gradiente (representa la pendiente de la recta tangente a la gr谩fica de una funci贸n - es parecido a la derivada) igual a cero, pero calcular justo el error en ese punto es complicado cuando trabajamos con m谩s de una dimensi贸n, y al mismo tiempo coger una muestra para ver si es un m铆nimo depende frecuencia de muestreo, esta frecuencia se denomina como tasa de aprendizaje (learning rate).

Learning rate

La t茅cnica descenso del gradiente adaptativo intenta solucionar el problema de la tasa de aprendizaje, usando una frecuencia alta cuando el error es muy grande, y una frecuencia menor cuando el gradiente se acerca a cero.

Video donde se explica el descenso del gradiente

Dentro de la t茅cnica del descenso del gradiente adaptativo, uno de los m茅todos m谩s eficiente y com煤n para encontrar estos m铆nimos es usar el m茅todo Adam ("A method for Stochastic Optimization").

Para problemas de clasificaci贸n, normalmente se usa la funci贸n de coste de entrop铆a cruzada(cross entropy).

Retropropagaci贸n (Backpropagation)#

La retropropagaci贸n es la t茅cnica que se usa para ajustar los pesos y bias (sesgos) de las diferentes neuronas en cada capa.

Se comienza desde la 煤ltima capa L hacia la izquierda, L-1, L-2, ... L-n.

Enfocandonos en las 煤ltimas dos capas (L y L-1).

\(z = wx+b\)

y la funci贸n de activaci贸n

\(a = \sigma(Z)\)

Significa que tenemos

\(z^L = w^La^{L-1}+b^L\)

\(z^L\): Salida de la capa L
\(w^L\): Pesos de la capa L
\(a^{L-1}\): Funci贸n de activaci贸n de la capa anterior = Salida de la capa anterior
\(b^L\): Bias/Sesgos de la capa L

Si contamos todas las capas.

\(a^L = \sigma(Z^L)\)

La funci贸n de coste quedar铆a:

\(C_0(...) = (a^L-y)^2\)

\(y\): Salida real

La idea de retroproagaci贸n es ir calculando el error en cada capa y usando el gradiente/derivada intentar minimizar dicho error. En un lenguaje m谩s cotidiano, calcular con las derivadas parciales como se ve afectada la funci贸n de coste cuando se modifica uno de los par谩metros de las neuronas.

\(\frac{\delta C}{\delta w}\)

Cuando nos referimos s贸lo a la 煤ltima capa:

\(\frac{\delta C}{\delta w^L} =\frac{\delta C}{\delta a^L}\frac{\delta a^L}{\delta z^L}\frac{\delta z^L}{\delta w^L}\)

Link explicando las funciones matem谩ticas (en ingl茅s)

Video es espa帽ol sobre backpropagation

Video es espa帽ol sobre matem谩ticas de backpropagation