¿Cómo funciona la capa de convolución Keras 1d con incrustaciones de palabras - problema de clasificación de texto? (Filtros, tamaño del núcleo y todos los hiperparámetros)

Actualmente estoy desarrollando una herramienta de clasificación de texto usando Keras. Funciona (funciona bien y obtuve una precisión de validación de 98.7), pero no puedo entender cómo funciona exactamente la capa de convolución 1D con datos de texto.

¿Qué hiperparámetros debo usar?

Tengo las siguientes oraciones (datos de entrada):

Palabras máximas en la oración: 951 (si es menor, se agregan los rellenos) Tamaño del vocabulario: ~ 32000 Cantidad de oraciones (para capacitación): 9800embedding_vecor_length: 32 (cuántas relaciones tiene cada palabra en las incrustaciones de palabras)batch_size: 37 (no importa para esta pregunta) Número de etiquetas (clases): 4

Es un modelo muy simple (he hecho estructuras más complicadas pero, extrañamente, funciona mejor, incluso sin usar LSTM):

model = Sequential()
model.add(Embedding(top_words, embedding_vecor_length, input_length=max_review_length))
model.add(Conv1D(filters=32, kernel_size=2, padding='same', activation='relu'))
model.add(MaxPooling1D(pool_size=2))
model.add(Flatten())
model.add(Dense(labels_count, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
print(model.summary())

Mi pregunta principal es: ¿Qué hiperparámetros debo usar para la capa Conv1D?

model.add(Conv1D(filters=32, kernel_size=2, padding='same', activation='relu'))

Si tengo los siguientes datos de entrada:

uenta máxima de palabras: 951 Dimensión de incrustaciones de palabras: 32

¿Significa quefilters=32 solo escaneará las primeras 32 palabras descartando por completo el resto (conkernel_size=2)? ¿Y debería establecer filtros en 951 (cantidad máxima de palabras en la oración)?

Ejemplos en imágenes:

Entonces, por ejemplo, estos son datos de entrada:http: //joxi.ru/krDGDBBiEByPJ

Es el primer paso de una capa de convulsión (paso 2):http: //joxi.ru/Y2LB099C9dWkO

Es el segundo paso (paso 2):http: //joxi.ru/brRG699iJ3Ra1

Y sifilters = 32, la capa lo repite 32 veces? ¿Estoy en lo correcto? ¿Entonces no voy a decir la palabra número 156 en la oración, y así esta información se perderá?

Respuestas a la pregunta(1)

Su respuesta a la pregunta