Você está na página 1de 5

Carlos Rodríguez Domínguez 2º B Ingeniería Informática

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
1
funciones más utilizadas son el sigmoide (f(x) = ) y la tangente
1 + e −ax
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

1
Carlos Rodríguez Domínguez 2º B Ingeniería Informática

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:

2
Carlos Rodríguez Domínguez 2º B Ingeniería Informática

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:

Wi = 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:

Wi = 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.

3
Carlos Rodríguez Domínguez 2º B Ingeniería Informática

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:

4
Carlos Rodríguez Domínguez 2º B Ingeniería Informática

- 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.

Você também pode gostar