딥러닝 모델이 얼마나 잘 학습되었는지 확인하기 위해선 성능 평가를 해야 한다. 이 성능 평가 지표(evaluation metrics)를 어떻게 정의하느냐에 따라 실제로는 좋은 모델이 안 좋게 평가될 수도 있고, 안 좋은 모델이 좋게 평가될 수도 있다.
예를 들어, 챗봇 모델을 학습할 땐 '자연스러운 대화'만을 기준으로 평가하면 될 것 같지만, 이렇게 평가하면 끝없이 "잘 모르겠어요."라고 답하는 챗봇이 제일 좋은 모델로 평가받을 수도 있다.
User: 오늘 날씨가 어때?
챗봇: 잘 모르겠어요.
User: 넌 이름이 뭐야?
챗봇: 잘 모르겠어요.
이런 불상사를 방지하려면 평가 지표에 '자연스러운 대화일 것'뿐만 아니라 '구체적인 맥락을 반영할 것'이라는 기준도 추가해야 한다.
지금까지 주어진 대화 맥락을 x, 이에 대한 챗봇의 답변을 y라고 하자. 자연스러운 대화인지 여부를 평가하기 위해서는 주어진 x 다음에 y가 올 확률을 구하고, 이 확률이 높을수록 좋게 평가하면 된다. 구체적인 맥락을 잘 반영했는지 평가하기 위해서는 반대로 답변이 y일 때 이전의 맥락이 x일 확률을 구하고, 이 확률이 높을수록 좋게 평가할 수 있다. 예를 들어 답변이 '잘 모르겠어요'일 때 그 전의 맥락이 '오늘 날씨가 어때?'일 확률보다, 답변이 '오늘은 비가 내려요'일 때 그 전의 맥락이 '오늘 날씨가 어때?'일 확률이 훨씬 더 높을 것이다. (참고: DialoGPT의 Mutual Information Maximization)
그런데 우리가 스스로의 삶을 평가할 땐 하나의 기준에 매몰되는 경우가 많다. 내가 대학교 1학년일 때는 내가 경영학과 학생들보다 뒤떨어진 사람이라고 생각했다. 삶을 평가할 때 '재학 중인 학과의 취업률'이라는 기준 하나만을 사용했기 때문이다. 하지만 삶은 1차원 직선이 아니라 다차원 곡선이다. 1가지 기준으로 평가하면 놓치는 정보가 너무 많다.
나는 취업률이 극히 낮은 어문계열 출신이지만, 자연어처리를 공부해서 데이터 사이언티스트로 일하고 있다. 경영학보다 언어학을 공부한 것이 자연어처리에 훨씬 더 도움 되고 그 덕에 취업할 수 있었지만, 당시에는 '재학 중인 학과와 데이터 사이언스와의 관련성'이라는 평가 기준을 도입하지 못해 열등감에 빠져 있었다.
다양한 평가 지표를 추가하는 습관은 긍정적으로 생각하는 데 도움을 준다. 내 꿈의 회사에 다니던 선배와 밥을 먹을 기회가 있었는데, 그 기회를 놓쳐서 크게 후회한 적이 있다. 자책하면서 지하철을 탔는데 선배와 밥을 먹고 있었더라면 하지 않았을 일을 해서 이 후회감을 만회해야겠다고 생각했다. 그래서 링크드인을 보다가 인턴 공고를 보고 지원해서 실제로 인턴을 하게 되었다. '그날 그 시점에 지하철에서 인턴 공고를 보고 인턴이 될 확률'이라는 평가 지표를 도입한 덕에 부정적인 사건을 긍정적으로 만회할 수 있었다. 선배와 밥을 먹었다면 해당 평가 지표에선 0점을 받았겠지만, 밥을 먹지 못한 덕에 높은 점수를 얻었다.
이제 곧 월요일이다. 정말 부정적인 사건이다. 하지만 이것도 긍정적으로 생각해보려면 '크리스마스와 가까운 정도'라는 평가 지표를 도입하면 된다. 그러면 또 주말인 오늘보다 월요일인 내일이 더 좋은 평가를 받게 된다.
외모, 연봉, 자산 등 소수의 평가 지표에만 매몰되면 삶이 우울해진다. 근데 또 평가 지표를 계속 늘려가면 기분 좋은 일도 많다! 인생은 다차원 곡선이란 걸 잊지 말자.
Thumbnail Photo by Luke Chesser on Unsplash