PyTorch - Conceptos básicos de redes neuronales
El principio fundamental de la red neuronal incluye una colección de elementos básicos, es decir, neurona artificial o perceptrón. Incluye varias entradas básicas como x1, x2… .. xn que produce una salida binaria si la suma es mayor que el potencial de activación.
La representación esquemática de la neurona de muestra se menciona a continuación:
La salida generada se puede considerar como la suma ponderada con potencial de activación o sesgo.
$$ Salida = \ sum_jw_jx_j + Bias $$
La arquitectura de red neuronal típica se describe a continuación:
Las capas entre la entrada y la salida se denominan capas ocultas, y la densidad y el tipo de conexiones entre las capas es la configuración. Por ejemplo, una configuración totalmente conectada tiene todas las neuronas de la capa L conectadas a las de L + 1. Para una localización más pronunciada, podemos conectar solo un vecindario local, digamos nueve neuronas, a la siguiente capa. La figura 1-9 ilustra dos capas ocultas con conexiones densas.
Los diversos tipos de redes neuronales son los siguientes:
Redes neuronales feedforward
Las redes neuronales feedforward incluyen unidades básicas de la familia de redes neuronales. El movimiento de datos en este tipo de red neuronal es desde la capa de entrada a la capa de salida, a través de las capas ocultas presentes. La salida de una capa sirve como capa de entrada con restricciones sobre cualquier tipo de bucle en la arquitectura de red.
Redes neuronales recurrentes
Las redes neuronales recurrentes son cuando el patrón de datos cambia en consecuencia durante un período. En RNN, se aplica la misma capa para aceptar los parámetros de entrada y mostrar los parámetros de salida en la red neuronal especificada.
Las redes neuronales se pueden construir utilizando el paquete torch.nn.
Es una red de alimentación directa simple. Toma la entrada, la alimenta a través de varias capas una tras otra, y finalmente da la salida.
Con la ayuda de PyTorch, podemos utilizar los siguientes pasos para el procedimiento de entrenamiento típico de una red neuronal:
- Defina la red neuronal que tiene algunos parámetros (o pesos) que se pueden aprender.
- Iterar sobre un conjunto de datos de entradas.
- Procesar la entrada a través de la red.
- Calcule la pérdida (qué tan lejos está la salida de ser correcta).
- Propague gradientes de regreso a los parámetros de la red.
- Actualice los pesos de la red, generalmente usando una actualización simple como se indica a continuación
rule: weight = weight -learning_rate * gradient