Почему потери уменьшаются, но снижается и точность (Pytorch, LSTM)?

Я построил модель с LSTM - Линейные модули в Pytorch для задачи классификации (10 классов). Я обучаю модель и для каждой эпохи выводю потери и точность в обучающем наборе. Вывод выглядит следующим образом:

эпоха: 0 начало!
Убыток: 2.301875352859497
Учет: 0,11388888888888889
эпоха: 1 начало!
Убыток: 2,2759320735931396
Учет: 0,29
эпоха: 2 начало!
Убыток:









эпоха: 5 начало!
Потеря: 2.1704766750335693
Acc: 0.6855555555555556
начало эпохи: 6!
Потеря: 2.1381614208221436
Acc: 0.7038888888888889
эпоха: начало 7!
Убыток: 2.1007182598114014
Acc: 0.7194444444444444
эпоха: 8 старт!
Потеря: 2.0557992458343506
Acc: 0.7283333333333334
эпоха: 9 старт!
Потеря: 1.9998993873596191
Acc: 0.7427777777777778
эпоха: начало 10!
Убыток: 1.9277743101119995
Учет: 0,7527777777777778
Эпоха: начало 11!
Убыток: 1,8325848579406738
Учет: 0,7483333333333333
эпоха: начало 12! Убыток: 1.712520718574524
Учет: 0,7077777777777777
Эпоха: начало 13!
Убыток: 1.6056485176086426
Учет: 0.6305555555555555
Эпоха: начало 14!
Убыток: 1.5910680294036865
Учет: 0.4938888888888889
эпоха: начало 15!
Потеря: 1.6259561777114868


















Эпоха: 17 начало! < br> Убыток: 1.4949012994766235
Acc: 0.47944444444444445
эпоха: начало 18!
Убыток: 1.4332982301712036
Acc: 0.48833333333333334

Для функции потерь я использовал nn.CrossEntropyLoss и Adam Optimizer.
Хотя потери постоянно уменьшаются, точность увеличивается до эпохи 10, а затем по какой-то причине начинает уменьшаться.

Почему это происходит ?

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


person Community    schedule 01.01.2020    source источник


Ответы (1)


Уменьшение потерь не всегда означает повышение точности. Я постараюсь решить эту проблему для потери кросс-энтропии.

CE-loss= sum (-log p(y=i))

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

person Umang Gupta    schedule 01.01.2020