카카오 계정과 연동하여 게시글에 달린
댓글 알람, 소식등을 빠르게 받아보세요

가장 핫한 댓글은?

좋은 논문을 쓰기 위해 필요한 역량

IF : 1

2022.11.18

8

44587

2000년대 초반 학번 아재입니다. 김박사넷에 훌륭한 대학원 생들이 많이 방문하는것으로 알고있지만, 대학원을 준비하는 학부생, 대학원에 이제 막 입학한 석,박사 과정생들도 많을거라 생각합니다.

학생들을 지도하면서 항상 고민하는것이, 어떻게 지도를 할 것인가 입니다. 즉 지도를 통해 이루고자 하는 목표가 무엇인가? 결국은 ‘학생이 좋은 논문을 쓰고 졸업’하는것으로 귀결됩니다. 그럼 좋은 논문을 쓰게 하기 위해서는 어떻게 지도를 해야할까? 좋은 논문을 쓸 수 있는 연구 역량을 키워주는 것입니다.

“그럼 좋은 논문을 쓸 수 있는 연구 역량은 어떻게 키우는가?”

이 마지막 질문은 사실 학생들을 지도할때 뿐만이 아니라 본인 스스로에게도 해당이 되는 질문입니다. 저는 안타깝게도 지도교수의 지도를 제대로 받지 못하고 졸업하였고 (당시만 하더라도 많은 랩이 그렇게 돌아갔습니다..) 지금의 자리까지 오면서 많은 시행착오를 겪었습니다. 그리고 요즘 들어 어렴풋이 질문에 대한 답을 가늠할 수 있게 된것 같습니다. 석,박사 과정동안 많이 헤메고 불안해하고 있을 학생들에게 조금이나마 도움이 되지 않을까 싶어 몇가지 정리해 봅니다.

참고로, 훌륭한 학생들은 이미 아래의 방법을 자신도 모르게 반복해서 수행하고 있을겁니다. 존경스럽습니다.

1.기초가 되는 이론을 탄탄하게 익혀두기

많은 학부생들이 학부때 배우는 전공과목을 왜 배우는지 도대체 어디에 쓰이는지 모르는채 학점을 따기위해 공부하고 더러는 해당 과목을 포기하기도 합니다. 본인이 대학원에 가고싶고 전공하고 싶은 분야가 있다면 해당 과목 수업을 열심히 듣고 이해하려 노력하세요. 좋은 논문을 읽다보면 그런 기초적인 것에서 부터 시작되는 연구들 또는 기초가 바탕이 되어 발전되는 연구들이 많습니다. 저의 경우 박사 졸업 주제와 다르게 지금은 머신러닝을 연구하고 있습니다만 학부때 그리고 대학원때 들었던 확률, 랜덤프로세스, 선형대수학 수업이 많은 도움이 되고 있습니다. 만일 학부시절에 해당 과목을 제대로 이수하지 못한 대학원생이라면 지금이라도 늦지 않았으니 다시 공부하기를 권장합니다.

2. 논문을 읽고 핵심이 되는 부분을 파악하고 이해하기

제가 박사과정일 때만 하더라도 transaction 논문을 몇개월씩 읽고 했는데 지금은 그렇게 하다간 쏟아져 나오는 논문 중 탑티어 저널/컨퍼런스 논문도 다 챙겨보기 힘든 세상입니다. 결국은 논문의 핵심을 빠르게 파악하고 그 핵심이 이전 연구에 비해 어느정도의 연구적 임팩트를 가졌는지 간파하는 능력이 매우 중요한것 같습니다. 이런 능력을 기르기 위한 다양한 방법이 있겠지만 저의 경우 excel sheet에 관련된 논문을 핵심 위주로 정리하는 습관을 길렀습니다. 예를 들어 A라는 분야가 대략 2015년 부터 시작되었다면 그 년도 부터 나온 탑티어 논문들을 읽으며 excel sheet에 핵심이 되는 부분 또는 아이디어를 정리합니다. 그렇게 2020년까지 정리한 후 excel sheet를 처음부터 쭉 읽어 내려가 보세요. A분야의 기술이 어떤 방향으로 발전했는지 눈에 보이기 시작하면 앞으로 어떻게 발전할지도 예측할 수 있는 눈이 생깁니다. 물론 단시간에 생기지는 않겠지만 꾸준히 하다보면 늘게 됩니다. 혼자서 하기 힘들다면 팀을짜서 같이하는것도 추천합니다. 객관적인 평가가 가능해집니다.

* 논문의 핵심이 무엇인지 모르겠다면 논문이 직접 언근한 contribution을 그대로 적어도 좋습니다. 다만 그 contribution이 논문 전체에서 어떤 의미를 갖는지 이해하려고 노력해야 할 것입니다.

3. 연구의 실험을 위해 사용되는 도구 (프로그래밍, 실험도구 등등)의 사용에 적어도 중수가 되기

머신러닝 분야의 경우 주로 python, pytorch, tensorflow, c++등의 프로그램을 많이 씁니다. 해당 프로그래밍 언어를 꽤 잘쓰는 정도까지 공부하고 연습하세요. 본인의 반짝이는 아이디어를 짧은 시간 안에 프로그래밍하고 빠르게 돌려서 결과를 확인하고 분석하는 과정이 본인에게 스트레스가 안되는 수준까지 갈 수 있어야 좋은 실험 결과가 나옵니다. 기존 논문의 오픈소스 코드를 이해하거나 혹은 논문을 읽고 재현할 수 있을 정도의 실력이 되는것도 매우 중요합니다. 논문만 읽고는 핵심 아이디어가 어떻게 구현되는지 감이 안잡힐때가 매우 많습니다. 공개된 코드를 보며 배우는것도 매우 좋고 스스로 구현해보는것도 매우 좋습니다.

4. 문제를 찾고 해결하는 능력을 기르기

어쩌면 가장 어려운 부분일듯 합니다. 새로운 문제를 정의하는게 가장 어려운것 같습니다. 저는 지금도 잘 못하고 있고 남들이 정의한 문제를 잘 푸는것도 힘듭니다. 주어진 문제라도 이 문제를 해결하는것 역시 어렵습니다. 다른 논문보다 더 반짝이는 아이디어로 더 좋은 실험 결과가 나와야 Accept이 될테니깐요. 이 부분에는 왕도가 없는것 같습니다. 끊임없이 고민하고, 실험하고, 적고, 분석하고, 유추하고, 시도하고의 반복인것 같습니다. 이 과정에서 좋은 해답을 찾고 논문으로까지 이어지는 경험을 겪게된다면 본인만의 ‘연구를 위한’ 루틴이 생길것입니다. 그 루틴을 찾는 과정이 매우 힘든것 같습니다. 저의 경우 아래의 과정을 다음과 같이 지속적으로 반복합니다.

A > B > C > B > C > B > C > A > B > C > B > C > ....

A. 기존 논문 읽고 오픈소스 분석하기 (기존 논문에서 얻을 수 있는 숨겨진 팁은 없는가? 악마는 detail에 있다는데..)
B. 논리적 근거에 바탕을 둔 아이디어 발상 (이런 아이디어를 여기에 접목하면 성능이 좋아지지 않을까?)
C. 아이디어 구현 및 실험, 결과 정리, 실패의 원인 분석

* 아이디어의 발상의 경우 정답이 없는 것 같습니다. 끊임 없이 생각하는게 중요한것 같습니다. 집에가서도 생각해보고 밥먹다가도 생각해보고 자기전에도 생각해보고 운전하다가도 생각하고... 2번 과정에 충실히 하시고 계시다면 아이디어는 끊임없이 솟아오를것이라 확신합니다.

5. 내 연구의 핵심을 잘 정리하여 글로 쓰기 (논문 작성)

이 부분 만으로도 글 하나를 더 쓸 수 있을 정도로 논문을 글로 쓴 과정은 매우 힘들고 어려운 과정인것 같습니다. 기회가 된다면 다른 글에서 적어보도록 하겠습니다.



장황하게 적고 보니 구체적인 내용은 없고 너무 두루뭉실하게 적은게 아닌가 싶습니다.. 1-4번에 해당되는 내용을 구체적으로 어떻게 실행에 옮길지는 사실 본인의 몫이라 생각합니다. 왕도는 없고 이것 저것 시도해보고 다른사람들을 따라해 보면서 본인만의 방법을 찾아가게 될 것이라 생각합니다.

카카오 계정과 연동하여 게시글에 달린
댓글 알람, 소식등을 빠르게 받아보세요

댓글 8개

2022.11.18

좋은 글 감사합니다.
내년에 대학원 입학하게 되는데 많은 도움이 될 것 같습니다.

IF : 1

2022.11.18

좋은 글 감사드립니다 선배님. 제가 감히 한 가지만 후배들을 위해 덧붙이자면, '항상 다른 분야의 연구들에 열린 마음을 가져라'입니다. 내 연구하기 바빠 죽겠는데 다른 분야까지 어떻게 확인하냐 할 수 있지만, 최소한 세미나나 같은 기회를 외면하지 않았으면 좋겠습니다. 컴퓨터 비젼 분야에서 시작된 CNN이 의학, 공학 안쓰이는 분야가 현재 없는 것처럼, 이러한 기회들에서 많은 연구 힌트들을 얻는다는 걸 꼭 기억하셨으면 좋겠습니다 (심지어 A분야 하나 파는 것보다 A+B 융합 연구가 논문 억셉도 잘된다는 건 안비밀).

2022.11.18

좋은 글 감사합니다.

해당 댓글을 보려면 로그인이 필요합니다. 로그인하기

해당 댓글을 보려면 로그인이 필요합니다. 로그인하기

해당 댓글을 보려면 로그인이 필요합니다. 로그인하기

해당 댓글을 보려면 로그인이 필요합니다. 로그인하기

해당 댓글을 보려면 로그인이 필요합니다. 로그인하기

댓글쓰기

게시판 목록으로 돌아가기