Closed hangjoo closed 3 years ago
ground truth 기준으로 자르지 말고 둘중에 긴 문장을 분모로 하는건 어떤가요?
아래의 글과 어느정도 관련이 있을 것 같습니다. http://boostcamp.stages.ai/competitions/43/discussion/post/361
ground truth 기준으로 자르지 말고 둘중에 긴 문장을 분모로 하는건 어떤가요?
- ground truth length < prediction length : 일치하는 토큰수 / prediction tokens
- ground truth length > prediction length : 일치하는 토큰수 / ground truth tokens
- 이유는 보다보면 gt가 [ 1+2=3 ] 이런 다면 prediction이 [ 1+2=3333] 이렇게 나오는 경우가 있어서 제안하신 방법으로 계산하면 이는 맞는 경우가 되어서용
제가 저렇게 생각했던 이유가 단어 예측시에 앞 단어부터 차례대로 예측하기 때문에 Ground Truth까지만 심볼이 잘 일치하면 그 이후서부턴 EOS 토큰을 어떻게 붙이냐만 학습하면 된다고 생각한 것과 주남님이 말씀하신 방법이 wer과 비슷한 맥락이지 않을까 했는데, 제 방법도 어찌보면 결국 sentence acc랑 다를게 없는 것 같네요.
구현하는건 어렵지 않아서 먼저 주남님이 말씀하신 방법으로 구현하도록 하겠습니다~
현재 학습 시 WER, 문장 단위 Accuracy, 토큰 단위 Accuracy로 3개 metric을 사용 중인데, loss function에 PAD 토큰 id를 ignore_index로 사용하면서 EOS 토큰 뒤로 단어가 무작위로 예측되면서, 현재 토큰 단위 Accuracy를 계산할 때 문제가 발생하고 있습니다.