')">

머신러닝 입문자를 위하여 I

배움의 체계

Posted by Jong-June Jeon on May 13, 2019

변화와 대응

머신러닝에 관심이 있는 사람이라면 한 번 정도는 구글, 아마존, 4차 산업혁명과 같은 단어들을 들을 때 스스로 위기감을 느겼을 때가 있었으리라 생각된다. 인공지능이 노동시장을 크게 변화시킬 것이라는 뉴스가 나올 때, 데이터 분석 업무를 하기에는 학부 정도의 지식으로 부족하다는 말을 들을 때, 친구가 머신러닝 경진 대회에서 실패한 경험을 나눌 때 조차, 나만 시대에 뒤처진다는 불안감을 느꼈을 수 있다.

나도 비슷한 경험이 있었다. 2012년 여름, 박사 학위를 받을 당시 나는 나름의 자부심과 의욕으로 충만한 기계학습(Machine Learning) 전공자였다. 기계학습 이론을 연구하고 그것을 응용을 할 수 있겠다는 자신감이 넘쳤을 때였고, 통계학에 대한 많은 사람들의 관심이 급격히 높아지기 시작했던 때였다. 하지만 나의 그 자신감은 그리 오래가지 않았다. 불과 몇 년사이에 신경망 모형이 전세계적인 학문적 유행을 타면서 너무 빨리 연구의 흐름이 변해 버린 것이었다. 유행에 뒤처지지 않겠다는 조바심이 났다. 내 연구의 작은 성과를 내기도 전에 다른 연구분야를 따라 가야한다는 조바심이었다. 학계의 선배들은 그 조바심을 경계하라고 충고했었다.

그런 와중에 페이스북(Facebook)에 개설된 딥러닝 커뮤니티에서 가입을 해 여러 뉴스들을 둘러보았다. 거기에는 너무 많은 연구 성과들이 쏟아지고 그것들에 대한 의견들이 오가고 있었다. 거기에 올려진 수많은 글과 링크을 보고 있으면 '이것도 알아야 하고, 파이썬도 배워야 하고, 내 논문도 써야하는데, 수업은...' 이런 생각들이 떠올랐고 그것들은 나를 짓눌렀다. 조바심이었다. 더 커져가는 조바심이었다.

한 발짝 멀리서 보면 우리는 이러한 조바심이 도움 되지 않음을 너무 쉽게 알 수 있다. 이 문제를 해결하는 것은 '남이 무엇을 하는 가를 보고 있는 것'이 아니라, '내가 하고자 하는 바를 하는 것'이라 생각한다. 모두가 알고 있는 이 단순한 사실을 말하기 위해서 앞서 늘어놓은 내 경험은 아마 누군가의 고민과 맞닿아 있을지도 모른다는 동병상련으로 부터 나온것 같다. 나는 내가 하고자 하는 바를 그 이후에 조금씩 시작했고, 지금도 관련 연구들을 따라가고 있다. 그만큼 조바심도 줄어 들었다.

아래의 글은 이제 다른 사람들이 무엇을 하는지 찾기를 멈추고 데이터 사이언스, 기계학습의 배움의 길로 들어오라는 소심한 충고이자 이미 그렇게 마음먹은 혹은 그런 마음을 먹고자 하는 사람들을 위한 것이다.

지식의 체계

나는 소위 문과 출신이다. 내가 처음 통계학을 시작했었을 때 자연대수를 잘 몰랐고, 벡터공간을 접해 본 적이 없고, 삼각함수의 미적분에 대한 지식이 없었던 경영대학 학부생이었다. 배우겠다는 욕심으로 시작했던 수리통계학 I,II 수업, 과제, 시험은 그야말로 지옥 같았다. 수업의 결과는 예상대로 좋지 않았고 나는 처음부터 다시 시작해야만 했다.

모든 학문이 그렇듯 지식에는 체계가 있다. 대학에서 개설되는 기계학습 관련 수강과목에 선수과목이 명시되어 있지 않았다 하더라도 담당교수는 수강생의 일정 수준의 사전 지식을 가정하고 수업을 진행한다. 만약 모든 수업을 자기완결성(self-contained)을 가지도록 구성하게되면, 주어진 시간적 제약 하에서 필요한 부분의 지식을 전달하는 것이 거의 불가능할 것이다.

Information, Hierarchy 그리고 휴식

지식전달을 위한 과목의 체계화는 가르치는 사람뿐만 아니라 배우는 사람의 입장에서도 학습의 효율성에 큰 영향을 준다. 흔히 수업시간에 내가 자주하는 질문은 '이거 배웠습니까?' 이다. 별 반응이 없거나 상기 내용을 이전에 직접 가르쳐준 적이 있는 경우 대부분 수업을 그대로 진행하디. 사실 대부분의 학생이 내가 생각하는 사전 지식을 갖추고 있다면 문제가 되지 않겠지만, 그 지식이 없는 수강생의 경우 해당 부분에 대한 내용을 이해하는데 큰 문제가 생길 것이다. 여기서 지식 습득의 간헐적인 단절이 일어나게 되는데 이는 가랑비에 옷이 젖어가듯 서서히 지속적으로 일어난다. 처음에는 일단 넘어가자고 생각한 것이 그 단절이 누적된 이후 한발짝도 못 나가는 경험을 해봤으리라. 시간이 지날수록 이 단절은 학습에 치명적이다. 뿐만 아니라 수강생은 수업을 통해 얻게되는 만족감이 크게 줄어들 것이고 심할 경우 자괴감까지 느낄 수 있다고 본다. 그렇다면 사전지식이란 것이 무언인가?

기계학습 분야에서 요구하는 능력은 크게 '프로그래밍', '확률과 통계', '최적화' 세 분야로 나뉜다. 기계학습을 배우기 위해 필요한 과목들은 이 세 가지 분야를 중심으로 구성되어 있고 단계가 높아질 수록, 이 세 가지 분야의 지식이 동시에 요구된다. (우리 연구실) 박사과정의 경우 인공지능 및 기계학습 분야의 논문을 작성하고자 한다면 이 세 분야에 정통해야한다. 비단, 학부의 고학년 과목도 마찬가지다.

"서울시립대 통계학과의 개설과목인 기계학습, 딥러닝, 빅데이터통계읽기와 같은 과목들은 이 세 가지 분야의 지식을 동시에 요구한다."

욕심이 앞서 선수과목에 대한 지식이 없이 이 과목들을 수강하게 될 경우 수업 중에 지식 습득의 단절이 빈번하게 나타나 학습의 효율이 떨어질 것이다. 내 생각은 조바심을 이겨내는 것이 필요하다. 더 묵묵하게 공부해야한다. 2년 안에 모든 것을 완성할 욕심을 조금 줄이면, 길이 보일지도 모른다.

좋은 해결책은 선수과목을 체계적으로 수강하는 것이다. 대부분 관련학과에서는 과목의 체계를 염두에 두고 교과목 포트폴리오를 만들어 두었고 수강생은 이에 최대한 맞추어 수강을 하는 것이 필요한다. 물론 이러한 일이 학생들이 수강정원의 제한, 시간표의 제약, 늦은 복수전공 진입등 어려가지 이유로 수강생이 선수과목을 정확하게 맞추어 들을 수 없는 경우도 있다. 그럼에도 불구하고, 배움의 효율을 생각한다면 기계학습을 배우기 위한 지식을 체계적으로 습득하는 것이 유리함은 분명해 보인다. 이와 동시에 교수는 수강생의 지식 습득의 단절을 막기 위해서 수업시간의 제약 내에서 필요한 노력을 충분히 해야 하고, 학교는 수강과목의 시간표를 과목 체계에 맞게 구성해야 할 것이다.

프로그래밍, 확률-통계, 최적화