스스로에게 최초로 자유로운 몰입의 시간을 할당한지도 어느덧 반년이 훌쩍 넘어갔다. 그간의 시간을 회고하기에 적당한 시점이라는 생각이 들어 글을 남긴다. 반년간 수많은 사건들이 있었지만 굵직한 것만을 추린다면 다음 4가지를 뽑고싶다.
- 컨벡스 최적화 과정 기획 및 운영 (풀잎스쿨, 모두의 연구소)
- Deep Learning College (모두의 연구소)
- 강화학습
- 딥러닝을 공부하는 청년백수 모임
1. 컨벡스 최적화 과정 기획 및 운영 (풀잎스쿨, 모두의 연구소)
호주에서의 유학기간동안 급속도로 친해졌던 한 박사님의 전공이 바로 최적화였다. 때때로 마주앉아 10시간도 넘게 시간가는 줄 모르고 학문적인 이야기를 나누곤 했었는데, 기계학습 상당부분의 컨셉이 최적화 관점에서 해석 가능한 것에 신선한 인상을 받았다. 이후 최적화의 입문서로 Boyd & Vandenberghe의 Convex Optimization이라는 책을 추천 받았고, 그것을 계기로 자연스럽게 최적화에 대한 공부를 시작하게 되었다. 사실 모두의 연구소에 최적화 연구실을 개설하여 ‘1년 안에 논문 작성’을 실현하리라는 거창한 초기 목표가 있었지만, 어차피 한동안의 활동은 스터디에서 머무를 것이 확실했기에 풀잎스쿨을 통한 프로그램 개설로 노선을 다소 변경하였다. 참고교안으로 처음 3개월은 이론 위주의 스탠포드 강의 CVX101로, 이후 6개월은 기계학습과 통계학 관점의 카네기멜론 대학 강좌를 선정하였다.
이 과정을 1월부터 반년간 진행하며 통감한 것은 무엇보다도 인재에 대한 중요성이다. 한 그룹의 가치는 개개인이 가진 열의에 절대적으로 의존적일 수 밖에 없다. 안타까운 사실은 -특히 비수익성 활동일수록- 거듭되는 시간에 비례하여 매너리즘이 점차 수반되는 경향성이 있다는 것이며, 또한 충원되는 인원보다 이탈하는 인원이 많아지며 그룹의 전반적인 분위기가 악화될 수 있다는 점이다. 이에 대한 고민의 끝에 차후 추구해야 할 방향을 다음의 두 가지 항목으로 정리해 보았다.
- 루틴과 적정량의 도전과제 사이에서의 균형
- 지속적인 인원 충원
하지만 비영리 활동에서 매번 적당량의 도전과제를 만들어 참여원들께 요구하는 것은 쉽지 않은 일이었고, 또한 시간이 지날수록 진입장벽은 높아져가기에 중간중간 인원을 충원하는 것은 쉽지 않은 일이었다. 이에 강구한 해결책이 바로 컨벡스 최적화의 교재작성이었다. 교재작성을 해결방안으로 선택한 것에는 아래와 같은 여러가지 기대효과들이 있었기 때문이다.
- 돌아가며 교안을 작성함으로써 개개인에게 주기적인 긴장감을 조성할 수 있음
- 컨벡스 최적화의 한글 참고자료가 부족한 작금의 상황으로 인해 이 활동에 충분히 의미있는 미션을 부여할 수 있음
- 열의가 높은 인재일수록 본인의 활동에 대한 의의와 주인의식을 추구하는 성향이 강한데, 저술활동으로 그 욕구를 충족시킬 수 있음
- 주기적인 산출물은 지속적 인원 충원을 위한 막강한 무기가 될 수 있음
- 교안은 추후 중간참여자를 위한 길라잡이 용도로 활용할 수 있음
다행히도 초반 이런저런 걱정이 무색하게 기대했던 효과들이 빛을 발하며 교재작성 활동은 현재 그룹을 운영해가는데 큰 중심축이 되어주고 있다. 그 결과로 저번 기수에서는 15개의 풀잎스쿨 과정들 중 가장 적은 이탈율을 보였으며, 이번 중간참여자 모집에서는 높은 진입장벽에도 불구하고 정원 이상의 인원을 충원할 수 있었다.
지금은 전체 내용의 절반 정도를 진행한 상태로써 비공개 챕터를 포함하여 10개의 주제가 교안으로 작성되어 있다. 위에 서술한 글만 보면 그룹이 순탄하게 진행되고 있는 까닭이 잘난 전략 때문인 것처럼도 보이지만, 사실 9할 이상은 노력의 영역 밖에서 작용된 행운 덕이라고 생각한다. 이렇게 훌륭한 사람들이 기꺼이 긴 시간을 함께해주심에는 항상 감사하는 마음을 느끼고 또한 되새긴다.
교안: https://wikidocs.net/book/1896
2. Deep Learning College (모두의 연구소)
Deep Learning College (이하 DLC)는 모두의 연구소에서 실험적으로 진행하고 있는 딥러닝 연구과정이다. 사실 DLC는 유학을 중퇴하고 나를 한국으로 돌아오게 한 구실이기도 하다. 대학원 진학을 준비하며 차후 연구방향을 확실히 정하지 못하고 있던 시기에, 일단 coursework으로 입학한 뒤 충분한 시간을 갖고 research program으로 전향하라는 recruiter의 말에 혹하여 호주의 한 대학에 입학을 결정하였다. 허나 그러한 과정변경은 사실 공식적으로 지원되는 것이 아니었고 연구활동을 하기위한 유일한 방법은 coursework 석사 졸업 후 박사과정으로 지원하는 방법 뿐이었다. 가족을 동반하여 간 내게 발생하는 어마어마한 금전지출은 학교가 제공하는 교육에 대한 실망과 맞물려 재학에 대해 재고하게 되었고, 그때 보게 된 것이 바로 DLC의 모집글이었다. (더불어 소장님의 은은한 참가 권유도 한몫 했다.) 이미 학교에서는 마음이 떠났기에 DLC의 신청서를 작성하기 전에 미리 자퇴 신청부터 했다. 다행히도 블라인드 선발을 통과하여 2017년 11월부터 과정에 참가할 수 있게 되었다.
애초에 굳이 잘 다니던 직장을 그만두고 연구활동을 하고자 마음먹은 것에는 스스로에게 메타지식(meta-knowledge)이 부재함을 절감했기 때문이었다. 평소 취미가 다양하고 재주가 많다는 얘기를 종종 듣고는 했는데, 그 무엇도 원하는 수준에 도달한 것이 없다는 점은 스스로에 대한 커다란 컴플렉스였다. 그러던 어느날 목격한 흥미로운 현상은 이 컴플렉스를 타개하기 위한 단서를 던져주었다.
‘딥러닝’이라는 분야가 산업에서 뜨거운 주제로 떠오르기 시작했을때, 다양한 학력과 경력의 주변인들이 그 분야에 뛰어드는 것을 보았다. 그리고 6개월 정도가 흐른 뒤 그들을 다시 보았을때 각자의 학습 성취 수준이 굉장히 큰 편차를 보임을 한 눈으로도 알 수 있었다. 재밌는 점은 그들이 기존에 종사하는 분야와 딥러닝의 학문적 연관성보다도 그들이 평소에 추구하던 습득의 깊이가 성취 수준과 상당히 맞물려 있었다는 것이다. 더불어 학습 성취가 높은 사람들 중 상당수는 이미 본인의 분야에서 굉장히 높은 성취를 경험해 본 적이 있는 사람들이었다. 나는 이러한 현상이 그들의 메타지식에서 기인되었으리라 보았고, 메타지식을 습득하기 위해 어떤 영역에서든 충분히 깊이있는 단계까지 스스로를 끌고 가보기로 결심했다. 그 결심의 실행방향을 ‘연구활동’으로 설정했을 뿐이다.
DLC를 시작하기에 앞서 주변에서는 우려의 목소리가 많았다. 아무래도 모두의 연구소가 아직 연구활동에 대한 기반을 충분히 갖추고있는 상황은 아니었기에 논문을 출판하는데 필요한 도움을 충분히 받기는 힘들지 않을까라는 의견이었다. 하지만 나의 목적이 좋은 산출물이나 지식 그 자체가 아닌 메타단계의 지식이었던 이상 결과보다는 그 과정에 좀 더 무게를 두기로 했다. 적어도 이 프로그램에 관계된 모든 사람들이 공동의 목적을 위해 헌신하고 있음을 알고 있었고, 나의 목표는 메타지식을 획득하여 환경과의 종속성을 최소화 시키는 것이었기에 좀 더 자주적인 활동을 요구하는 이 과정이 내게 더 적합하리라는 판단 때문이었다.
DLC는 크게 3가지 단계의 커리큘럼으로 구성되어 있었다. 1년의 시간동안 coursework과 2번의 논문제출을 요구하는 다소 녹록치 않은 일정이었다.
- 1단계: Coursework (3개월)
- 2단계: 팀프로젝트+논문제출
- 3단계: 개인프로젝트+논문제출
이중 Coursework은 cs231n의 2017년도 강의 자료를 중심으로 진행되었는데, 2016년도 강의를 이전에 공부해본 적이 있어서 수강기간 내내 그다지 큰 어려움은 없었다. 덕분에 cs231n의 2016년 과제에 이어 2017년 과제도 전부 풀어볼 수 있었다. (Repository: https://github.com/Curt-Park/cs231n_assignments)
팀프로젝트는 현재 한참 진행중에 있다. 감사하게도 인격적, 실력적으로 굉장히 훌륭한 팀원들과 함께하게 되어 팀 프로젝트를 진행한 지난 3달간 내게 부족한 부분을 많이 채워갈 수 있었다. 지금은 Image-to-Image Translation을 주제로 모델의 초기 아키텍쳐 설계가 막 끝난 상태이며 앞으로는 수많은 실험의 과정을 거치며 가설이 실제로 동작하는지에 대해 검증해갈 예정이다. 아직 잘 다듬어지지 않은 아이디어지만 운이 좋게도 TFCON의 Poster Session Presenter로 선정되어 조만간(7월 13일) 팀원들과 특별한 경험을 하게될 것 같다.
3. 강화학습
의도적 백수를 선언한 뒤로도 일정이 상당히 빡빡한 편이긴 했지만 그나마 지금이 아니면 낯선 영역에 마음껏 뛰어들기는 힘들것 같다는 생각이 들었다. 그러던 중 기존에 공부하고 있었던 영상처리와는 다소 다른 분야에 발담가보기로 마음먹고 올해 초부터 강화학습에 대한 공부를 시작하게 되었다. 많고 많은 분야들 중에서도 강화학습을 선택한 이유는 바로 DLC의 강화학습과정 참가자들과 차후 협업을 미리 준비하자는 취지에서였다. 영상처리와 강화학습에 대한 사전지식을 고루 갖추고 있다면 좀 더 색다른 주제의 연구에 접근해볼 수 있으리라는 기대감이 컸다.
강화학습 입문은 1월에 개설되었던 모두의 연구소, 풀잎스쿨의 ‘강화학습 심화과정’을 통해 시작되었다. 교재로는 강화학습의 교과서로 불리는 Sutton & Barto 책을 사용했으며 스터디 기간으로는 총 3달이 소요되었다. 과정은 Flipped Learning이라는 사전학습 후 토론 방식으로 진행되었는데, 오히려 단방향적인 발표방식보다 훨씬 많은 학습시간을 요구하곤 했다. 그 때문에 당초 계획했던 진도 보다는 상당히 밑도는 지점에서 스터디가 종료되었지만, 온오프라인에 걸쳐 끊임없이 이루어지는 생산적인 토론을 통해 상당히 깊이있게 내용을 다뤄나갔다고 생각한다.
강화학습 공부를 하며 얻은 가장 큰 소득이라 한다면 첫 번째로 원서 독해능력 향상을 뽑고싶다. 반년 남짓한 기간동안 유학의 맛을 보긴 했지만, 그 외의 시간동안에는 대부분 영어와 상당히 동떨어진 환경에서 지내왔으며 그 때문에 원서로 공부해본 경험도 손에 꼽을 정도로 적었다. 대학 3학년을 마칠때까지 영어를 공부해본 기억이라고는 3달간 수능 벼락치기를 하며 영단어만 줄줄 외웠던 것 밖에는 없었다. 그나마 그 이후 뒤늦게 어학에 관심을 갖고 말그대로 밑바닥부터 차근차근 영어공부를 시작하긴 했지만 그 시점이 그다지 이르지는 않았던 탓에 영어 원서를 보는 것에는 항상 약간의 두려움이 따라오곤 했다. 그 때문이었을까. 이 책의 1장을 처음보는 그 시간들은 그야말로 괴로움의 연속이었다. 정말 한 문장 한 문장 이를 악물고 뜯어보는 심정으로 일주일 내내 시간을 들여 간신히 읽어냈다. 하지만 시작이 반이라고 하던가. 그 괴로웠던 시작이 무색하게도 진도의 반 이상을 지나쳤을 때는 2~3일 정도 짬짬이 시간을 내어 한 챕터를 가볍게 읽을 수 있을 정도로 속도가 붙었다. 바로 이때의 경험을 계기로 Sutton & Barto 책을 이론부터 구현까지 한글로 정리해보는 프로젝트를 시작하게 되었다. 언어의 장벽에 의해 이 책의 여러 아름다운 내용들이 많은 사람들에게 잘 전달되지 못함이 안타까웠고, 또한 이왕 이론을 정리한다면 코드도 한 눈에 같이 볼 수 있게끔 구성하면 좋겠다는 생각이 들었다. 프로젝트는 아직 초기단계에 머물고 있고 올해 내로 12장까지 정리를 마치는 것이 목표다. 조만간 취업을 하게 된다면 아무래도 프로젝트의 진행에 어려움이 생길 수 있겠다는 판단에 contributor를 모집하여 동반작업으로 진행하는 것도 고려중이다. (Repository: https://github.com/Curt-Park/reinforcement_learning_an_introduction)
강화학습 공부의 두 번째 소득은 강의경험이다. 전 직장을 퇴사하고 약 1년 반만에 처음으로 한 수익활동이기도 하다. 모두의 연구소를 거쳐 이 강의제의가 들어왔을때는 가벼운 마음으로 흔쾌히 수락하였는데 강의 장소가 무려 한국고등과학원(KIAS)이라는 것을 뒤늦게 듣고 나서는 강의 당일까지 2달 이상 상당한 스트레스를 받았다. 처음에는 하루 또는 이틀 내내 진행되는 강의로 생각하고 고전 강화학습부터 DQN을 거쳐 알파고 시리즈까지 다뤄보는 상당히 도전적인 컨텐츠 구성을 기획했지만, 이틀동안 총 3시간 30분 정도의 시간만이 할당되어 있다는 소식을 듣고 당초 계획보다 분량을 상당히 줄일 수 밖에 없었다. 결론적으로는 Deep RL을 이해하기 위해 꼭 필요한 고전강화학습 주제들부터 DQN까지를 주제로 한 196페이지의 강의자료를 완성했다 (+ 실습 몇 개). 할당된 시간에 비해 분량이 너무 많았기에 첫 날의 반응은 다소 싸늘했지만, 참가자 분들의 뛰어난 학습능력 덕분에 이틀째 강의는 굉장히 좋은 호응으로 마무리 할 수 있었다. (slide: https://www.slideshare.net/CurtPark1/dqn-reinforcement-learning-from-basics-to-dqn)
4. 딥러닝을 공부하는 청년백수 모임
“산에 한 가지 나무만 나지 아니하고, 들에 한 가지 꽃만 피지 아니한다. 여러 가지 나무가 어울려서 위대한 삼림의 아름다움을 이루고 백가지 꽃이 섞여 피어서 봄들의 풍성한 경치를 이루는 것이다. 우리가 세우는 나라에는 유교도 성하고, 불교도, 예수교도 자유로 발달하고, 또 철학을 보더라도 인류의 위대한 사상이 다 들어와서 꽃이 피고 열매를 맺게 할 것이니, 이러하고야만 비로소 자유의 나라라 할 것이요. 이러한 자유의 나라에서만 인류의 가장 크고 가장 높은 문화가 발생할 것이다.”
- 백범 김구, ‘나의 소원’ 중
백범 김구 선생님의 ‘나의 소원’에 수록되어 있는 내용중 내가 가장 좋아하는 글귀다. 나 또한 위 글에 언급되어 있는 것처럼 생각과 행동과 믿음이 좀 더 자유로워질 수 있어야만 우리가 사는 세상에 좀 더 아름답고 가치높은 문화가 발생할 수 있으리라 믿는다. 하지만 안타깝게도 우리나라의 보편적 정서에서는 획일화된 기준을 벗어나면 종종 그것을 틀린 것으로 간주하는 경향이 있다. 가령 누구나 주변에서 ‘다름’으로 표현해야 할 문맥에 ‘틀림’이란 말을 사용하는 사례들을 접해본 적이 더러 있을 것이다. 보편적 언어는 곧 그 문화의 보편적 정서를 반영하므로 이러한 사례는 우리들 정서에 알게 모르게 스며들어있는 다름에 대한 불편함을 보여주는 방증이라고 생각한다. 나 같이 처자식이 있는 ‘백수’는 명백히 그 불편한 시선의 한 가운데에 서있었다.
기술 수요나 유행의 변화주기가 점차 빨라지고 있고, 평생직장과 평생직업의 시대에서 평생교육의 시대로 변화하고 있는 지금, 누구나 일생에 한번쯤은 gap year를 가질 가능성이 높아졌다. 한 개인이 gap year를 가진다는 것은 자신의 삶에 대한 새로운 가능성을 고민해보는 시간을 갖는 것과도 동등하다. 그 과정 속에는 이 사회를 풍성히 가꿀 수 있는 수많은 가치가 응당 내재되어 있을 것이다. 허나, 부정적 선입견 속에 그런 사람들이 한낱 ‘백수’로 전락되어 버린다면 그 누가 마음이 시키는 것을 감히 행동으로 옮길 수 있게 될까? 그것이 두렵기에 보통은 현실에서 그저 버티는 것을 선택하는 것이리라.
이 시대의 ‘근면한 백수들’에 대한 인식을 변화시키고 gap year가 이 나라의 보편적 정서로 자리잡기 위해서는 우선 ‘근면한 백수들’이 생산적인 활동을 할 수 있음을 증명할 필요가 있었다. 그리고 생산적 활동을 위해서는 무엇보다 이를 뒷바침할 체계적인 시스템이 필요하리라는 결론에 다다랐다. 이에 백수들이 가장 어려움을 겪게하는 문제에 대해 고민을 시작했다. 나 스스로의 경험을 비추어 봤을때 무엇보다도 가장 큰 장애물은 바로 비효율적인 일정운영과 정서적 고독감이었다.
일정운영의 효율을 높이고 정서적 고독감을 줄이기 위한 해결책으로 생각해본 것이 바로 Agile 방법론을 이용해보는 것이었다. Agile은 소프트웨어를 좀 더 잘 개발하기 위한 이념으로써, 이를 구현하는 방법론으로는 대표적으로 Scrum, Extreme Programming, Kanban 등이 있다. 각 방법론의 세부사항은 상당한 차이를 보이나 주기적이고 점진적인 개발 프로세스를 지향하는 것이 보통이다. 무엇보다도 Agile 방법론에서는 지속적이고 주기적인 커뮤니케이션 방법들을 제안하며 Known-to-Unknown Approach를 통한 점진적인 자가개선의 도구들을 제공한다는 점에 주목했다. 비슷한 처지의 사람들이 모여 이미 검증된 이런 방법론을 기반으로 하나의 팀으로써 함께 매일매일을 관리해 간다면 일정운영의 효율이 올라가고 정서적 고독감이 줄어드는 효과가 발생하지 않을까? 그 질문을 시작으로 ‘딥러닝을 공부하는 청년백수 모임’이 만들어졌다.
수많은 Agile 방법론들 중에서도 실제 업무에서 활용해본 경험이 있는 Scrum을 사용하기로 결정했다. 그리고 Scrum의 workflow 중에서도 다음의 도구들을 직접적으로 일정운영에 이용하게 되었다.
- Product Backlog: 중장기 비전에 대한 계획관리에 활용 (Trello이용)
- Sprint: 일정관리의 한 주기로 한달을 1 sprint로 운영 (Trello이용)
- Scrum Team: 적정인원(3~9인)의 팀을 구성하여 각자 팀원들의 일정진행에 적극적인 관심을 가질 것을 장려
- Asynchronous Daily Scrum Meeting: 매일 본인의 일과를 시작하기 전에 Slack을 통해 다음의 세 가지 항목을 공지: 완료, 오늘 할 일, 일시정지
- Sprint Retrospective: 각 sprint에 대한 회고. Sprint를 거듭하며 점진적인 개선을 지향한다. 매달 초 이전 sprint에 대한 Good, Bad, To-be-improved를 Slack에 공지
매일 본인의 일정을 공지하고 서로 응원의 글귀를 나누는 이 활동은 생각보다도 더 큰 위력을 발휘했다. 일정의 공지는 스스로의 일정에 더욱 책임감을 갖도록 촉진하는 역할을 하였으며, 일 단위의 task 관리는 본인의 계획대비 실제 실행능력에 대한 감각을 키워주었다. 무엇보다도 다른 사람들의 일정운영을 서로 지켜보는 과정에서 자연스럽게 호기심과 공감대가 형성되었고, 이는 자연스럽게 다양한 주제의 파생활동들을 만들어냈다.
매일 코딩하기, 함께 프로젝트하기, 매주 지식공유하기 등 부차적으로 발생한 다양한 활동들이 있지만 그 중에서 가장 기억에 남는 것은 단발성 행사로 기획되었던 ‘백수들의 Conference’다. 사건의 시작은 한 멤버가 오프라인모임 및 내부 세미나를 제안하면서부터 였다. 세미나 발표자를 모집하는 과정에서 나를 포함하여 8명의 지원자가 있었고, 발표 인원에 맞춰 자연스럽게 종일 세미나로 방향이 잡혔다. 그리고 내부 행사로 그치기에는 그 내용이 아깝다는 의견에 결국 100명 규모의 유료행사로 기획이 구체화되었다. 단 10여일의 시간동안 포스터 제작과 홍보부터 발표자료 준비까지 숨가쁘게 돌아간 일정이었지만 함께 행사에 참여하는 인원들의 적극적인 도움으로 그다지 큰 피로감 없이 무사히 행사를 마무리할 수 있었다. 당시 내가 발표한 주제는 ‘개인 일정관리를 위한 Agile 응용사례 소개‘로, 이 모임을 운영한 6개월 동안의 경험을 동일 관심사를 가진 청중들이 유용히 활용할 수 있도록 100여 페이지의 발표자료로 가공하여 담아냈다. 그 외에도 글쓰기 방법론, 딥러닝, 블로그 개발, 블록체인 등 다양한 주제들이 다수의 발표자들을 통해 다루어졌다. ‘백수들의 Conference’는 앞으로 대내외적으로 ‘딥러닝을 공부하는 청년백수 모임’을 대표하는 행사로 자리잡을 수 있도록 기회가 닿을 때마다 주최해볼 계획이다. (발표자료: https://www.facebook.com/groups/DeepLearningForAllBakSu/permalink/2063222914001159/)
이상 4개의 주제에 대해 지난 6개월 간의 회고를 간단히 정리해보았다. 단연코 이 기간을 지나며 스스로의 내면을 단련하고 앞으로 나아갈 방향을 구체화하는데 큰 힘을 실을 수 있었다고 말하고 싶다. 이제 잔고는 슬슬 바닥을 드러내고 ‘근면한 백수’로 지낼수 있는 시간도 점차 끝을 향해가고 있다. 얼마 남지 않은 그 시간이 나의 남은 삶 속에 후회로 남지 않도록 모든 에너지를 아낌없이 쏟아내려한다.
그 과정을 헤쳐나갈 스스로에게 아낌없는 응원을 보내며 이상 회고를 마친다.