박사과정 입학 결정부터 지도교수와의 관계, 연구 주제 선택, 논문 작성, 코딩, 발표, 학회 참석까지 전 과정을 다루는 실전 조언.
이 글은 내가 학부 시절 익힌 요령을 정리했던 “Doing well in your courses” 글의 형식을 본뜬 것이다. 그때 글에 좋은 반응을 많이 받아서, 같은 취지로 이번에는 박사과정을 마무리하는 시점에서 회고 형식의 문서를 정리해 보려 한다. 누군가에게 도움이 되길 바란다. 다만 학부 가이드와 달리, 박사과정의 경험은 사람마다 매우 달라서 쓰기가 훨씬 어려웠다. 논쟁의 여지가 큰 내용도 있을 것이고, 내 배경(컴퓨터 과학/머신러닝/컴퓨터 비전 연구)에 편향된 부분도 꽤 있을 것이다. 하지만 면책 조항은 지루하니, 바로 시작하자!

먼저, 정말 박사학위를 해야 할까? 나는 어릴 때부터 박사학위를 간절히 원했던 운 좋은 경우였다. 안타깝게도 매우 깊이 생각한 결과는 아니었다. 첫째, 나는 학교와 배움을 정말 좋아했고 가능한 한 많이 배우고 싶었다. 둘째, 게임 하프라이프의 고든 프리먼처럼 되고 싶었다(그는 MIT 이론 물리학 박사다). 그 게임을 정말 사랑했다. 하지만 인생의 결정을 좀 더 이성적으로 내리는 편이라면? 박사를 해야 할까? 아주 좋은 Quora 스레드가 있고, 아래 고려사항 요약은 저스틴/벤/기타 분들의 내용을 차용해 재정리했다. 비교 대상은 중대형 기업에 입사하는 선택(가장 흔함)이라고 가정하자. 다음 속성들이 매력적인지 자문해 보라.
자유. 박사과정은 당신이 추구하고 배우고 싶은 주제에 대해 큰 자유를 준다. 당신이 주도한다. 물론 제약을 주는 지도교수가 있지만, 일반적으로 다른 곳보다 훨씬 자유롭다.
주인의식. 당신이 만든 연구는 개인인 당신의 것이다. 성과에는 당신의 이름이 붙는다. 대조적으로 큰 회사에서는 “섞여들어가는” 경우가 훨씬 흔하다. “큰 기계 속 작은 톱니”가 되는 느낌이 들 수 있다.
희소성. 최상위 박사과정에 가는 사람은 매우 적다. 수만 명(?)이 어떤 회사에 들어가는 것과 달리, 몇백 명의 뛰어난 사람들 그룹에 합류하게 된다.
지위. 그게 바람직하든 아니든 간에, 박사학위를 향해 나아가고 결국 받는 일은 문화적으로 존중받고 인상적인 성취로 인정된다. 닥터라는 호칭도 얻게 된다; 멋지다.
개인적 자유. 박사과정에서는 당신이 스스로의 상사다. 오늘 늦잠? 좋다. 하루 쉬고 여행? 좋다. 중요한 것은 최종 결과물뿐이며, 아무도 9시부터 5시까지 출퇴근하라고 시키지 않는다. 물론 지도교수나 일부 회사에 따라 유연성은 다르지만, 1차 근사로는 사실이다.
미래 선택지 최대화. 박사과정에 들어간다고 해서 문이 닫히거나 미래의 일/생활 옵션이 사라지지 않는다. 한 방향(박사→어디든)은 가능하지만, 그 반대(어디든→박사→학계/연구)는 통계적으로 드물다. 게다가(응용 ML에 다소 특화된 이야기일 수 있지만) 박사 졸업자나 심지어 박사 중퇴자는 채용 매력도가 더 높아, 더 흥미로운 포지션이나 더 높은 초봉을 제안받을 수 있다. 더 일반적으로, 미래의 당신에게 선택지를 최대화해 두는 것은 좋은 휴리스틱이다.
분산(variance) 최대화. 아직 젊고 서두를 필요가 없다. 박사를 마치면 이후 약 50년을 어떤 회사에서 보낼 수도 있다. 경험의 분산을 키워라.
개인적 성장. 박사과정은 급격한 학습과(많이 배운다) 자기 심리 관리의 달인이 되는(자기 자신을 다루는 법) 강렬한 경험이다. 특히 좋은 프로그램에 들어가면, _매우 높은 밀도_로 뛰어난 사람들을 만나게 되고, 그들이 평생의 절친이 된다.
전문성. 박사과정은 인생에서 어떤 주제를 정말 깊이 파고들어, 세계적 선도 전문가가 될 수 있는 아마 유일한 기회다. 하찮은 제약과 산만함 없이 인류 지식의 경계를 탐험한다. 그 자체로 아름답다. 이 말에 동의하지 않는다면, 박사가 당신에게 맞지 않는 신호일 수 있다.
면책 조항. 잠재적 단점과 실패 모드에 대해서도 몇 마디 덧붙이고 싶다. 박사는 매우 특수한 종류의 경험이며, 큰 면책 조항이 필요하다. (특히 마감 전에는) 필연적으로 매우 열심히 일해야 한다. 고통을 받아들이고, 압박을 버티는 정신력과 끈기가 있어야 한다. 요일 감각을 잃고 마이크로키친(간이 주방)의 남은 음식으로 버티는 때도 올 것이다. 해가 쨍한 토요일, 실험실에서 혼자 탈진한 채 페이스북을 스크롤하며, 친구들이 5~10배 높은 연봉으로 떠난 이국적 여행 사진을 보게 될 것이다. 석 달치 일을 통째로 버리면서도 멘탈을 지켜야 할 수도 있다. 몇 달 공들인 논문이 인용 몇 개에 그치는 동안, 친구들은 TechCrunch에 오르는 스타트업을 하거나 수백만 명에게 쓰이는 제품을 밀어넣는 모습을 보며 괴로울 수 있다. 인생 최고의 몇 해를 무엇에 쓰고 있는지 자문하는 정체성의 위기를 겪게 된다. 결과적으로, 구조화되지 않은 환경에서 과학을 위한 탐구와 발견을 즐길 수 있는 사람인지 꽤 확신이 있어야 한다. 확신이 없다면 기본값은 약간 부정적으로 잡아라. 이상적으로는, 커밋하기 전에 학부 때 여름 연구 프로그램 등으로 연구의 맛을 보는 것이 좋다. 사실 박사 선발에서 연구 경험이 선호되는 주된 이유는 연구 자체보다, 그 학생이 자신이 무엇에 뛰어드는지 더 잘 알고 있을 가능성이 높기 때문이다.
이 글의 목적이 박사를 설득하는 데 있는 것은 아니다. 위에는 흔한 고려사항을 나열했을 뿐이다. 글의 대부분은 일단 한다고 결정했을 때 그 경험을 헤쳐 나가는 요령에 관한 것이다(아래에서 보게 될 것이다).
마지막으로 하나 더. 박사는 오직 학계로 가고 싶을 때만 해야 한다는 말을 들었다. 위의 모든 맥락에서, 나는 박사가 강한 내재적 가치를 가진다고 본다. 박사는 어떤 목적(예: 교수 자리)을 위한 수단만이 아니라, 그 자체로 목적이 될 수 있다.
박사 과정 입학: 추천서, 추천서, 추천서. 좋아, 하기로 했다. 이제 좋은 박사 프로그램에 어떻게 들어갈까? 1차 근사로 아주 간단하다. 가장 중요한 요소는 강력한 추천서다. 이상적인 시나리오는 저명한 교수가 이렇게 써주는 것이다: “○○는 내가 같이 일한 학생 중 상위 5명 안에 듭니다. 스스로 주도하고, 아이디어를 내고, 실제로 작동시키는 학생입니다.” 최악은 이런 식이다: “○○는 내 수업을 들었고 성적이 좋았습니다.” 여름 연구 프로그램 등에서 낸 논문 한 편은 큰 보너스지만, 강한 추천서가 있다면 절대적 필수는 아니다. 특히 성적은 꽤 중요하지 않다. 다만 너무 낮지는 않게. 나는 학부 때 이 점을 몰랐고, 좋은 성적을 받는 데 에너지를 많이 썼다. 그 시간은 연구(혹은 최소한 개인 프로젝트)에 가능한 이르고 많이 투입했어야 했다. 가능하면 여러 사람의 지도를 받으며(3장 이상의 추천서가 필요하다!). 마지막으로, 잠재적 지도교수를 무턱대고 집요하게 들볶는 것은 별로 도움이 되지 않는다. 그들은 대개 믿을 수 없을 정도로 바쁘며, 학회나 이메일에서 과하게 다가가 인상을 남기려 하면 오히려 불쾌할 수 있다.
학교 고르기. 몇 군데 합격했다면 어디를 고를까? 쉽다, 스탠퍼드로 와라! 농담이다. 진지하게는, 꿈의 학교는 1) 톱 스쿨일 것(이력서에 멋있어서가 아니라 피드백 루프 때문이다. 톱 스쿨은 다른 톱 인재들을 끌어들이고, 그들과 알게 되고 같이 일하게 된다) 2) 함께 일하고 싶은 잠재적 지도교수가 ‘여럿’ 있을 것. “여럿”이 정말 중요하다. 최상위 선택이 수많은 이유(당신 통제 밖의 일 포함)로 잘 안 될 때의 안전망이 된다. 예: 꿈의 교수가 떠나거나, 이사하거나, 돌연 사라진다. 그리고 3) 물리적 환경이 좋을 것. 신입생들은 이 점을 충분히 중요하게 생각하지 않는다. 당신은 5년 이상, 젊고 좋은 시절을 캠퍼스 근처에서 보낸다. 정말 긴 시간이고, 삶은 연구만으로 구성되지 않는다.

학생–지도교수 관계. 지도교수는 박사 경험 전반에 큰 영향을 미치는 매우 중요한 사람이다. 관계의 본질을 이해하는 것이 중요하다. 학생–지도교수 관계는 공생이다. 당신은 박사과정에서 얻고 싶은 목표가 있고, 그들도 자신만의 목표와 제약이 있으며 본인 커리어를 쌓는다. 따라서 지도교수의 인센티브 구조를 이해하는 것이 매우 도움이 된다. 예: 테뉴어 과정이 어떻게 돌아가는지, 평가 방식, 연구비를 어떻게 따고 학생을 어떻게 지원하는지, 학과 정치, 상을 어떻게 받는지, 학계가 전반적으로 어떻게 돌아가는지, 특히 동료들의 인정을 어떻게 얻는지. 이것만으로도 많은 학생–지도교수 마찰을 피하거나 줄일 수 있고, 적절히 계획할 수 있다. 물론 관계를 지나치게 비즈니스 거래처럼 묘사하고 싶지는 않다. 학생–지도교수 관계는 종종 경력 상승을 넘어선, 오래 지속되는 관계로 발전한다.
테뉴어 전과 후. 모든 지도교수는 다르다. 박사 경험에 미치는 변인과 그 여파를 이해하는 것이 좋다. 대략적인 경험칙(예외 많음)으로, 지도교수가 테뉴어 전(pre-tenure)인지 후(post-tenure)인지가 중요하다. 젊은 교수는 대개 더 자주 연구실에 있고(테뉴어 받으려 열심히 일한다), 더 저수준까지 깊게 들어오며, 무엇을 해야 하는지에 대한 의견이 강하고, 수학을 같이 하고, 구체적 아이디어를 제시하고, 심지어 당신 코드를 들여다보거나 기여하기도 한다. 더 손에 흙 묻히는 촘촘하고 때로는 강도 높은 경험이다. 강한 실적이 테뉴어에 필요하기 때문에, 학생에게도 그만큼 밀어붙이는 인센티브가 있다. 반대로 더 시니어 교수는 연구실이 크고 연구 외의 의무(위원회, 강연, 출장 등)가 많아, 연구 주제나 학생에 대한 감독 모두에서 더 높은 추상 레벨로만 관여할 수 있다. 약간 캐리커처로 말하면, “그 식에 두 번째 항 빠졌어” vs “이 영역을 더 읽고, 누구누구와 이야기해 보고, 이런 식으로 어필해 보자”의 차이다. 후자의 경우 낮은 수준의 조언은 연구실의 고년차 박사나 포닥이 채워줄 수 있다.
변화의 축들. 다른 축들도 많다. 어떤 지도교수는 포근하고, 어떤 이는 매우 프로페셔널하게 거리를 둔다. 어떤 이는 연구 디테일에 큰 영향력을 행사하려 하고, 어떤 이는 매우 손을 뗀다. 어떤 이는 특정 모델과 그 응용에 초점을 두고, 어떤 이는 과제(task)에 더 초점을 두며 모델링에는 무관심하다. 매니지먼트 면에서도 어떤 이는 매주(혹은 매일!) 여러 번 만나고, 어떤 이는 몇 달간 못 볼 수도 있다. 어떤 이는 이메일에 바로 답하고, 어떤 이는 일주일(아니면 아예) 답이 없다. 어떤 이는 근무 시간에 요구사항(예: 야근/주말 근무)을 내고, 어떤 이는 그렇지 않다. 어떤 이는 장비에 아낌없이 투자하고, 어떤 이는 노트북/구형 컴퓨터도 괜찮다고 본다. 어떤 이는 학회에 논문이 없어도 보내주고, 어떤 이는 안 보낸다. 어떤 이는 창업/응용 지향이고, 어떤 이는 이론에 더 기댄다. 어떤 이는 여름 인턴십을 허락하고, 어떤 이는 인턴을 방해물로 본다.
지도교수 찾기. 어떻게 고를까? 첫 번째는 당연히 직접 만나서 이야기해 보는 것이다. 종종 결혼에 비유되는 관계이니, 서로 잘 맞는지 확인해야 한다. 개인적으로 잘 통하는지도 중요하지만, 위에서 말한 축들에서 그 교수가 어디에 위치하는지, 특히 관심 문제에 대해 지적으로 공명하는지가 중요하다. 매니지먼트 스타일 못지않게 중요하다.
평판 수집. 잠재적 지도교수에 대해 평판을 모아라. 좋은 전략은 그 교수의 학생들과 이야기하는 것이다. 진짜 정보를 원한다면, 격식을 차린 자리가 아니라 편한 분위기(예: 파티)에서 하는 게 좋다. 일반적인 방식으로 묻는다면 학생들이 부정적 이야기를 피할 수 있지만, 구체적인 질문(“얼마나 자주 만나나요?”, “얼마나 핸즈온인가요?”)에는 대개 솔직히 답한다. 또 다른 전략은 이전 학생들이 어디에 갔는지 보는 것이다(대개 홈페이지의 alumni 섹션에 있다). 이는 당신의 장기적 결과를 통계적으로 가늠하는 지표가 된다.
지도교수에게 인상 주기. 매칭은 결혼에 비유된다. 당신이 그들을 고르지만, 그들도 당신을 고른다. 그들이 보기에 이상적 학생은 관심과 열정을 갖고, 과도한 손잡아주기를 필요로 하지 않으며, 주도적으로 움직이는 사람이다. 즉, 일주일 뒤에 교수의 제안만 수행하는 것이 아니라, 그 이상을 해와서 뜻밖의 방식으로 개선해 오는 사람.
연구실 전체를 보라. 지도교수는 일주일에 한 번 볼지 몰라도, 연구실 동료들은 매일 보게 된다. 그들은 당신의 가장 가까운 친구가 된다. 대부분의 경우, 고년차 박사나 포닥과 협업하게 되고, 그들은 지도교수와 매우 비슷한 역할을 한다. 특히 포닥은 ‘교수 훈련생’이라, 지도 경험을 쌓아야 하므로 당신과 일하고 싶어할 가능성이 크다. 따라서, 그룹 전체에 당신과 잘 맞고, 존중할 수 있으며, 연구를 긴밀히 함께할 수 있는 사람이 있는지 확인하라.

t-SNE로 시각화한 인간 지식의 작은 부분집합(paperscape 제공). 각 원은 arXiv 논문이며, 크기는 인용 수를 의미한다.
박사 프로그램에 들어와 지도교수도 찾았다. 이제 무엇을 할까?
아우터 루프라는 성격. 먼저 경험의 본질을 이해하자. 박사과정은 동시에 재미있고 좌절스러운 경험이다. 늘 메타 문제의 레벨에서 일하기 때문이다. 단지 문제를 푸는 게 아니다. 그건 단순한 이너 루프다. 대부분의 시간은 아우터 루프에 쓴다. 어떤 문제가 풀 가치가 있고, 어떤 문제가 풀기 적기인지 판단한다. 가상의 문제를 푼 자신을 상상하며, 그게 당신을 어디에 놓는지, 무엇을 열어주는지, 누가 신경이나 쓰는지를 묻는다. 나처럼이라면 이게 때로는 미치게 만들 수 있다. 긴 시간을 들여 무언가를 하지만, 그것이 맞는 일인지, 해법이 존재하는지조차 확신하지 못하기 때문이다.
취향 개발. 문제 선택에 대해 학자들은 종종 ‘취향(taste)’이라는 신비한 감각을 말한다. 진짜 있다. 잠재적 문제를 지도교수에게 제시하면, 그들의 얼굴이 찡그려지고 눈이 구르고 관심이 흐려지는지, 아니면 미지의 땅을 앞에 둔 흥분이 눈에 서리는지 보이게 된다. 그 찰나에 많은 일이 벌어진다. 문제의 중요성, 난이도, 섹시함, 역사적 맥락(그리고 아마 그들의 활성화된 그랜트와의 적합성까지). 즉, 지도교수는 아우터 루프의 달인이며, 문제에 대한 _취향_이 매우 발달해 있다. 박사과정 동안 당신도 이 감각을 얻게 된다.
나는 박사 시작 당시 취향이 형편없었다고 생각한다. 초기 메모를 보면 그때 흥분했던 많은 문제들이 지금 보면 조악하거나, 풀기 어렵거나, 무관했다. 연습과 도제 과정을 거치며 점차 정제되었다고 믿고 싶다.
이 취향을 구성하는 생각 몇 가지를 정리해 보겠다. 어떤 문제가 흥미로운지에 관한 것이다.
비옥한 토양. 박사과정 동안 한 영역을 깊게 파고들게 되고, 논문들은 서로 사슬처럼 이어져 하나의 작업물(논문집=thesis)을 이루게 된다. 따라서 문제를 고를 때 항상 몇 수 앞을 보라. 전개를 예측할 수는 없지만, 추가 작업의 여지가 큰지 감을 잡을 수 있다.
지도교수의 관심사와 강점에 호응. 지도교수의 관심사 안에서 움직여야 한다. 약간 비껴난 영역을 허락하는 교수도 있지만, 그럴수록 그들의 지식 혜택을 온전히 못 누리고, 프로젝트를 도와주거나 홍보할 동기도 줄어든다. 예를 들어(앞서 말한 지도교수의 직업을 이해한다는 포인트와도 연결된다), 모든 지도교수는 자신의 연구에 대한 ‘기본 강연’ 슬라이드가 있다. 당신의 일이 그 덱에 새로운 최첨단 슬라이드를 추가해 준다면, 교수는 훨씬 더 몰입하고, 도움이 되며, 깊이 관여하게 된다. 또한 그들의 강연이 당신의 일을 홍보해 준다.
야심차되, 난이도는 부분선형(sublinear). 사람 마음에는 이상한 버그가 있다. 10배 더 중요하거나 임팩트 있는 문제는 직관적으로 10배 더 어렵거나 달성 가능성이 10배 낮다고 느껴진다. 이는 착각이다. 내 경험상 10배 더 중요한 문제는 많아야 2~3배 더 어렵다. 어떤 경우에는 10배 더 어려워 보이는 문제가 오히려 더 쉽다. 왜일까? 10배를 생각하면 상자 밖으로 나와야 하고, 접근의 진짜 한계를 직면해야 하며, 제로베이스로 생각하고, 전략을 완전히 바꾸고, 혁신하게 되기 때문이다. 10% 개선을 목표로 하고 열심히 하면, 대개 그렇게 된다. 하지만 100% 개선을 목표로 해도 여전히 상당히 달성 가능하며, 다만 방법이 매우 달라진다.
야심차되, 공격 경로가 있어야. 물론 중요한 문제라고 해서 모두 훌륭한 프로젝트는 아니다. 리처드 해밍의 You and Your Research를 읽어보길 권한다. 이 점을 넓게 논한다:
중요한 문제에 대해 일하지 않는다면, 중요한 일을 해낼 가능성은 낮다. 너무나 자명하다. 위대한 과학자들은 자신의 분야의 여러 중요한 문제를 신중히 생각해 놓고, 그것들을 어떻게 공격할지 기회를 엿본다. 경고하건대,
중요한 문제는 신중히 표현되어야 한다. 내가 벨랩에 있을 때 물리학의 세 가지 뛰어난 문제는, 어떤 의미에서, 누구도 손대지 않았다. ‘중요하다’는 말은 노벨상과 당신이 원하는 만큼의 돈이 보장된다는 뜻이다. 하지만 우리는 (1) 시간여행, (2) 텔레포테이션, (3) 반중력에 대해 일하지 않았다. 공격 경로가 없기 때문이다. 결과가 대단하다고 문제가 중요한 것이 아니다. 합리적인 공격 경로가 있을 때 문제가 중요한 것이다.
“X를 만든 사람.” 궁극적으로 박사의 목표는 한 분야의 깊은 전문성을 기르는 것뿐 아니라 흔적을 남기는 것이다. 분야의 방향을 틀고, 모양을 잡는다. 이상적으로, 박사 말에는 중요한 영역의 일부를 당신이 ‘소유’하고 있길 바란다. 빠르고 쉽게 설명되면 더 좋다. 사람들이 “그녀는 X를 한 사람”이라고 말하게 하라. 빈칸에 무언가를 채울 수 있다면 성공이다.
가치 있는 기술. 박사과정 동안 당신은 선택한 영역의 전문가가 된다(재미있는 계산: [5년]×[연 260 근무일]×[하루 8시간]=10,400시간. 글래드웰을 믿는다면, 박사는 딱 전문가가 되는 시간이다). 그러니 5년 뒤 그 영역의 세계적 전문가가 된 자신을 상상해 보라(10,000시간은, 연구의 학문적 임팩트와 무관하게, 이를 보장한다). 그 기술은 당신의 미래에 흥미롭고 가치 있는가?
나쁜 예시. 피해야 할 문제/논문 유형도 있다. 예를 들어 종종 학계에서 _“점진적(incremental) 작업”_이라는 표현을 듣는다(학계 최악의 형용사다). 점진적 작업은 기존 무언가를 복잡하게 해서 벤치마크 2%를 더 올리는 논문을 말한다. 웃긴 점은 이런 논문이 꽤 높은 확률로 게재된다는 것이다(리뷰어가 “죽일” 명확한 포인트를 잡기 어렵기 때문. 그래서 “바퀴벌레 논문”이라 부르기도 한다). 연속으로 이런 논문들이 붙으면 생산적인 느낌이 들겠지만, 인용은 잘 안 되고, 분야에 큰 임팩트를 남기지 못한다. 마찬가지로 프로젝트를 찾을 때 “다음 논리적 스텝이 공중에 떠 있는데, 아무도 안 했으니 내가 하자”, “포스터 하나 따기 쉬워 보인다” 같은 생각은 가급적 배제하라.
사례 연구: 내 학위논문. 구체성을 위해 내 박사가 어떻게 전개됐는지 예를 들겠다. 재미있는 사실: 내 학위논문 전체는 박사 마지막 1.5년에 한 작업에 기반한다. 즉, 메타문제 공간에서 꽤 오래 헤매다가, 정말 흥분되는 문제를 찾았다(그 전 약 2년은 주로 3D(예: Kinect Fusion, 3D 메쉬, 포인트클라우드 특징)와 비디오 관련 작업을 어슬렁거렸다). 그러다 3학년 어느 날, 토요일 새벽 2시에 우연히 리처드 소처의 사무실에 들렀다. 흥미로운 문제를 대화하다 보니, 그의 이미지-언어 관련 작업이 매우 흥미로운 어떤 것에 닿고 있다는 걸 깨달았다(물론 이미지와 언어의 교차 영역은 리처드 이전에도 역사가 깊다). 뒤이을 모든 논문이 보이진 않았지만, 휴리스틱하게 매우 유망해 보였다. 비옥했고(미해결 문제 다수, 설명을 이미지에 연결하는 흥미로운 가능성들), 멋지고 중요했으며, 설명이 쉬웠고, 가능한 것의 경계에 있어 보였다(딥러닝이 막 작동하기 시작). 데이터셋도 막 나오기 시작했다(Flickr8K가 막 나왔다). 페이페이의 관심사에 잘 맞았고, 설령 성공하지 못하더라도, 다른 곳에 재활용 가능한 흥미로운 딥넷 최적화를 잔뜩 연습할 수 있었다. 머릿속에서 모든 게 딱 맞아떨어지는 체크 표시의 쓰나미가 왔다. 다음 날 이 분야에 뛰어들자고 페이페이(내 지도교수)에게 피치했고, 다행히 그녀는 열정적으로 동의하고 격려했으며, 나중에는 공간 내에서 방향을 잡아주기도 했다(예: 나는 주로 랭킹에 만족했지만, 페이페이는 이미지→문장 생성까지 하라고 고집했다). 이후 전개에 만족한다. 요약하면, 2년간 아우터 루프에서 헤매며 뛰어들 대상을 찾다가, 여러 휴리스틱이 맞물린 순간 꽂혔고, 깊이 파고들었다.
저항. 지도교수가 무오류는 아니다. 되돌아보면 지도교수가 잘못된 결정을 한 사례를 많이 보거나 들었다. 박사 중 그렇게 느낀다면, 가끔은 교수를 무시할 용기를 가져야 한다. 학계는 일반적으로 독립적 사고를 장려하지만, 구체적 지도교수의 반응은 상황에 따라 다르다. 승부수가 잘 먹힌 경우도 여럿 봤고, 나도 잘 안 된 경우를 겪었다. 예컨대, 1학년 때 앤드류 응이 내게 준 조언에 강하게 반대한 적이 있다. 그는 별로 흥미로워하지 않던 문제를 내가 했고, 놀랍게도 그가 맞았다. 몇 달을 날렸다. 이길 때도 지는 때도 있다 :)
게임을 하지 말라. 마지막으로, 박사를 논문들의 연쇄 그 이상으로 보길 권한다. 당신은 ‘논문 쓰는 기계’가 아니다. 연구 공동체의 일원이고, 목표는 분야를 앞으로 밀어붙이는 것이다. 논문은 흔한 수단일 뿐이고, 정해진 학계의 게임을 넘어서 보라. 제로베이스로 생각하라. 남들이 하지 않지만 해야 할 일을 하라. 앞에 놓인 러닝머신에서 내려와라. 나도 박사 동안 이를 조금 시도했다. 이 블로그가 그 예다. 논문에 보통 담기지 않는 내용을 소통할 수 있다. ImageNet 인간 기준 실험이 그 예다. ILSVRC에서 인간 정확도의 대략치를 아는 것이 중요하다고 강하게 느껴, 몇 주를 떼어 평가했다. 학술 검색 도구(예: arxiv-sanity)도 그 예다. 문헌에서 논문을 찾는 비효율에 지속적으로 좌절했고, 다른 사람에게 도움이 되길 바라며 사이트를 공개/유지하고 있다. CS231n을 두 번 가르친 것도 예다. 박사과정 학생으로서 연구에 써야 할 시간 대비 비합리적일 정도로 공들이긴 했지만, 사람들에게 주제를 효율적으로 배워 진입할 길이 없으면 분야가 뒤처진다고 느꼈다. 이런 시도들은 표준 학술 지표(h-index나 톱 venue 논문 수 등)에서 손실을 가져왔을 것이다. 그래도 했다. 다시 해도 똑같이 할 것이다. 그리고 다른 이들에게도 권한다. 덧붙이자면, 친구들과의 토론에서 이 관점이 논쟁적이며, 동의하지 않는 이들도 많다는 걸 안다.

좋은 논문을 쓰는 능력은 학자의 필수 생존 기술이다(동굴인에게 불 피우기 같은 것). 특히 논문은 특정한 형식물이란 점을 이해하는 게 중요하다. 생김새, 흐름, 구조, 언어, 통계 등이 있고, 다른 연구자들이 이를 기대한다. 내 박사 초기에 쓴 초고들을 보면 민망할 때가 많다. 배울 것이 많다.
리뷰를 해보라. 좋은 논문들을 많이 읽고 패턴을 추출하는 것은 타당해 보일 수 있다. 하지만 최선의 전략은 아니다. 양성 예시만으로 이진 분류를 학습하는 셈이다. 정말 필요한 것은, 나쁜 논문도 많이 접하는 것이다. 한 가지 방법은 논문 리뷰를 해보는 것이다. 좋은 학회는 수락률이 보통 25% 내외이므로, 리뷰하게 되는 논문의 대부분은 ‘나쁘다’. 덕분에 강력한 이진 분류기를 만들 수 있다. 나쁜 논문을 읽으며, 얼마나 불분명한지, 변수를 정의하지 않는지, 서론이 얼마나 모호하고 추상적인지, 혹은 너무 빨리 디테일로 뛰어드는지를 깨닫게 되고, 같은 함정을 피하게 된다. 관련해 저널 클럽에 참여(혹은 조직)하는 것도 큰 도움이 된다. 숙련된 연구자들이 논문을 비판하는 걸 보며, 다른 이들이 당신의 논문을 어떻게 분석할지 감을 잡게 된다.
게슈탈트를 맞춰라. 페이페이(내 지도교수)와 리뷰 세션을 하다 인상 깊었던 적이 있다. 내가 몇 시간 동안 4편을 리뷰하고 있었는데, 그녀는 각 논문을 10초씩 훑어보고 1편은 좋고 3편은 나쁘다고 했다. 실제로 내 판정도 그랬다. 내가 몇 시간 걸린 것을 그녀는 몇 초 만에 했다. 페이페이는 논문의 _게슈탈트_를 강력한 휴리스틱으로 썼다. 연구 경력을 쌓을수록 당신 논문은 특유의 ‘모양’을 갖는다. 1페이지 안팎의 서론. 적당한 밀도의 인용이 있는 관련연구 1페이지 정도(성글지도 과밀하지도 않게). MS Paint로 만들지 않은 잘 디자인된 당기는(pull) 그림(1~2페이지)과 시스템 그림(3페이지). 어딘가에 수식이 조금 있는 기술 섹션, 숫자가 많은 결과 테이블과 몇 개의 볼드 숫자, 귀여운 추가 분석 실험 하나, 그리고 정확히 8페이지(페이지 제한)로, 한 줄도 모자라지 않는 글. 당신도 논문에 같은 게슈탈트를 부여하는 법을 배워야 한다. 많은 연구자가 당신의 작업을 판단할 때 인지적 지름길로 의존하기 때문이다.
핵심 기여를 식별하라. 쓰기 시작 전에, 논문이 분야에 하는 ‘단 하나의’ 핵심 기여를 식별하라. 특히 _단 하나_를 강조한다. 논문은 당신이 수행한 몇몇 실험의 보고서가 아니다. 논문은 이전에는 자명하지 않았던, 존재하지 않았던 ‘한 가지’를 판다. 그 한 가지가 중요하고, 이전에 없었음을 논증하고, 통제된 실험으로 그 가치를 뒷받침한다. 전체 논문은 이 핵심 기여를 중심으로 수술하듯 조직된다. 곁가지가 없어야 하고, 옆에 다른 것을 얹으려 하지 말아야 한다. 구체적 예로, 내 초기 비디오 분류 논문에서 두 기여를 한 편에 억지로 넣은 실수를 했다. 1) 비디오 컨브넷 아키텍처 레이아웃 묶음과, 무관한 2) 소폭 개선을 주는 다중 해상도 아키텍처. “나중에 누군가 관심 가질 수도 있지 않을까”, “기여는 합산되니 두 개면 더 낫지 않을까”라고 생각했다. 불행히도 틀렸다. 두 번째 기여는 사소/의심스러웠고, 논문을 희석하고 산만하게 만들었고, 아무도 신경 쓰지 않았다. 비슷한 실수를 CVPR 2014 논문에서도 했다. 랭킹 모델과 생성 모델, 두 개를 한 편에 담았다. 뒤돌아보면 두 편으로 냈어야 한다는 좋은 논거가 많다. 하나로 묶인 이유는 합리성보다 역사적 사정이 컸다.
구조. 핵심 기여를 식별했다면, 이를 쓰는 기본 레시피가 있다. 상위 구조는 기본적으로 서론, 관련연구, 모델, 실험, 결론이다. 서론을 쓸 때는 상위 내러티브를 라텍스 주석에 먼저 일관되게 적어 두고, 본문을 채워 넣는 것이 도움이 된다. 각 문단은 첫 문장에 단일한 요점을 명확히 적고, 나머지 문장으로 뒷받침하는 방식을 좋아한다. 독자가 스킴하기 쉽다. 아이디어의 좋은 흐름은 대략 이렇다. 1) X(필요하면 정의)는 중요한 문제다. 2) 핵심 도전은 이것과 그것이다. 2) 이전 연구는 이를 Y로 다뤄왔지만, Z라는 문제가 있다. 3) 본 연구는 W를 한다. 4) 이것은 다음과 같은 매력적 속성이 있고, 실험은 이것과 저것을 보여준다. 구조를 조금 바꿔도 되지만, 핵심 포인트는 명확해야 한다. 다시 말하지만, 논문은 당신의 정확한 기여 주위로 수술하듯 조직된다. 예를 들어 도전 과제를 나열할 때, 나중에 당신이 다룰 것들만 정확히 나열해야 한다. 당신이 하지 않은 것들로 샛길로 가지 않는다(결론에서 약간의 전망은 가능). 논문 전체에서 일관된 구조를 유지하는 것이 중요하다. 예를 들어 모델 설명의 각 섹션은 1) 해당 섹션에서 무엇을 하는지 명확히 설명하고, 2) 핵심 도전이 무엇인지 밝히고, 3) 기본 접근이나 이전의 접근을 설명하고, 4) 당신의 접근을 동기화하고 설명하고, 5) 기술한다.
구조를 깰 때. 물론 이런 포뮬러를 어느 정도 가지고 놀며, 논문에 양념을 더해도 좋다(권장!). 예컨대 Razavian 등(2014)의 재치 있는 논문은 서론을 학생과 교수의 대화 형식으로 구성한다. 영리하고 마음에 든다. 또 Alyosha Efros의 많은 논문은 장난기 있는 톤으로 쓰여, 재미있는 글쓰기의 좋은 사례다. 예로 Antonio Torralba와 함께 쓴 Unbiased look at dataset bias를 보라. 또 하나의 가능성은 FAQ 섹션을, 필요하면 부록에 넣는 것이다.
흔한 실수: 빨래 목록(laundry list). 매우 흔한 실수는 “빨래 목록”식이다. “문제는 이렇다. 이를 풀기 위해 먼저 X를 하고, 그다음 Y, 그다음 Z, 이제 W, 그리고 결과는 이렇다.” 이런 구조를 피하려고 매우 노력해야 한다. 각 포인트는 정당화되고, 동기화되고, 설명되어야 한다. 왜 X, Y를 하는가? 대안은 무엇인가? 다른 이들은 무엇을 했는가? “흔한 방법이다”(가능하면 인용)라고 말해도 된다. 당신 논문은 보고서, 당신이 한 일을 열거한 문서, 실험 일지를 라텍스로 번역한 것이 아니다. 문제, 접근, 맥락에 대한 매우 가공되고 초점 있는 논의다. 동료에게 무언가를 가르쳐야 하며, 단지 한 일을 나열하는 게 아니라 정당화해야 한다.
언어. 시간이 지나면 논문에 쓸 좋은 단어와 나쁜 단어의 어휘를 얻게 된다. 구체적 예로, ML/컴비전 논문에서, 당신은 “study”나 “investigate”하지 않는다(지루하고 수동적이며 나쁜 단어). 대신 “develop”, 더 좋게는 “propose”한다. 당신은 “system”이나, 으, “pipeline”을 제시하지 않는다. 대신 “model”을 개발한다. “features”를 학습하는 게 아니라 “representations”를 학습한다. 그리고 제발, “combine”, “modify”, “expand”하지 않는다. 이것들은 점진적이고, 듣기 싫은 단어들이며, 논문을 떨어뜨릴 것이다 :).
내부 마감 2주 전. 많은 연구실이 하지는 않지만, 다행히 페이페이는 마감 2주 전에 내부 마감일을 매우 강조했다. 최소 5페이지 초안을 제출해야 하고, 최종 숫자는 아니더라도 최종 실험은 모두 포함해야 하며, 내부 리뷰는 외부 리뷰와 동일한 폼으로 진행된다. 이 관행은 매우 유익했다. 전체 논문을 강제로 펼쳐보면, 논문이 흐르고 논증이 일관되고 설득력 있게 되려면 반드시 돌려야 하는 핵심 실험들이 거의 항상 드러나기 때문이다.
이 주제에 대해 또 하나 좋은 자료는 Jennifer Widom의 Tips for Writing Technical Papers이다.

당연히 아이디어의 _실행_에 많은 시간이 든다. 이는 많은 코딩을 포함할 것이다. 학계만의 주제는 아니니 길게는 말하지 않겠다. 다만 몇 가지를 짚고 싶다.
코드를 공개하라. 놀랍게도, 논문을 내고도 코드를 공개하지 않을 수 있다. 코드를 공개하지 않으려는 유인이 많다. 일이 많이 든다(연구 코드는 빠르게 반복하다 보면 스파게티가 되기 쉽고, 정리하느라 손이 간다). 남들이 당신의 기껏해야 괜찮은 수준의 코드를 평가할 생각을 하면 주눅이 든다. 코드를 유지보수하고, 질문에 답하는 일(영원히)은 고통스럽다. 버그가 드러나 결과를 무효화할 것 같아 걱정될 수도 있다. 하지만 바로 이런 이유들 때문에라도 코드를 공개해야 한다. 공개의 두려움은 더 나은 코딩 습관을 강제하고(결국 시간을 절약한다!), 더 나은 엔지니어링 관행을 배우게 하고, 단위 테스트를 써 버그 가능성을 낮추며, 다른 이들이 당신의 일을 훨씬 더 따라 하기 쉽게 만들어(인용 증가), 후대에 정확히 무엇을 했는지 기록으로서도 더 유용하다. 코드를 공개할 때는 Docker 컨테이너를 활용하길 권한다. 의존성(정확한 버전 포함) 설치 문제로 인한 이메일 두통을 줄여준다.
미래의 나를 생각하라. 당신 자신을 위해 코드를 매우 잘 문서화하라. 몇 달 뒤(예: 카메라 레디 버전을 위해 추가 실험을 하려 돌아올 때) 코드베이스로 돌아오면, 완전히 길을 잃을 것이다. 나는 모든 저장소에 매우 꼼꼼한 readme.txt를 만들어(내 개인용) 코드가 어떻게 작동하는지, 어떻게 돌리는지 등을 ‘미래의 나’에게 남기는 습관이 생겼다.

논문이 붙었고 오럴(구두 발표)이다! 몇 분짜리 발표를 큰 청중 앞에서 하게 됐다. 어떤 모습이어야 할까?
발표의 목표. 흔한 오해는 발표의 목표가 논문에서 한 일을 청중에게 설명하는 것이라는 생각이다. 이는 틀렸고, 2순위나 3순위 설계 기준이어야 한다. 발표의 목표는 1) 당신이 다룬 문제에 청중을 정말로 신나게 만들고(문제의 가치를 알아야 해법에 관심을 가진다!) 2) 청중에게 무언가를 가르치며(이상적으로 당신의 통찰/해결책의 맛을 보여주면서; 다른 이들의 관련 연구에 시간을 써도 좋다), 3) 재미를 주는 것이다(안 그러면 페이스북을 보게 된다). 이상적으로, 발표가 끝날 때 청중은 “와, 나는 틀린 분야에 있나 보다”, “이 논문을 꼭 읽어야겠다”, “이 사람은 이 분야 전체를 인상적으로 이해하고 있다”는 생각을 하게 된다.
해야 할 것들. 발표를 더 좋게 만드는 속성이 있다. 예: 해야 한다: 그림을 많이. 사람들은 그림을 사랑한다. 비디오와 애니메이션은 산만하니 절제해 사용한다. 해야 한다: 발표를 실행 가능하게 만들라. 발표 후 누군가가 할 수 있는 것을 이야기하라. 해야 한다: 라이브 데모가 가능하면 하라. 발표가 더 기억에 남는다. 해야 한다: 당신의 작업이 속한 더 넓은 지적 아치를 구축하라. 해야 한다: 이야기를 만들라(사람들은 이야기를 사랑한다). 해야 한다: 인용, 인용, 또 인용! 동료에게 크레딧을 주는 데 슬라이드 공간은 거의 안 든다. 그들을 기쁘게 하고, 당신에게도 늘 좋은 인상을 준다. 자신의 기여가 겸손히 이전과 병행되는 것 위에 서 있음을 보여준다. 같은 학회에 나온 관련 작업도 인용하고 짧게 광고할 수 있다. 해야 한다: 연습하라! 먼저 혼자, 그다음 연구실/친구들 앞에서. 거의 항상 내러티브와 흐름의 결함을 통찰력 있게 드러낸다.
하지 말 것: 텍스트텍스트텍스트. 슬라이드를 텍스트로 가득 채우지 말라. 불릿 포인트는 아주 조금, 아니면 전혀 없어야 한다. 발표자는 종종 이를 ‘치트 시트’로 쓰지만, 슬라이드는 당신을 위한 것이 아니라 청중을 위한 것이다. 그 내용은 발표자 노트에 두라. 슬라이드 과밀과 관련해, 복잡한 다이어그램도 최대한 피하라. 청중의 인지 대역폭은 정해져 있고, 당신에게는 아주 익숙하고 “단순한” 다이어그램이 처음 보는 이에게 그만큼 단순/해석 가능하지 않다.
주의: 결과 테이블. 당신 방법이 더 낫다는 촘촘한 테이블을 넣지 말라. 논문이 붙었다면, 결과는 괜찮았을 것이다. 나는 이런 부분이 지루하고 불필요하다고 느낀다. 숫자가 흥미로운 무언가(당신 방법이 더 낫다는 것 이상의)를 보여주지 않는 한, 혹은 당신이 매우 자랑스러운 큰 격차가 있지 않는 한. 결과나 그래프를 넣을 때는 트랜지션으로 천천히 쌓아 올려라. 한 번에 모두 올려놓고 한 슬라이드에 3분을 쓰지 말라.
함정: 지루함/혼란 사이의 얇은 띠. 청중의 좋은 부분이 무언가를 배우게 하는 발표를 설계하는 것은 꽤 어렵다. 흔한 실패 사례(청중 입장에서)는 발표 전반은 지독하게 지루했고, 후반은 완전히 혼란스러워서, 끝날 때 아무것도 배우지 못한 경우다. 너무 일반적인 개요 뒤에, 너무 기술적인 후반을 붙이는 발표에서 자주 발생한다. 당신의 발표가 이런 위험을 띠는 순간을 가려내라.
함정: 시간 초과. 많은 발표자가 초반 서론(대개 다소 지루할 수 있는)에 시간을 너무 많이 쓰고, 가장 흥미로운 결과/분석/데모가 있는 마지막 슬라이드들을 허겁지겁 몰아친다. 그렇게 하지 말라.
함정: 포뮬러 발표. 나는 약간 특이 케이스일지 몰라도, 관습에 도전하는 비포뮬러 발표의 팬이다. 예컨대, 나는 개요 슬라이드를 _증오_한다. 발표를 너무 지루하게 만든다. 마치 “이 영화는 파워의 반지에 관한 이야기입니다. 1장에서 호빗이 반지를 가지게 됩니다. 2장에서 모르도르로 여행합니다. 3장에서 반지를 운명의 산에 던져 파괴합니다. 1장부터 시작하겠습니다”라고 말하는 것과 같다. 제발! 나는 아주 긴 발표에서, 청중이 벗어났다가(30분이 넘으면 필연적으로 몇 번은) 돌아올 수 있도록 닻으로 개요 슬라이드를 쓰긴 하지만, 매우 절제해서 써야 한다.
관찰하고 배우라. 결국 발표 실력을 높이는 가장 좋은 방법(논문 쓰기도 마찬가지)은 의식적으로 훌륭한(그리고 그저 그런) 발표자들이 무엇을 하는지 주의 깊게 보고, 머릿속에 이진 분류기를 만드는 것이다. 발표를 ‘그냥’ 즐기지 말라. 분석하고, 분해하고, 배워라. 추가로, 청중과 반응에 매우 주의를 기울이라. 발표자가 복잡한 숫자 테이블을 올리는 순간, 청중의 절반이 즉시 휴대폰을 내려다보고 페이스북을 여는 것을 보게 될 때가 있다. 이런 일이 일어나게 하는 이벤트들의 내부 분류기를 만들고, 당신 발표에서는 피하라.

학회에 관해:
가라. 특히 당신 분야의 1~2개 최상위 학회에는 가는 것이 매우 중요하다. 지도교수가 예산이 부족해(예: 논문이 없다고) 출장비를 대주지 않더라도, 스스로 비용을 낼 각오를 하라(보통 항공/숙소/등록/식비 포함 약 2000달러). 학계 커뮤니티의 일부가 되고, 분야 사람들을 만나 연구 가십을 나눌 기회를 얻는 것이 중요하다. 과학은 몇몇 천재적인 외톨이들이 고독하게 일하는 이미지가 있지만, 실제로 연구는 대체로 매우 사회적인 작업이다. 많은 사람의 어깨 위에 서 있고, 다른 사람들과 병렬로 문제를 풀고 있으며, 그들에게 논문을 쓰고 있다. 게다가 각 분야에는 논문으로 정리되지 않고, 공동체의 공유된 이해로 퍼지는 지식이 있다. 다음에 무엇이 중요한 주제인지, 어떤 논문이 가장 흥미로운지, 논문의 비하인드 스토리, 역사적 발전, 어떤 방법이 (논문상뿐 아니라) 실제로 잘 작동하는지 등등. 커뮤니티의 일부가 되어 집단지성에 직접 접근하는 것은 매우 가치 있고(그리고 재미있다!). 먼저 거기서 배우고, 훗날 영향을 미치자.
발표 선택: 연사 기준으로. 어떤 발표를 들을지 고를 때, 주제보다 발표자를 보는 편이 나을 때가 있다. 어떤 사람은 다른 사람보다 발표를 잘한다(스킬이며, 시간이 지나면 누군지 알게 된다). 내 경험상 내 분야와 정확히 맞지 않는 주제라도 그들의 발표를 보는 것이 종종 이득이다.
진짜 액션은 복도에서. 혁신의 속도(특히 머신러닝)는 이제 학회의 시간척도보다 빠르다. 그래서 학회에서 볼 상당수의 관련 논문은 사실 ‘예전 뉴스’다. 따라서 학회는 본질적으로 사회적 이벤트다. 발표에 들어가기보다는, 일정표에는 없지만 복도가 주요 이벤트임을 인식하라. 포스터 세션을 돌아다니며 놓친 흥미로운 논문과 아이디어를 발견하는 것도 유익하다.
박사에는 세 단계가 있다고 한다. 1단계에서는 관련 논문의 참고문헌을 보면 대부분 읽지 않았다. 2단계에서는 모든 논문을 알아본다. 3단계에서는 모든 논문의 제1저자와 맥주를 나눠 마셨다.
YC의 샘 올트먼이, 스타트업에는 지름길이나 치트가 없다고 말했던 인용을 찾지 못하겠다. 장기적으로 시스템을 요리조리 피해 가거나 허상으로 이길 수 없다는 말이다. 학계도 마찬가지라고 생각한다. 궁극적으로 우리는 좋은 연구를 하고 분야를 밀어붙이려 한다. 대리 지표들을 게임하려 들면 장기적으로 성공하지 못한다. 특히 학계는 놀랄 만큼 작고 촘촘히 연결되어 있어서, 학력서를 부풀리려고 수상한 짓(자가 인용 과도, 작은 변주로 같은 아이디어 여러 번 출판, 수정 없이 같은 리젝 논문 재투고, 편리하게 일부 베이스라인을 빼기 등)을 하면 언젠가 당신을 따라잡고, 성공하지 못할 것이다.
결국 매우 단순하다. 좋은 일을 하고, 제대로 소통하라. 그러면 사람들이 알아보고, 좋은 일이 생긴다. 즐거운 여정이 되길!