Artificial Intelligence/연구 매뉴얼

기계학습 입문자를 위한 논문 읽기 팁

Jay김 2020. 7. 19. 07:22

기계학습/인공지능 분야에서 매일 같이 새로운 논문이 쏟아져 나오는 오늘날 효율적인 정보 습득을 위해서 논문을 빠르게 소화해낼 수 있는 능력은 필수적이다. 만약 당신이 새로운 기계학습 분야에 대해서 배우고자 한다면 어떻게 시작해야 할까? 해당 글은 앤드류 응(Andrew Ng) 교수가 추천하는 방식을 요약한 글이다. 해당 단계는 어느 정도 영어를 읽을 수 있고 수학적 배경이 있는 학부생 수준에게 추천하는 글이다.

일단 읽어야 한다고 생각하는 논문 리스트와 따로 참고할 수 있는 다양한 블로그 포스트나 미디움(Medium) 같은 웹사이트에 개제 되어 있는 글들을 모아놓아라. 리스트에 있는 글들을 읽어나가는 느낌은 대략적으로 다음과 같다. 

                0%                 100%

  1. 글 1      ---------
  2. 글 2      ------------X
  3. 글 3      ----------
  4. 글 4      ------------------------- 글 6
  5. 글 5      ----------

초반에는 글 1부터 5까지 이리저리 훑는 느낌이 강하다. 아는 것도 딱히 없는 상태에서 뭘 읽어야할지 알아낼 수는 없다. 중간중간에 글들을 읽다 보면 글 2 같이 뭔가 좀 이상하거나 다른 글들에서 틀렸거나 읽을 만한 가치가 없다고 말하는 글들이 나올 수 있다. 그런 글들은 과감하게 버린다. 읽다 보면 글 4 같이 마음에 드는 글이 튀어나올 것이다. 그런 글을 만나면 끝까지 읽어나간다. 끝까지 읽어나가면 글 6 같이 추가로 레퍼런스 되는 다른 글을 읽는 과정으로 이어질 수도 있다. 그리고 해당 과정은 반복된다. 앤드류 응의 생각으로는 5 ~ 20개 정도의 논문을 읽으면 기본적인 지식이 갖춰지고 50 ~ 100개 정도의 논문을 읽으면 분야 전반에 대한 괜찮은 이해도가 생길 것이라고 한다.

논문은 어디에서 찾을까?

 

Kian Katanforoosh (@kiankatan) | Twitter

Unmute @kiankatan Mute @kiankatan Follow Follow @kiankatan Following Following @kiankatan Unfollow Unfollow @kiankatan Blocked Blocked @kiankatan Unblock Unblock @kiankatan Pending Pending follow request from @kiankatan Cancel Cancel your follow request to

twitter.com

 

Machine Learning • r/MachineLearning

reddit: the front page of the internet

www.reddit.com

  • 학회지: NIPS, ICML, ICLR 등이 있다.
  • 친구들(...): 같은 기계학습 분야 학생들이랑 공유해보도록 하자.

그럼 이제 논문 하나를 읽는 과정은 어떨까?

1. 일단 제목, 초록(abstract), 그림(figure)부터 대략적으로 훑어본다. 보통 논문의 내용은 그림 한 두개 정도로 요약되기도 한다.

2. 초록, 서론(introduction), 결론(conclusion), 그림을 좀 더 자세하게 읽어본다. 아직 훑는 단계이기 때문에 너무 자세히 읽을 필요는 없다. 보통 논문을 제출할 때 저자는 초록, 서론, 결론 부분에게 이 논문이 무엇에 대한 것인지 그리고 왜 이 논문이 주목받을만한 가치가 있는가 심혈을 기울여서 간추리기 때문이다. 관련된 작업(related work) 부분은 건너뛰어도 된다. 보통 분야에 대한 어지간한 지식이 있지 않은 이상 알아볼 수 있는 것도 없고 이 부분에서 저자가 같이 일했거나 참고한 다른 사람들을 언급하고자 노력하기 때문이다. 

3. 이제 좀 더 조심스럽게 전부 읽어본다. 수학은 건너뛰자.

4.  이제 완전히 다 읽어보도록 한다. 전혀 이해가 되지 않는 부분은 건너뛰자. 얀 르쿤이 쓴 LeNet 같이 유명한 논문도 앤드류 응은 대략 50%가 정말 주목받은 부분이고 나머지는 관련성이 좀 떨어지는 내용물일 수도 있다. 만약 제대로 된 연구가 목적이라면 모르겠지만 많은 양의 논문을 소화해내는 것이 목적이라면 일일이 상세하게 읽는 노력을 할 필요는 없다.

읽으면서 다음과 같이 질문을 계속 던지도록 하자.

  • 저자가 무엇을 이루고자 했는가?
  • 문제에 대한 접근 방식의 핵심적인 요소들은 무엇인가?
  • 내가 쓸만한 것들이 있는가?
  • 출처에 내가 따로 또 읽은 만한 것들이 있는가?

첫번째 단계부터 여러분이 직접 해보도록 하자. 연습용으로 써볼 만한 논문은 짧게 DenseNet이라고도 불리는 심층학습 알고리즘을 설명한 논문이다. 

https://arxiv.org/pdf/1608.06993.pdf

첫 번째 단계부터 여러분에 들어와야 할 그림은 다음 둘이다. 만약 초록을 읽어봤다면 해당 그림들이 논문 내용을 한눈에 들어오도록 만들었다는 것을 알 수 있을 것이다.

읽다 보면 다음과 같은 흉측한(...) 테이블이 등장할 텐데 이게 바로 분야에서 일반적으로 사용되는 논문에서 등장하는 신경망의 구조도다.

제일 곤란한 수학이나 코드는 어떻게 이해할까?

앤드류 응은 미술관에서 학생들이 유명한 작품을 따라 그려보는 것처럼 논문에 등장하는 수학 공식들을 빈종이에 직접 도출해내도록 시도해보는 것을 추천한다. 코드는 일단 오픈 소스에 있는 코드를 다뤄본 뒤 직접 처음부터 다시 짜 보도록 한다.

마지막으로 여름 방학에 논문 50개를 읽는다 식으로 한 번에 몰아서 하려고 하지 말고 일주일에 논문 2 ~ 3개씩 꾸준히 독파해야만 실력이 는다는 것을 명심하자.