Está en la página 1de 16

TEORIAS BASICAS DE REDES

NEURONALES
1. ¿Qué es una neurona artificial?

Una neurona artificial es un programa que


recibe diversas entradas, ya sean externas o
de otras neuronas, las combina y produce una
salida.
2. ¿Para que sirven los pesos en las
señales de entrada de una neurona
artificial?
Los pesos son realmente la forma de aprender que
tendrá la neurona. Estos pesos se irán modificando de
cierta manera para ir adaptando el valor de la salida
de tal forma que se minimice su error con respecto al
resultado real que debería sacar la neurona artificial.
3. ¿A qué se le llama valor de entrada
neto?
El valor de entrada neto será la combinación de las
entradas multiplicadas por los diferentes pesos.
Matemáticamente esto podría expresarse como:
W1 * x1 + W2 * x2 + … + Wn * Xn
Siendo Wi los distintos pesos y xi las entradas a la
neurona.
4. ¿Qué es la función de activación de una
neurona artificial y que tipos hay?
La función de activación calculará la salida de la neurona a partir de los valores
de entrada netos y, solamente en algunos casos, de la salida anterior de la
neurona artificial.
Los distintos tipos de funciones de activación existentes son los siguientes:
Funciones umbral: Si los valores de entrada netos superan un cierto umbral la
neurona devolverá una señal de activación positiva, por ejemplo “1”, y si no lo
superan devolverá una señal negativa, por ejemplo “0” o “-1”. El umbral de la
función se suele notar mediante Ө y se suele nombrar como bias.
Funciones en forma “S”: Estas funciones no devolverán simplemente un valor
positivo o negativo, como devolvían las funciones umbral, sino que ahora se
devolverá un grado de acercamiento positivo o negativo, es decir, que en vez de
“0” o “1” se devolverán valores del tipo “0.2”, “0.9”, “0.6”, “1”, etc. Las funciones
más utilizadas son el sigmoide (f(x) = 1 / y la tangente hiperbólica (f(x) = tanh(x)).
Otras: Además de las funciones antes descritas se utilizan otras como la función
rampa, lineal identidad o semilineal.
5. ¿Qué es una red neuronal y de que
consta?
 Una red neuronal en un conjunto de neuronas artificiales divididas en
capas. Cada neurona de una capa estará conectada con todas las
neuronas de la capa siguiente mediante unos arcos con pesos. Los pesos
de estos arcos serán modificados durante la fase de aprendizaje de la red
neuronal para conseguir que en la salida de la red se muestren los
resultados deseados. Las capas de la red las dividiremos en tres tipos: la
capa de entradas, la(s) capa(s) oculta(s) y la capa de salida. La capa de
entrada será una la primera capa de la red y por ella se introducirán los
datos a la red. En ésta capa habrá tantas neuronas como entradas
necesite la red. La capa oculta puede ser única o haber varias capas
ocultas, según el problema y el diseño de la red que se haga. Ésta capa
será la encargada de realizar el paso o pasos intermedios entre la capa de
entrada y la capa de salida. La capa de salida será la encargada de
sacar los resultados obtenidos al exterior. El número de neuronas de ésta
capa vendrá definido por el problema en sí que estemos resolviendo.
6. ¿Cuáles son las fases de
procesamiento de una red neuronal?
 En una red neuronal existen dos fases de procesamiento:

 Fase de aprendizaje: En ésta fase tenemos una red que inicialmente es
genérica y mediante una serie de ejemplos iremos adaptando los pesos de los
arcos de tal manera que produzca las salidas que nosotros deseemos.
Conviene que el conjunto de ejemplos sea lo suficientemente amplio como
para que abarquemos todos los posibles rangos de valores de entrada. En ésta
fase hay que tener un especial cuidado con no extenderla demasiado, puesto
que se puede producir un fenómeno llamado sobreentrenamiento, es decir,
que la red neuronal se adapte tan perfectamente al conjunto de datos de
ejemplo que no produzca resultados aceptables con datos que no
pertenezcan a éste conjunto.
 Fase de presentación: En ésta fase la red neuronal ya está entrenada y
podemos utilizarla para resolver un problema determinado. En ésta fase ya no
hay modificaciones en los pesos.
7. ¿Qué es un perceptrón y como
aprende?
 El perceptrón es la red neuronal más simple, puesto que tan solo posee
una capa con tantas entradas y salidas como sean necesarias para
resolver un problema determinado.
 El perceptrón se puede simplificar hasta llegar al denominado “perceptrón
simple”, que consta de una sola neurona, posee tan solo dos entradas y
tiene una única salida binaria con valores 1 ó -1. La función de activación
que utiliza es de tipo umbral, por lo que podríamos expresar la salida del
perceptrón simple mediante la función:
1 si W1 * x1 + W2 * x2 < Ө F(x) = -1 si W1 * x1 + W2 * x2 > Ө
 Lo que gráficamente se traduciría en:
 En cuanto al aprendizaje de un perceptrón, tendremos que asignar
inicialmente unos pesos aleatorios. A continuación, le introduciremos un
vector de entrada. Si el resultado de la salida es incorrecto, calcularemos
el error (diferencia entre la salida deseada y la obtenida) y modificaremos
los pesos mediante la fórmula:

 W i = Wi + error * xi

 Por último, volveremos a introducir sucesivamente distintos valores de


entrada y a aplicar reiteradamente todo lo anterior hasta obtener los
resultados de salida que deseemos.
8. ¿Qué es el Adaline y como
aprende?
 El Adaline sigue la misma idea del perceptrón, pero con la diferencia de que su
función de activación es lineal, y por tanto su salida es un número real.
 Para aprender, el Adaline utiliza una fórmula de modificación de pesos
conocida como la regla delta, basada en calcular el error en base al descenso
en gradiente del mismo, y cuya ecuación es la siguiente:
 W i = Wi + α * error * xi
 Siendo α una constante cualquiera, con un valor pequeño pero mayor que
cero, que nos permitirá realizar el avance en el descenso en gradiente.
 Con la fórmula anterior, ahora sólo quedaría aplicar el algoritmo de
aprendizaje del perceptrón, intercambiando su fórmula de modificación de
pesos por ésta, y teniendo en cuenta a la hora de parar la ejecución del
algoritmo, que en el Adaline el error nunca llegará a ser cero.
9. ¿Porqué son necesarias las redes
neuronales con más de una capa?
 Las redes monocapa son tan solo útiles cuando el problema que deseamos
solucionar es linealmente separable, es decir, cuando con una sola recta
podemos separar valores de un tipo y valores de otro (negativos y positivos,
falsos y verdaderos, etc.), pero esto ocasiona un gran inconveniente, puesto
que la gran mayoría de los problemas que existen en la práctica no son
linealmente separables. Por poner un ejemplo de uno muy sencillo, aprender la
función lógica XOR mediante una red con una sola capa es imposible. Si lo
vemos gráficamente:

 Podemos comprobar que es imposible con una única recta separar los ceros
de los unos, por tanto es necesaria una red neuronal multicapa.
10. ¿Cuáles son las características de
red neuronal multicapa?
 Una red neuronal multicapa debe tener una función de activación no
lineal, puesto que se puede comprobar fácilmente que si utilizásemos una
red multicapa con función lineal de activación sería equivalente a utilizar
una red monocapa, por lo que no obtendríamos ninguna ventaja.
 Las redes neuronales multicapa permiten aproximar cualquier función que
se desee, añadiendo según sea necesario un número determinado de
neuronas y capas, y sin necesidad de que la función a aproximar sea
linealmente separable.
11. ¿Cómo aprende una red multicapa
(o que es el Backpropagation)?
 Las redes multicapa se entrenan mediante un algoritmo conocido como backpropagation. Su
idea básica es muy parecida a la de los algoritmos de entrenamiento para redes monocapa.
Consiste en calcular el error en la salida, ajustar los pesos de la capa de salida para reducir el
error y propagar ese error hacia las capas ocultas y de entrada, respectivamente. El algoritmo
buscará, por tanto, el mínimo de la función de error y ajustará los pesos con respecto a ese error.
Como debemos de hallar el mínimo de una función, es preciso que la función de activación que
utilicemos sea diferenciable.
 El algoritmo puede tener ciertos problemas: puede ser que no encuentre el mínimo absoluto de
la función, que tan solo encuentre un mínimo local, que se encuentre con una zona de
pendiente nula y que se quede ahí estancado, o que se encuentre con una zona de pendiente
muy pequeña y que se ralentice mucho el aprendizaje.
 Para solucionar los problemas anteriores se plantea, primeramente, hacer correr muchas veces
el algoritmo con pesos aleatorios y quedarnos con el mejor de todos los resultados, con idea de
solucionar con bastante seguridad el problema de los mínimos locales, y por otro lado,
incorporar a la fórmula de cálculo de pesos una nueva variable momentum que “empuje” a la
función y evite que se estanque en zonas con poco gradiente o en puntos de inflexión. Por
tanto, la fórmula de cálculo de pesos sería:
 W(t) = W(t-1) + ∆W(t) + momentum * ∆W(t-1)
12. ¿Qué factores influyen en el
rendimiento de una red multicapa?
 El número de muestras de aprendizaje tomadas es esencial. El número de
muestras debe ser muy alto para minimizar el error y asegurar que nuestra
red responderá correctamente a cualquier tipo de entrada.
 - El número de unidades ocultas tiene un efecto positivo, pero tan sólo
hasta cierto punto, puesto que, aunque siempre se minimizará más el error
en el conjunto de entrenamiento, puede ser que un número muy alto de
unidades ocultas ocasione un aumento del error en el conjunto de test.
Para hallar el número exacto de unidades ocultas podemos recurrir a
métodos empíricos que nos generen gráficas como éstas:
 El número de iteraciones del algoritmo de aprendizaje es decisivo, puesto
que si realizamos demasiadas iteraciones, puede ocurrir un efecto
conocido como sobreentrenamiento, es decir, que la red se adecue tan
perfectamente al conjunto de entrenamiento que con cualquier valor de
entrada que no esté en ese conjunto produzca un error muy alto. Para
obtener el número de iteraciones necesarias para que nuestra red
funcione lo mejor posible podemos recurrir a métodos empíricos como el
anterior.
13. ¿Cómo sabemos si nuestra red
neuronal es “buena”?
 Primero debemos asegurarnos de que nuestro conjunto de entrenamiento sea
amplio y recoja una gran amplitud de casos que vayamos a encontrar en la
práctica. También hay que tener un enorme cuidado con el
sobreentrenamiento, es decir, no debemos entrenar a nuestra red demasiado,
ya que puede ocasionar que en los conjuntos de test o en la práctica se
ocasionen errores muy grandes. Una buena idea para saber cuando parar de
entrenar a la red es el método hold out, que consiste en dividir el conjunto de
datos de entrenamiento en tres conjuntos: el de entrenamiento, el de
validación y el de test, utilizar solo y exclusivamente el conjunto de
entrenamiento para entrenar a la red e ir minimizando el error mediante el
conjunto de validación.
 Finalmente, para saber si nuestra red soluciona realmente un problema
determinado, es preciso, una vez entrenada, probarla en muchas situaciones y
crear una estadística de los errores obtenidos, pudiendo crear con gran
fiabilidad un porcentaje medio de error. Si el porcentaje de error medio
obtenido no es el esperado, deberemos volver a entrenar la red.

También podría gustarte