[연구방법] 논문, 효과적으로 읽는 법 — 입문자편
"과학/공학 분야의 논문들, ‘안’ 읽을 부분들을 잘 정해야 ‘잘’ 읽을 수 있습니다!"
[누구나 이해하는 AI — 성공의 배경]에서도 다뤘듯이 현재 AI/머신러닝 기술과 관련한 새로운 제품과 다양한 연구가 매일 같이 쏟아지고 있습니다. 사실, 이런 활발한 연구활동은 꼭 컴퓨터 관련 분야가 아니더라도 과학/공학 영역 전반에 걸쳐 현존하는 트렌드라고 할 수 있습니다. 기술 발전으로부터 오는 경제적, 사회적 부가가치가 어느 때보다 크게 드러나는 시대를 살아가다보니 그런 것 같습니다.
이런 정보의 홍수의 시대에 살아가면서, 특히 학계에 있는 사람이라면 최신 연구들을 어떻게하면 효과적을 따라갈 수 있을까에 대해 고민을 항상하게 됩니다. 그래서 지난 포스팅 [최신 AI/머신러닝 트렌드 손쉽게 따라가기 — Google 알리미] 에서는 어떻게 하면 온라인에 공개되는 “최신 아티클”들을 접하고 이해하며 따라갈 수 있을지를 소개했었습니다. 앞으로 몇개의 포스팅을 통해서는 보다 학문적인 분야에 있어, 최신 논문들을 어떻게 하면 효과적으로 ‘잘’ 읽을 수 있을지에 대해 얘기해보려 합니다.
AI 기술에 관련한 논문을 예로 들긴 하겠지만, 아마 다른 과학 분야의 논문 읽기에도 널리 적용될 수 있으리라 생각합니다. 그리고 무엇보다, 이것은 제 개인적인 경험을 얕게나마 공유하는 것이기 때문에 “참고용” 정도로만 보시면 좋을 것 같습니다. 논문 읽는 방법에 대해 “절대 규칙” 같은 것은 없으며, 다른 사람들의 관점이 궁금하신 분들은 구글에 “논문 읽는 법”, 혹은 “How to read academic papers” 정도로만 검색해 보셔도 다른 좋은 의견들을 보실 수 있습니다.
목적과 수준에 따라 ‘안’ 읽을 부분 정하기
논문 읽기에 있어 “읽기의 목적”과 “자신의 수준”을 정의하는 것은 매우 중요합니다. 여기서의 “자신의 수준”이란 일반적인 지적인 수준을 얘기하는 것이 아니라 읽으려는 논문과 ‘관련한 분야’에 얼마나 친숙한가, “Familiarity” 를 가리키는 것입니다.
특별히 이번 포스팅에서는 “입문자” 레벨에서의 논문 읽기를 다루려고 합니다. 그럼 먼저 “입문자”와 입문자가 가질 “논문읽기의 목표” 를 먼저 정의하겠습니다.
- 입문자: 읽으려는 논문의 분야를 잘 모르는 상태의 독자
- 논문읽기의 목표: ‘읽자마자 모든 것을 100% 체득하기 ’가 아닌, ‘해당 분야에 대해, 그리고 논문에서 무엇을 했다는 건지 대략적으로나마 알고 싶다’
그렇다면 이런 정의가 논문 ‘잘’ 읽기와 무슨 관련이 있을까요? 조금은 역설적이지만, 바로 이를통해 무엇을 ‘안’ 읽을까를 잘 결정할 수 있게 됩니다. 공학계열 논문은 대개, Title, Abstract, Introduction, Related Work, Methodology, Experiments, Conclusion의 섹션들로 구성을 갖춘다고 할 수 있습니다. 섹션의 순서는 출판되는 학회/저널에 따라 다를 수 있지만 내용의 구성요소는 일반적으로 비슷합니다.
그렇다면 이중에 ‘안’ 읽어도 되는 섹션이 있는 것일까요? 그렇습니다! 아니, 오히려 모두, 그것도 쓰인 순서대로 읽으면 위에서 입문자가 정한 목표를 이루기는 커녕 지루함에 지쳐서 읽는 것 자체를 포기하게 될수도 있습니다.
아래에 보다 구체적으로 설명하기 위해서 하나의 실제 논문을 예시로 들겠습니다. 예시로 사용할 논문은 2013년에 구글 딥마인드에서 소개한 “Playing Atari with Deep Reinforcement Learning”이라는 논문입니다. 2013년, ‘딥러닝’이 꽃을 피우기 시작할 때 등장한 논문으로 지금도 여전히 ‘강화학습’ (Reinforcement Learning) 을 연구하는 많은 연구자들에게 좋은 레퍼런스가 되고 있습니다. 해당 논문은 arXiv에서 무료로 다운로드가 가능합니다.
머리와 꼬리를 위주로 보라!
예시로 든 구글의 논문을 가지고 설명하자면, 입문자인 독자는 ‘강화학습’ (Reinforcement Learning)에 대해 이전에 공부해 본적이 없을 확률이 높습니다. 이런 독자에게는 Title, Abstract, Introduction (머리) 을 순서대로 읽되 다른 것들 (몸통) 을 건너뛰고 Experiments, Conclusion (꼬리) 을 바로 읽을 것을 권장합니다. 사실 읽는 중 비교적 관심이 떨어진다면 Introduction과 Conclusion 마저도 생략할 수 있습니다.
1안) Title → Abstract → Introduction → Experiments → Conclusion
2안) Title → Abstract → Experiments
위처럼 중간에 Methodology를 건너 뛰면 실험결과를 이해할 때 어려울 것 같지만, 실제로 실행해 보시면 생각보다 어렵지 않다는 것을 알 수 있을 겁니다. 아래에서 실제 논문을 가지고 살펴보겠습니다.
먼저 Title “Playing Atari with Deep Reinforcement Learning” 을 보면 Deep Reinforcement Learning (깊은 강화학습) 이라고 하는 용어가 입문자에게는 거북하게 느껴질 수도 있습니다. 사실 논문들이 이런 입문자들을 대상으로 쓰여진 것은 아닙니다. 대학 교재 (Textbook) 와는 다르게 이런 기본 용어들의 정의들은 생략하고 쓰여진 경우가 대부분입니다. 때문에 이런 정의들이 궁금하다면 Wikipedia를 통해 어느 정도의 지식을 알고 넘어가는 것도 좋습니다:
Deep reinforcement learning (Deep RL) is a subfield of machine learning that combines reinforcement learning (RL) and deep learning …
위의 위키피디아의 설명도 끝까지 읽다보면 논문을 실제로 읽기도 전에 큰 좌절을 맞볼 수도 있으니 첫 1–2문장의 주요 포인트만 읽고 넘어가도록 합니다. 위의 경우 ‘아 머신러닝의 한 분야구나, 강화학습과 딥러닝을 조합한 것이구나’ 정도로만 알고 넘어가면 됩니다.
이제 Abstract를 보겠습니다.
… The model is a convolutional neural network, trained with a variant of Q-learning, whose input is raw pixels and whose output is a value function estimating future rewards. We apply our method to seven Atari 2600 games …
이미 Methodology에 대해 추상적으로나마 설명하고 있습니다. Convolutional Neural Network를 이용하되 입력이 픽셀이고 출력이 ‘Reward’에 대한 예측이라고 합니다. 그리고 이것을 ‘Atari 2600’이라는 게임들에 적용해보겠다고 하네요. 이정도 알았으니 과감하게 Background, Related Work, Methodology (4. Deep reinforcement Learning) 즉, 몸통 부분들을 건너 뛰도록 합니다.
Figure와 Table 위주로 보라!
Experiments에서도 이해하기 힘든 문장과 문단들은 과감하게 넘어가도록 합니다. 대신, 시각화된 이미지나 표의 숫자들을 보면서 무엇이 이루어지고 있는지, 이 분야 (Deep Reinforcement Learning) 에서는 주로 무엇으로 “평가”를 하는지를 살펴봅니다.
위 그래프는 예시 논문의 Figure 2입니다. 네개의 그래프가 있는데 각 그래프에서 좌에서 우로 갈수록 상승곡선을 그리는 것을 볼 수 있습니다. 아마 x축에 Epoch이라는 것을 이해하지 못해서 의미하는 바를 잘 모를 수도 있겠습니다. 그러나 아래 캡션에 친절히 관련한 설명이 나옵니다.
Figure 2: The two plots on the left show average reward per episode on Breakout and Seaquest respectively during training …
Training (학습) 동안에 평균 보상 값을 보여준다고 하니 ‘보상값이 학습 진행에 따라 상승하는 것이구나’ 정도 이해할 수 있을 것입니다. 더 자세한 설명은 본문에도 있습니다. Figure 2라는 언급이 있는 문장을 찾아보면,
The leftmost two plots in figure 2 show how the average total reward evolves during training on the games Seaquest and Breakout. Both averaged reward plots are …
라고 하면서 캡션에서 못다한 설명들이 이어집니다. 아래는 Table 1의 캡처입니다.
Random, Sarsa, Contingency 등등이 무엇을 의미하는지는 자세하게 몰라도, 소개하고 있는 Deep Q-Networks (DQN)이라는 녀석이 대부분에서 가장 높은 수치를 보이고 있음을 알 수 있습니다. 그리고 캡션을 읽어보니 또 위와 같이 ‘Reward’를 리포트해 놓은 것으로 보입니다. 보다 자세히 알고 싶다면 위에서와 같이 본문에서 Table 1을 찾아봅니다:
The first five rows of table 1 show the per-game average scores on all games. Our approach (labeled DQN) outperforms the other learning methods by a substantial margin …
역시 본문에 더 자세한 설명이 있습니다. Atari 게임에서의 score를 기록해 놓은 것이라고 하네요. 그리고 위에서 해석했던 대로 DQN이 다른 방법들에 비해 우월하다는 내용입니다.
이대로 끝? Yes!
마지막으로 Conclusion을 보겠습니다.
This paper introduced a new deep learning model for reinforcement learning … Our approach gave state-of-the-art results in six of the seven games it was tested on …
이때까지 위에서 훑어본 것들이 몇문장으로 함축되어 쓰여 있는 것을 볼 수 있습니다. Abstract에서 읽었던 대로 “raw pixel”을 입력으로 쓴다는 그 방법론을 “a new deep learning model”로 써놓았고, Table 1에서 봤던 것을 “state-of-the-art results”라고 표현했네요. 즉, 비록 논문을 다 샅샅히 읽지는 않았지만 저자들이 보여주고자 하는 주요 핵심 내용들은 잘 따라온 것을 알 수 있습니다.
그렇다면 앞에서 말했던 입문자의 목표 — ‘분야에 대해, 그리고 논문에서 무엇을 했다는 건지 대략적으로 알고 싶다 ’ — 는 잘 이루어졌을까요? 독자는 위와 같이 ‘부분만 읽기” 로도 다음과 같은 사실을 알 수 있었을 것입니다.
- Atari2600과 같은 비디오 게임을 테스트/평가에 사용했다.
- 화면의 픽셀을 입력값으로 강화학습을 제안했다.
- 학습 동안의 Reward가 상승하는 것, 게임에서 높은 Score를 달성하는 것을높이 평가한다.
- 이에 있어서 제안한 DQN이 다른 방법론들보다 월등히 우월한 결과를 보였다.
비교적 짧은 시간 안에 이정도만 알아도 입문자로서는 꽤 큰 성취일 것이라고 생각합니다. 더 궁금한 것이 있으면 읽지 않은 부분들까지 읽으면서 더 알아가 볼 수 있겠지만, 위에 정한 목표에 있어서 만큼은 이정도로도 이미 충분할 수 있습니다.
학창시절 수학공부 하듯이 더 완전히 정복해야 할 것 같은 강박이 여전히 마음에 남아 있을 수도 있지만, 그럴 시간에 비슷한 방법으로 2–3개의 다른 논문들을 더 접해보는 것이 입문자로서는 관련 분야를 더 전반적으로 이해하고 알아가는데 도움이 될 수도 있습니다. 좀더 지식이 쌓이고 궁금해진 점이 생기면 그때 다시 읽어봐도 되니까요. 그럼 다음 포스팅에서는 다른 수준의 독자들을 위한 논문 읽기 방법들도 소개해 보겠습니다.