Как определить наиболее подходящие фильтры для определенного класса - PullRequest
0 голосов
/ 10 ноября 2019

Допустим, у меня есть задача двоичной классификации, и я использую CNN. Простая визуализация CNN не очень полезна, так как ввод не изображения. Тем не менее, я хотел бы знать, какие именно фильтры вносят наибольший вклад в выборку входных данных, чтобы считаться определенным классом. Учитывая следующую архитектуру (реализованную с использованием Keras), как мне этого добиться?

model = Sequential()
model.add(Conv2D(32, kernel_size=(10, 3),
                 activation='relu',
                 input_shape=input_shape))
model.add(Conv2D(64, (10, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(2, activation='sigmoid'))

model.compile(loss='binary_crossentropy',
              optimizer=keras.optimizers.Adadelta(),
              metrics=['accuracy'])

Я исследовал ресурсы A и B . Но ни то, ни другое не кажется полезным для того, что я хочу сделать. Если есть другие предложения для понимания того, что сеть изучает для наборов данных, не относящихся к изображениям, это было бы очень полезно.

...