что является причиной высокой оценки F1, но низкой точности в модели глубокого обучения? - PullRequest
0 голосов
/ 08 марта 2019

Я использую базовую модель BERT для обучения NER в наборе данных conll-2003.я просто использовал BertForTokenClassification (из huggingface) для обучения, которое вроде рассматривает финальный слой последовательности и затем добавляет финальный линейный слой.где я могу получить результаты ниже.

with 6 epoch with train/dev data size::  6973/1739
Test F1-Score: 0.8455102584598987
{'test_loss': 0.18759359930737468, 'test_accuracy': 0.42335164835164835, 'global_step': 1308, 'loss': 0.03054473980611891}
Validation F1-Score: 0.8771035676507356
{'eval_loss': 0.13038920708013477, 'eval_accuracy': 0.4910168195718655, 'global_step': 1308, 'loss': 0.03054473980611891}

для определения потерь я использую следующие функции.

def flat_accuracy(preds, labels):
    pred_flat = np.argmax(preds, axis=2).flatten()
    labels_flat = labels.flatten()
    return np.sum(pred_flat == labels_flat) / len(labels_flat)
for each_batch:
    tmp_eval_accuracy = flat_accc(pred_xx, label_ids_xx)
    eval_accuracy += tmp_eval_accuracy
    nb_eval_steps += 1
eval_accuracy = eval_accuracy / nb_eval_steps

если вы видели результаты выше, это очень плохо с точки зренияточности.мой вопрос - метод, который я использую для нахождения точности, это правильно или неправильно?Я верю, что это правильно, потому что это просто совпадающее количество ярлыков, совпадающих с общим количеством ярлыков.и, наконец, сумма деления точности каждой маленькой партии на общее количество партий.

, но, если вы видите, показатель F1 становится высоким.и для оценки F1 я использовал (from seqeval.metrics import f1_score)

, скажите, пожалуйста, каковы возможные причины / смысл этого?и как я могу узнать, правильно ли изучена моя модель или нет?как будто он должен был столкнуться с любым компромиссом отклонения.

пожалуйста, дайте мне знать, если вам нужна дополнительная информация для ясности .. Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...