RNN을 할까 했는데 데이터셋 구하기도 그렇고 딱 짜여진 튜토리얼이 없는 느낌이라 이전에 하던 데이터셋을 다시 구하게 되면 해보려구요! 그래서 그 전까지는 조금 다른 내용을 건드려보고자 합니다.
이번에 다루고자 하는 내용은 Uncertainty estimation입니다.
딥러닝에서는 input을 넣으면 output이 딱 나오죠. 그러나 그것이 어떤 이유로 도출되었고, 어떤 과정을 거쳤는지 모르기 때문에 함부로 신뢰할 수는 없습니다. 모델에 대한 과한 신뢰는 오히려 치명상을 낳게 되죠. 금융시장에 대입해서 생각해봐도, 모델을 너무 신뢰하게 되면 LTCM처럼 파산으로 이어질 수도 있습니다.
따라서 언제 모델을 신뢰하고 신뢰하지 말아야 하는지를 아는 것 또한 매우 중요합니다. 물론 모델이 성능이 좋지 않게 나올 때 신뢰하지 않는 것도 하나의 방법이지만 항상 손절을 치는 것은 오히려 최종 성적을 깎아먹을 가능성도 있습니다. 그렇다면 아예 모델 자체가 이 결과는 불확실하다고 말해줄 수는 없을까요? 그런 방법을 찾아내고자 하는 게 Uncertainty estimation입니다.
불확실성을 측정하기에 앞서, 불확실성이 도대체 어떤 이유로 생기게 되는 건지 알아보겠습니다. 예를 들어, 두 방향으로 화살을 쏘는 사람이 있다고 가정해볼게요. 우리는 화살의 도착지점만을 보고 이 화살이 왼쪽으로 쏜 건지, 오른쪽으로 쏜 건지 맞추는 작업을 하고 있다고 생각해보겠습니다.
화살이 꽂히는 위치는 여러 가지 변수들의 영향을 받을 것입니다. 바람, 화살의 미세한 진동 등 변수가 너무 많기에 화살이 같은 곳에 꽂히는 게 오히려 더 이상합니다. 이처럼 현상 자체에 내재된 불확실성을 Aleatoric Uncertainty라고 합니다. (혹은 Data uncertainty)
한편, 이제 모델을 만들어서 위치를 기준으로 구분하고 있다고 생각해 보겠습니다. 그런데, 아직 가지고 있는 샘플이 적거나 학습이 완전히 되지 않은 경우를 상정해 보겠습니다.
극단적으로 샘플이 두 개 밖에 없는 경우를 생각해보면, 위와 같은 문제가 생깁니다. 어쨌든 모델은 샘플을 가지고 방향을 구분해낼 텐데 아직 정보량이 적어서 어디를 기준으로 구분할지 확실하지 않습니다. 만약 2번 위치 즈음에 화살이 꽂힌다면 아마 모델마다 판정하는 것이 다를 것입니다. 구별이 불확실한거죠. 이렇게 데이터가 부족하거나 모델의 capacity가 부족한 이유 등으로 생기는 uncertainty를 epistemic uncertainty라고 합니다. (혹은 model uncertainty)
uncertainty는 위처럼 두 가지로 구분할 수 있는데, 그렇다면 우리가 관심 있는 부분은 어디일까요? 자연스럽게도 epistemic입니다. aleatoric은 우리가 제어할 수 있는 부분도, 제어하고자 하는 부분도 아닙니다. 위 예시에서 우리가 알아내고자 하는 것은 어느 방향으로 활을 쐈느냐이지, 바람에 따른 영향과 그 외의 변수들까지 컨트롤하는 것과는 다릅니다. 따라서 우리가 하고자 하는 것은 epistemic을 최대한 줄이는 것인데, 경우에 따라서 이 epistemic의 크기에도 관심이 생기기 때문에 epistemic을 측정하고자 하는 것입니다. 같은 이유로 aleatoric 또한 제어할 수는 없어도 uncertainty의 사이즈를 알기 위해서 필요하기 때문에 측정하고자 하는 것입니다.
Aleatoric과 Epistemic에 관한 자세한 내용은 https://arxiv.org/abs/1703.04977를 참조해도 좋을 것 같습니다.
위 예시의 경우에서 내기를 한다고 해봅시다. 실제 어느 방향으로 쐈는지를 맞추는 내기를 하는 중이라고 해보겠습니다. 두 번째 그림에서 초록색 부분으로 쐈을 때는 모델이 아마도 왼쪽으로 판단할 것입니다. 파란색 부분도 마찬가지로 오른쪽으로 판단할 것입니다. 문제는 가운데 애매한 부분입니다. 이 경우에서 내기를 하는 것은 전혀 유리한 게임이 아니게 됩니다. 그래서 그런 경우에 발을 뺄 수 있도록 만약 우리의 모델이 '아 이번 추측은 좀 불확실한데요...'하고 알려주기를 바라는 것입니다. 아마 금융시장에서도 같은 매커니즘으로 활용할 수 있겠죠!
서론으로 쓰려고 시작한 내용인데 서론이 조금 길었네요. 지금 작업하고 있는 부분은 다음 포스팅에 이어서 쓰도록 하겠습니다.
댓글 없음:
댓글 쓰기