Что делать, если нет никаких признаков переобучения или неполной подгонки, но точность невысока? - PullRequest
0 голосов
/ 09 мая 2020

введите здесь описание изображения Я реализовал модель под названием Multilayer Perceptron, которая выполняет многометровую классификацию. Я нарисовал графики потерь при проверке, точности, потерь при обучении, а также точности и точности проверки,

Evaluation result on Test Data : Loss = 2.3322067729574885, accuracy = 0.633093535900116
Evaluation result on Train Data : Loss = 2.0077481561427493, accuracy = 0.6793422698974609

Сообщите мне, есть ли переоснащение или недообучение, если нет, то почему моя точность низкая. This is training loss and validation loss graph This is validation accuracy and training accuray

1 Ответ

0 голосов
/ 09 мая 2020

Если переобучения нет, это в основном означает, что сложность модели не так велика. Что на самом деле хороший знак. Однако для отладки таких случаев вы должны следовать следующему пути:

  1. Увеличивайте архитектуру модели (и сложность) до тех пор, пока вы не достигнете необходимого KPI для данных обучения, что может привести к переобучению. В случае вашего MLP это будет количество слоев и узлов на слой.
  2. Подтвердите модель. Если
    1. точность проверки сопоставима, все в порядке
    2. Если точность проверки ниже, вам нужно добавить больше данных или уменьшить сложность модели, упорядочить

Сложная часть состоит в том, как увеличить сложность модели таким образом, чтобы она давала вам требуемый KPI, но не требовала большого количества данных. Свертки являются примером, в котором используется инвариант перевода. Теоретически вы можете добиться того же, используя полностью подключенный слой, однако по той цене, что вам потребуется гораздо больше обучающих данных.

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