Almacenamiento de memoria de red neuronal/aprendizaje automático
Actualmente estoy intentando configurar una red neuronal para la extracción de información y conozco bastante bien los conceptos (básicos) de las redes neuronales, excepto uno que parece desconcertarme. Probablemente sea bastante obvio, pero parece que no puedo encontrar información al respecto.
¿Dónde y cómo almacenan las redes neuronales su memoria? ( / Aprendizaje automático)
Hay bastante información disponible en línea sobre redes neuronales y aprendizaje automático, pero todas parecen omitir el almacenamiento de memoria. Por ejemplo, después de reiniciar el programa, ¿dónde encuentra su memoria para continuar aprendiendo/prediciendo? Muchos ejemplos en línea no parecen "retener" memoria, pero no puedo imaginar que esto sea "seguro" para una implementación real o a gran escala.
Me resulta difícil formular mi pregunta, así que avíseme si necesito explicarme un poco más. Gracias,
EDITAR: - Para dar seguimiento a las respuestas a continuación
Cada red neuronal tendrá pesos de borde asociados. Estos pesos de los bordes se ajustan durante la sesión de entrenamiento de una red neuronal.
Aquí es exactamente donde estoy luchando, ¿cómo puedo/debería visualizar este recuerdo secundario? ¿Es esto como la RAM? eso no parece lógico. La razón por la que pregunto es porque no he encontrado un ejemplo en línea que defina o especifique esta memoria secundaria (por ejemplo, en algo más concreto, como un archivo XML, o tal vez incluso una matriz enorme).
El almacenamiento de memoria es específico de la implementación y no forma parte del algoritmo per se. Probablemente sea más útil pensar en lo que necesita almacenar que en cómo almacenarlo.
Considere un perceptrón multicapa de 3 capas (completamente conectado) que tiene 3, 8 y 5 nodos en las capas de entrada, oculta y de salida, respectivamente (para esta discusión, podemos ignorar las entradas sesgadas). Entonces, una forma razonable (y eficiente) de representar los pesos necesarios es mediante dos matrices: una 3x8
matriz para los pesos entre las capas de entrada y oculta y una 8x5
matriz para los pesos entre las capas oculta y de salida.
Para este ejemplo, necesita almacenar los pesos y la forma de la red (número de nodos por capa). Hay muchas maneras de almacenar esta información. Podría estar en un archivo XML o en un archivo binario definido por el usuario. Si estuviera usando Python, podría guardar ambas matrices en un .npy
archivo binario y codificar la forma de la red en el nombre del archivo. Si implementó el algoritmo, depende de usted cómo almacenar los datos persistentes. Si, por otro lado, está utilizando un paquete de software de aprendizaje automático existente, probablemente tenga sus propias funciones de E/S para almacenar y cargar una red entrenada.
Cada red neuronal tendrá pesos de borde asociados. Estos pesos de los bordes se ajustan durante la sesión de entrenamiento de una red neuronal. Supongo que tu duda es sobre guardar estos pesos de borde. Bueno, estos valores se almacenan por separado en una memoria secundaria para que puedan conservarse para uso futuro en la red neuronal.