Almacenamiento de memoria de red neuronal/aprendizaje automático

Resuelto Ben Z. asked hace 11 años • 5 respuestas

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

Ben Z. avatar Apr 03 '13 00:04 Ben Z.
Aceptado

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 3x8matriz para los pesos entre las capas de entrada y oculta y una 8x5matriz 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 .npyarchivo 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.

bogatron avatar Apr 03 '2013 13:04 bogatron

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.

Deepu avatar Apr 02 '2013 18:04 Deepu