Двоичная модель классификации работает прилично, но показатели доверия низкие - PullRequest
0 голосов
/ 27 сентября 2019

Ниже у меня есть модель / сеть, которую я построил для решения проблемы бинарной классификации

model = Sequential()
model.add(Embedding(10_000, 50, input_length=80))
model.add(GRU(32))
model.add(layers.Dense(32, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['mae'])
model.summary()
history = model.fit(x_train, y_train, epochs=4, batch_size=16, validation_split=0.2)

Входные данные представляют собой закодированный текст в горячем виде, каждый образец помечен как 1 для «in» и0 для «out».

Работает довольно хорошо.Когда я даю ему вход, я ожидаю, что я нахожусь в категории «в», он обычно дает мне ответы больше 0,35, а для входов, не относящихся к категории «в», он дает мне ответы намного ниже, менее 0,1.Итак, мне кажется, что моя сеть достаточно хорошо представляет, что входит и что выходит

Это моя проблема: мне интересно, почему эта пороговая точка настолько низкая?Особенно учитывая, что ожидаемые результаты равны 1. Это заставляет меня думать, что в моей модели должен быть какой-то слой или ограничение, которое я забыл, что сделало бы ответы, которые были даны, намного более «уверенными», то есть ближе к 1.

Редактировать: Стоит отметить, что самая высокая степень доверия, которую я получаю, когда я даю модели образец, который она обучила, составляет ~ 0,55.

...