Una red neuronal artificial (ANN) combina principios biológicos con estadísticas avanzadas para resolver problemas en dominios como el reconocimiento de patrones y el juego. Las ANN adoptan el modelo básico de neuronas análogas conectadas entre sí de diversas formas.
Estructura
Neurona
Una neurona con etiqueta. recibir una entrada de las neuronas predecesoras consta de los siguientes componentes: [1]
- una activación , el estado de la neurona, dependiendo de un parámetro de tiempo discreto,
- un umbral opcional , que permanece fijo a menos que se cambie con el aprendizaje,
- una función de activación que calcula la nueva activación en un momento dado de , y la entrada neta dando lugar a la relación
- y una función de salida calcular la salida de la activación
A menudo, la función de salida es simplemente la función de identidad .
Una neurona de entrada no tiene predecesora, pero sirve como interfaz de entrada para toda la red. De manera similar, una neurona de salida no tiene sucesor y, por lo tanto, sirve como interfaz de salida de toda la red.
Función de propagación
La función de propagación calcula la entrada a la neurona de las salidas y normalmente tiene la forma [2]
Parcialidad
Se puede agregar un término de sesgo, cambiando la forma a la siguiente: [3]
- dónde es un sesgo.
Redes neuronales como funciones
Los modelos de redes neuronales pueden verse como la definición de una función que toma una entrada (observación) y produce una salida (decisión).
o una distribución sobre o ambos y . A veces, los modelos están íntimamente asociados con una regla de aprendizaje particular. Un uso común de la frase "modelo ANN" es realmente la definición de una clase de tales funciones (donde los miembros de la clase se obtienen mediante parámetros variables, pesos de conexión o detalles específicos de la arquitectura, como el número de neuronas, el número de capas o su conectividad).
Matemáticamente, la función de red de una neurona se define como una composición de otras funciones , que además se puede descomponer en otras funciones. Esto se puede representar convenientemente como una estructura de red, con flechas que representan las dependencias entre funciones. Un tipo de composición ampliamente utilizado es la suma ponderada no lineal , donde, dónde (comúnmente conocida como función de activación [4] ) es alguna función predefinida, como la tangente hiperbólica , la función sigmoidea , la función softmax o la función rectificadora . La característica importante de la función de activación es que proporciona una transición suave a medida que cambian los valores de entrada, es decir, un pequeño cambio en la entrada produce un pequeño cambio en la salida. Lo siguiente se refiere a una colección de funcionescomo vector .
Esta figura muestra tal descomposición de , con dependencias entre variables indicadas por flechas. Estos se pueden interpretar de dos formas.
La primera vista es la vista funcional: la entrada se transforma en un vector tridimensional , que luego se transforma en un vector bidimensional , que finalmente se transforma en . Esta vista se encuentra más comúnmente en el contexto de la optimización .
La segunda vista es la vista probabilística: la variable aleatoria depende de la variable aleatoria , que depende de , que depende de la variable aleatoria . Esta vista se encuentra más comúnmente en el contexto de modelos gráficos .
Las dos vistas son en gran parte equivalentes. En cualquier caso, para esta arquitectura en particular, los componentes de las capas individuales son independientes entre sí (por ejemplo, los componentes de son independientes entre sí dados sus aportes ). Esto, naturalmente, permite cierto grado de paralelismo en la implementación.
Las redes como la anterior se denominan comúnmente feedforward , porque su gráfico es un gráfico acíclico dirigido . Las redes con ciclos se denominan comúnmente recurrentes . Tales redes se representan comúnmente de la manera que se muestra en la parte superior de la figura, dondese muestra como dependiente de sí mismo. Sin embargo, no se muestra una dependencia temporal implícita.
Retropropagación
Los algoritmos de entrenamiento de retropropagación se dividen en tres categorías:
- descenso más pronunciado (con velocidad e impulso de aprendizaje variables , retropropagación resiliente );
- cuasi-Newton ( Broyden-Fletcher-Goldfarb-Shanno , secante de un paso );
- Levenberg – Marquardt y gradiente conjugado (actualización de Fletcher – Reeves, actualización de Polak – Ribiére, reinicio de Powell – Beale, gradiente conjugado escalado). [5]
Algoritmo
Dejar ser una red con conexiones, entradas y salidas.
Debajo, denota vectores en , vectores en , y vectores en . Estos se denominan entradas , salidas y pesos , respectivamente.
La red corresponde a una función que, dado un peso , mapea una entrada a una salida .
En el aprendizaje supervisado, una secuencia de ejemplos de formación produce una secuencia de pesos a partir de un peso inicial , generalmente elegido al azar.
Estos pesos se calculan a su vez: primer cálculo usando solo por . La salida del algoritmo es entonces, dando una nueva función . El cálculo es el mismo en cada paso, por lo tanto, solo el caso es descrito.
se calcula a partir de considerando un peso variable y aplicando el descenso de gradiente a la función para encontrar un mínimo local, comenzando en .
Esto hace el peso minimizador encontrado por el descenso de gradiente.
Aprendizaje de pseudocódigo
Para implementar el algoritmo anterior, se requieren fórmulas explícitas para el gradiente de la función donde la función es .
El algoritmo de aprendizaje se puede dividir en dos fases: propagación y actualización de peso.
Propagación
La propagación implica los siguientes pasos:
- Propagación hacia adelante a través de la red para generar los valores de salida
- Cálculo del costo (término de error)
- Propagación de las activaciones de salida a través de la red utilizando el patrón de entrenamiento objetivo para generar los deltas (la diferencia entre los valores de salida objetivo y real) de todas las neuronas de salida y ocultas.
Actualización de peso
Por cada peso:
- Multiplique el delta de salida del peso y la activación de entrada para encontrar el gradiente del peso.
- Reste la proporción (porcentaje) de la pendiente del peso del peso.
La tasa de aprendizaje es la relación (porcentaje) que influye en la velocidad y la calidad del aprendizaje. Cuanto mayor sea la proporción, más rápido se entrena la neurona, pero cuanto menor sea la proporción, más preciso será el entrenamiento. El signo de la pendiente de un peso indica si el error varía directamente o inversamente al peso. Por tanto, el peso debe actualizarse en sentido contrario, "descendiendo" la pendiente.
El aprendizaje se repite (en nuevos lotes) hasta que la red funciona adecuadamente.
Pseudocódigo
Pseudocódigo para un algoritmo de descenso de gradiente estocástico para entrenar una red de tres capas (una capa oculta):
inicializar pesos de la red (a menudo pequeños valores aleatorios) hacer para cada ejemplo de entrenamiento nombrados ex hacer predicción = neural-net-salida (red, ex) // pase real = maestro-salida (ex) calcular el error (predicción - real) en las unidades de salida calcular para todos los pesos desde la capa oculta hasta la capa de salida // cálculo de paso hacia atráspara todas las ponderaciones desde la capa de entrada a la capa oculta // pase hacia atrás actualización continuada de las ponderaciones de la red // capa de entrada no modificada por la estimación del error hasta que la tasa de error sea aceptablemente baja devolver la red
Las líneas etiquetadas como "paso hacia atrás" se pueden implementar utilizando el algoritmo de propagación hacia atrás, que calcula el gradiente del error de la red con respecto a los pesos modificables de la red. [6]
Referencias
- ^ Zell, Andreas (2003). "capítulo 5.2". Neuronaler de simulación Netze [ Simulación de redes neuronales ] (en alemán) (1ª ed.). Addison-Wesley. ISBN 978-3-89319-554-1. OCLC 249017987 .
- ^ Zell, Andreas (2003). "capítulo 5.2". Neuronaler de simulación Netze [ Simulación de redes neuronales ] (en alemán) (1ª ed.). Addison-Wesley. ISBN 978-3-89319-554-1. OCLC 249017987 .
- ^ DAWSON, CHRISTIAN W (1998). "Un enfoque de red neuronal artificial para el modelado de lluvia-escorrentía". Revista de Ciencias Hidrológicas . 43 (1): 47–66. doi : 10.1080 / 02626669809492102 .
- ^ "El Diccionario de Aprendizaje Automático" . www.cse.unsw.edu.au . Archivado desde el original el 26 de agosto de 2018 . Consultado el 18 de agosto de 2019 .
- ^ M. Forouzanfar; HR Dajani; VZ Groza; M. Bolic & S. Rajan (julio de 2010). Comparación de algoritmos de entrenamiento de redes neuronales de alimentación hacia adelante para la estimación oscilométrica de la presión arterial . 4to Int. Taller de Aplicaciones de Soft Computing. Arad, Rumania: IEEE.
- ^ Werbos, Paul J. (1994). Las raíces de la retropropagación . De derivados ordenados a redes neuronales y pronóstico político. Nueva York, NY: John Wiley & Sons, Inc.