Este es un kit de herramientas de modelos de lenguaje de red neuronal (NNLMS) que admite la red neuronal de Feed-Forward (FNN), la red neuronal recurrente (RNN), la RNN de memoria a corto plazo a largo plazo (LSTM), RNN bidireccional y LSTM bidireccional. Los modelos de lenguaje de red neuronal con capas ocultas múltiples también se pueden construir con este kit de herramientas, y la arquitectura de las capas ocultas puede ser diferente. Se adopta un método basado en clase en este conjunto de herramientas para acelerar el entrenamiento y la ejecución del modelo de lenguaje de red neuronal. Este kit de herramientas se ha reescrito utilizando C ++ que se puede encontrar aquí.
Los parámetros de configuración para NNLM son los siguientes:
| Nombre | Descripción | Tipo | Requerido | Por defecto |
|---|---|---|---|---|
| AC_FUN 1 | Función de activación para la (s) capa (s) oculta (s) | Stri | tanh | |
| ALFA | Tasa de aprendizaje | Flotar | 0.01 | |
| Alpha_cut | Tasa de aprendizaje de corte por esta relación cuando la mejora es menor que minimun | Flotar | 0.75 | |
| BETA | Parámetros de regularización | Flotar | 1e-6 | |
| En_bias | Habilitar términos de sesgo | Bool | FALSO | |
| En_direct | Habilitar conexiones directas | Bool | FALSO | |
| File_type | El tipo de archivos de entrada, admite binario y texto, 'b' para binario y 't' para texto | Stri | T | |
| GATE_FUN | Función de activación para puertas en LSTM RNN | Stri | Sigmoideo | |
| Gram_order | Orden de N-gram para FNN | Intencionalmente | 5 | |
| Hidden_layers 2 | Nombre y tamaño de la (s) capa (s) oculta (s) | Lista | √ | |
| Input_unit 3 | Unidad de entrada, palabra o carácter de soporte, 'w' para palabras y 'c' para carácter | Stri | W | |
| Iteraciones 4 | Número máximo de iteración | Intencionalmente | 50 | |
| Min_improve 4 | Tasa minimunda de mejora de entropía en los datos de validación | Flotar | 1.003 | |
| Model_name | Especificar un nombre para el modelo de idioma | Stri | - | |
| Output_path | La ruta debajo de la cual se guardarán los archivos de salida | Stri | √ | - |
| Sweat | Semilla para generador aleatorio | Intencionalmente | 1 | |
| Oración_end | Mark para el final de una oración | Stri | < s> | |
| Oración_start | Mark para el comienzo de una oración | Stri | ||
| Test_files | La ruta bajo la cual se almacenan los archivos de prueba | Stri | √ | - |
| Train_files | La ruta bajo la cual se almacenan los archivos de capacitación | Stri | √ | - |
| Desconocido_word | Marca para una palabra desconocida | Stri | OOV | |
| Válido_files | La ruta bajo la cual se almacenan los archivos de validación | Stri | √ | - |
| Vector_dim | Dimensión del vector de características para palabras o caracteres | Intencionalmente | 30 | |
| VOCAB_SIZE 5 | El tamaño del vocabulario aprendido de los datos de capacitación | Intencionalmente | 10000 |
Notas: 1. La función de activación de las capa (s) ocultas podría ser una de tanh , sigmoid , hard_sigmoid , relu y gaussian .
2. La (s) capa (s) oculta pueden ser una o varios de FNN , RNN , LSTM , BiRNN y BiLSTM , y deben administrarse como una lista de tuplas que contienen el nombre y su tamaño de cada capa, como [('rnn', 30), ('fnn', 20)]. Solo una tupla está bien cuando solo hay una capa oculta. El tamaño de las capas ocultas debe coincidir entre sí.
3. Para idiomas, como el inglés, el francés, cuyas palabras están separadas por el carácter en blanco, como el espacio en blanco, el INPUT_UNITE se puede configurar en 'w' o 'c'. Otros idiomas, como el chino, solo INPUT_UNITE = 'C' funciona.
4. El entrenamiento terminará cuando alcance el número máximo de iteración o que la mejora de la entropía en los datos de validación sea inferior a la tasa mínima que ocurre dos veces.
5. Si el número de palabras o personajes aprendidos de los datos de entrenamiento excede el tamaño especificado del vocabulario, las palabras o personajes con baja frecuencia no se agregarán al vocabulario. Por lo contrario, el tamaño del vocabulario se restablecerá al número de palabras aprendidas.
Los ejemplos se dan en este conjunto de herramientas. Más detalles sobre los modelos Languagel construidos en este juego de herramientas, consulte mis publicaciones.
El módulo está disponible como código abierto bajo los términos de la licencia MIT.