카카오로 간 이론물리학자

안녕하세요, 카카오 공동체데이터실 rowan(김용완)입니다.
저는 학계에서 블랙홀/초기우주 모델링을 통해 양자이론과 일반상대성이론을 결합하는 이론을 만드는 일을 했습니다.

조금 더 자세하게 설명드리면 블랙홀이나 초기 우주의 Lagrangian(라그랑지안)을 구성하여 Tensor 연산으로 variation(변분)해 보존량을 구하기도 하고, 관찰하고자 하는 계에 대해 양자효과를 고려해 통계적/열역학적 방법으로 Entropy(엔트로피)를 계산하여 Information을 정의해서 정보 손실 문제를 푸는 연구들을 하였습니다. 그리고 지금은 카카오에서 데이터 과학자로서 데이터 세상을 탐구하고 있습니다.

본 글은 자연과학(특히 물리학)을 탐구하고 있는 학부생, 대학원생, 석/박사 및 교수님들을 대상으로 강연한 내용을 바탕으로 작성되었습니다. 비전공자는 다소 공감하지 못할 내용이 포함되어 있을 수 있습니다만, 자연과학을 공부하거나 공부했고, 실생활의 영역에 본인의 전공을 적용하고 싶은 분들에게 많은 도움이 될 것이라고 생각합니다.


강연을 하게 된 배경
 

 

제 모교의 물리학과 콜로퀴엄은 교수님/박사님들이 연사로 참석하여 본인의 분야와 연구주제에 대해 자유롭게 발표를 하는 자리입니다. 제가 학생이었을 당시 저도 언젠가는 콜로퀴엄 연사로 발표를 할 수 있으면 좋겠다고 생각했었는데, 생각보다 빠르게 초청을 받으면서 그 꿈이 이루어졌습니다.

발표는 온/오프라인 병행으로 진행될 예정이었지만, 당시 오미크론이 정점을 찍던 시점이어서 전면 온라인으로 전환되어 진행하였습니다. 청중은 물리학과 교수님들, 박사님들, 석박사 과정생들, 학부생들까지 총 50명가량이 참석하였고, 주요 주제는 “카카오로 간 이론물리학자”였습니다.

타 전공 분들을 위해 약간의 배경 설명을 덧붙이자면, 물리학과 대학원에는 ‘이론 물리 연구실’과 ‘실험 물리 연구실’ 이렇게 크게 두 부류의 연구실이 있습니다. 이론 물리 연구실은 제가 학계에서 했었던 일들 처럼 수학적 포뮬레이션을 통해 자연을 설명하는 모델 및 이론을 만드는 곳입니다. 그리고 실험 물리 연구실은 실험을 통해 이론을 검증하고 새로운 현상을 발견해 내서 이론에 질문을 던지는 역할을 합니다.

현대의 산업계는 고도화된 과학 기술로 제품(like 반도체)을 생산하는 하이테크 제조업들이 주축을 이루고 있습니다. 과거 기술 노하우 위주의 전통 제조업과는 달리 현대식 제조업에서는 적용하는 과학 기술의 난이도가 높아짐에 따라, 관련해서 공부를 많이 한 인재를 요구하고 있고, 이에 이학/공학 석/박사들을 대규모 채용을 하고 있습니다. 이러한 흐름에 따라 자연과학 분야에서 실험 장비를 잘 다루는 실험 물리학 박사들은 하이테크 제조 산업으로 진로를 잡아 산업계의 기술 발전에 기여하고 있습니다. 

하지만 아쉽게도 (실험 장비를 다뤄보지 못한) 이론 물리박사들은 산업계에 기여할 길이 크게 없었고, 학계에서 순수 과학에 대한 연구를 지속하는 것만이 그들이 과학기술 발전에 기여할 수 있는 거의 유일한 길이었습니다. 

이러한 배경하에서 제가 이론 물리박사 타이틀로 카카오라는 IT 기업에 입사한 케이스는 굉장히 특이 케이스였고, 많은 분들이 제가 IT 기업에서 어떤 일을 하고 어떻게 산업계의 기술 발전에 기여하고 있는지 궁금해하였습니다. 그래서 저는 “카카오로 간 이론물리학자”라는 주제를 잡고 자연과학을 탐구하는 이들에게 데이터 세상을 소개해 주는 강연을 하였습니다. 


강연 주요 내용

 

제가 박사를 졸업할 당시 인공지능 붐으로 IT 분야에 머신러닝을 활용한 고도화된 로직들이 적용되어나가고 있었습니다. 이 흐름을 보면서 당시 저는 하이테크 제조업에서 자연과학 석/박사에 대한 니즈가 커지고 그들이 기술 발전에 기여했던 사례를 떠올렸습니다. IT 분야에서도 각자의 비즈니스에 알맞은 계(system)을 정의하고 그 계에서 목적에 맞는 모델링을 하는 일을 (자연을 바라보던) 이론 물리의 관점에서 한다면 IT 산업계의 발전에 기여할 수 있겠다는 것이 직감적으로 느껴졌습니다.

물리(자연과학)에서 자연을 기술하는 언어는 수학이기 때문에, 그 수학이라는 언어에 맞춰서 세상을 텐서(tensor)라는 수의 배열로 바라봅니다.

텐서는 행렬과 같은 숫자의 배열을 높은 차원까지 일반화한 다차원 배열을 의미합니다. 물리학에서는 텐서의 의미를 가지려면 general coordinate transformation(일반화 좌표 변환)에 covariant(공변)해야 한다는 조건이 필요하지만, 보통 flat한 시공간에서는 중요한 조건이 아닙니다.

텐서에는 rank(랭크 또는 차수)가 존재하는데 rank가 커질수록 tensor notation(텐서 표기법)에서는 인덱스의 개수가 늘어나게 됩니다. 여기서 인덱스란 위에서 μ처럼 그리스 문자로 표기된 것을 의미합니다. rank1은 vector, rank2는 matrix를 의미하는 것을 통해 rank의 의미를 쉽게 이해하실 수 있으실 겁니다. 

다만, 차원의 개념과 rank의 개념을 많이들 헷갈려 하는데 rank가 늘어난다고 차원이 커지는 것은 아닙니다. N차원 시공간에 있는 rank i tensor는 Ni개의 성분을 가지고 있습니다. 예를 들어, [0.1,0.2,0]인 벡터는 rank1 tensor이고 3개의 성분을 가진 3차원 벡터입니다. 

이러한 텐서의 개념은 데이터 과학에서 데이터를 표현하는 부분에 그대로 차용이 됩니다. 위의 표에 적어놓은 것처럼 dense vector는 rank1 tensor, gray scale image는 rank2 tensor, RGB image는 rank3 tensor로 표현이 됩니다. 이렇게 데이터를 텐서 형태로 표현하는 이유는 어떤 계를 기술하는 모델(머신)의 인풋은 항상 정형화된 숫자의 배열로 들어가야 하기 때문입니다. 물리에서 세상을 텐서로 바라보는 이유와 동일하죠.

※ 앞으로 나오는 모든 텐서 연산은 Einstein notation(아인슈타인 표기법)에 맞춰서 적었습니다.

고급 물리학으로 가게 되면 전자기학/역학/양자물리/상대성이론을 막론하고 모두 field theory(장 방정식)로 기술을 합니다. 가장 대표적으로 일반 상대성이론에서 중력은 field로 다뤄져서 중력장 형태로 기술이 됩니다. 물리에서는 문제를 풀 때 가장 먼저 계에 대한 정의를 하고, 해당 물리계의 라그랑지안 L을 적습니다. 그리고 라그랑지안을 variation하면서 설정한 계의 constraint(제약) 조건들을 적용하여 운동 방정식의 솔루션 및 보존량 등을 구하게 됩니다. 

이러한 과정을 심플하게 아래 그림처럼 표현할 수 있습니다. 마치 텐서를 인풋으로 받아 일정한 법칙으로 아웃풋을 내는 머신과도 같습니다. 

 

 

이제 데이터 과학으로 돌아오면, 데이터 과학에서는 문제를 풀고 싶은 데이터 셋과 그 목적을 설정(:=물리계 설정)하고 텐서화된 데이터를 인풋(:=constraint 역할)으로 넣어서 목적에 맞는 머신(=연산자 := 물리법칙)을 얻어냅니다.

이 머신(연산자)에 새로운 텐서를 넣으면 그에 따른 아웃풋 Y가 나오게 됩니다. 아래 그림에서는, 개 이미지가 인풋 텐서 Aμν, 학습된 머신이 연산자 Q, 그리고 인풋에 따른 아웃풋이 해당 이미지가 개인지 아닌지 판별하는 값인 Y입니다.

 

 

이 예시에서 우리가 강아지 이미지 여부를 분별하는 계와 데이터의 constraint에 대해서 아주 정확하게 알고 있다면 연산자 Q를 아름다운 수식으로 표현해낼 수 있을 것입니다. 하지만 리얼월드에서는 그러한 것이 (아직은) 불가능에 가깝기 때문에 우리는 연산자 Q를 근사해서 구하게 됩니다. 근사를 위해서는 해당 연산자 Q의 수식적 형태를 가정하고 higher order을 날려버리는 등의 수학적 근사 기법을 자연과학에서는 많이 사용하지만, 이러한 영역은 치밀한 가정과 고차원적 수학 지식이 필요한 영역입니다. (자연과학에서는 수치해석학이라고 학문에서 이와 같은 기법을 많이 연구합니다. 머신러닝 분야에서는 regression이라고 불리는 모델이 이러한 맥락이기도 합니다.)

 

 

인풋 데이터가 이미지인 상황처럼 계에 대한 수학적 정의가 명확하지 않을 때에는 수식으로 모델링을 하는 것이 비효율적일 수 있습니다. 이런 경우에는 Neural Network를 깊게(Deep) 쌓아서 연산자 Q를 근사할 수 있는 머신을 만들고 loss function에 따라서 학습 데이터에 fit한 weight를 얻어냄으로써 수리적 근사 없이 Q에 대한 근사 모델을 얻어낼 수 있습니다

이는 node 개수, layer 개수 등 몇 개의 파라미터 값만으로 어떻게 생겼는지 모르는 함수를 근사적으로 표현할 수 있다는 측면에서 앞선 수학적 근사 기법보다 획기적으로 쉬운 방법론이고 그렇기 때문에 많은 이들에게서 폭발적인 관심과 호응을 얻을 수 있었습니다. (다만, 쉬운 만큼 컴퓨팅 리소스가 많이 필요하고, 설명력이 부족한 모델이라는 단점이 있습니다.)

(한 줄로 정의해 본 “자연과학”과 “데이터 과학”)

현대 사회는 데이터의 흐름으로 가득 차 있습니다. 저는 이러한 세상을 탐구할수록 “텐서”(=데이터)로 부터 일정한 법칙을 찾아내는 데이터 과학이 또 다른 버전의 자연과학이 아닐까라는 생각을 합니다.

추가적으로, 학교에 있는 후배들에게 세상의 변화에 대해 꼭 전하고 싶었던 메시지가 있었습니다. 이 부분은 발표 피피티를 그대로 가져와봤습니다.


강연 후기
 

 

교수님/박사님/학생들이 모두 청중인 강연이다 보니 발표 흐름을 잡기가 매우 어려웠고 그 안에 담을 내용의 깊이와 전달하려는 메시지를 결정하는 것도 상당히 난해했었습니다. 실제 발표에서는 물리 이론과 딥러닝 이론에 대해서 조금 더 자세하게 설명하면서 교수님/박사님들의 흥미를 돋우었고, 학생들을 위해서는 이 글에 담긴 것처럼 조금 더 큰 그림의 설명과 카카오 입사 프로세스에 대한 내용을 얘기해 주었습니다. 물리학과에서 IT기업을 오는 케이스가 매우 드물기 때문에 제가 입사할 당시 코딩 테스트 준비는 어떻게 해야 하는지, 면접 준비는 어떻게 해야 하는지 하다못해 면접에 무엇을 입고 가야 하는지 물어볼 곳이 없어서 답답했었던 상황을 떠올리며 가능한 범위 내에서 최대한 많은 정보를 주려고 노력했습니다. (실제로 저는 1차 면접에 박사 졸업 축하 선물로 받은 고급 정장을 풀세트로 입고 갔었습니다..ㅎㅎ)


기억에 남는 질문

발표가 끝나고 다음날 저에게 메일이 왔습니다. 메일을 보낸 사람은 학부 졸업을 앞둔 학생이었습니다. 이 학생은 졸업하고 인공지능 대학원에 진학을 할지, 인공지능 복수 전공을 하고 졸업을 할지에 대한 고민을 하고 있었습니다.

요즘 학위 인플레이션이 발생하면서 주변 분들이 저에게 학부 졸업 후 대학원을 진학해야 하는지(회사를 다니며/그만두고 대학원을 가야 하는지)에 대해서 의견을 많이 구합니다. 이 글을 통해 혹시 비슷한 고민을 하시는 분들께 도움이 되고자 하나의 레퍼런스로 학생에게 보낸 메일 답장을 최대한 원문 그대로 첨부해 보았습니다. (개인적인 의견이 많이 담겨있는 점 양해하고 읽어주시면 감사하겠습니다.)

ㅇㅇㅇ 학생에게,

발표 재밌게 들어줘서 고마워요.
재미없을까 걱정했는데, 제 발표가 적어도 한 명에게는 유의미하게 다가갔다는 의미이니 기쁘네요.
질문 주신 사항에 대해서 제가 생각한 바와 느끼고 있는 흐름에 대해서 말씀드릴게요. 

1. 석사 진학에 대해서

– 요즘 학위 인플레이션으로 석사 이상의 학위를 가진 사람들이 증가하고 있습니다.

 이 말인즉슨, 석사의 의미가 많이 약해졌다고도 할 수 있고, 반대로 적어도 석사는 가지고 있어야 한다고도 생각할 수 있습니다. 실제로 석사 졸업은 2년 연차(적은 곳은 1년 연차)정도만 더 카운트해 주는 분위기입니다.

 그래도 다른 연구자의 논문을 읽고 본인 아이디어로 연구를 진행해 보고 논문을 써보는 연구의 한 사이클을 경험한다는 측면에서는 (석사 때 공부를 열심히 한 학생들 기준) 학사와 석사의 역량 차이와 분야를 바라보는 시야가 다릅니다. (물석사(논문도 없고, 연구결과도 없는)는 오히려 학사보다 실력이 못하더라고요..) 

 그래서 열심히 공부하면서 연구 경험을 해보고 싶다면 대학원 진학을 추천드립니다.

덧) 워낙 변화가 빠른 업종이다 보니 혹여 학교에서 배운 것이 졸업하고 보니 레거시가 될 수도 있습니다. 그래서 학교에서 공부를 더 할 것이라면 코딩 테크닉이나 라이브러리 활용 같은 기교 위주의 공부보다 CS 또는 수학의 기초를 잘 쌓는 방식으로 공부를 한다면 유행이 변해도 휘둘리지 않는 실력을 얻을 것입니다.

2.박사 진학을 고려한다면…

– 다만, 박사 진학은 신중하게 고민하세요. 박사를 갈 거면 전통 학문분야로 가야 합니다.

 세상은 정말 빠르게 변하고 있고, 시류를 타고 만들어진 학과(대학원)는 당장 내년에 없어진다 해도 이상하지 않습니다. 10년 뒤에 그게 뭐 하는 분야인지에 대한 질문을 받을 수도 있습니다.

학부 졸업 후 박사를 취득하는데 적어도 6년 많게는 8년 10년도 걸립니다. 이 정도의 기간은 이 분야의 패러다임의 변화가 오거나 유행이 사그라들기에 충분한 시간일 수 있습니다. 그렇게 된다면 기껏 박사 졸업하고 갈 곳이 없어지는 난감한 상황이 올 수 있습니다.

3.학사 졸업 후 취업에 대해서…

– 연구나 공부에 뜻이 없다면 인공지능 복수 전공으로 학사 졸업하는 것도 좋은 선택입니다. (지금 4학년인데 복수전공한다면 1,2년 더 학교 다니는 건가요? 이 부분에 대해서는 정보가 없어서 아니라는 가정으로 말씀드립니다.)

 (예를 들어 취업이 안되어서, 학위나 취득해 보려고) 억지로 대학원을 진학해서 공부도 연구도 아무것도 제대로 안 하다가 물석사로 졸업하는 경우가 생각보다 굉장히 많습니다. 이런 경우 운이 나쁘면 취업이 안되어서 (어쩔 수 없이) 박사를 진학하는 나 자신을 발견하는 경우도 발생합니다. (불행의 시작이죠..)

 적어도 제가 몸담고 있는 IT 업계는 학부 졸업 후 입사해서 열심히 일하고 성과를 쌓아서 실력을 인정받은 사람이 어영부영 석박사 졸업해서 입사한 사람보다 높은 연봉을 받고 실력을 인정받는 곳입니다. 즉, 연차나 타이틀보다 실력이 중요한 업계 특성상 학석박은 중요하지 않습니다. 고로 학부에서 기초를 쌓은 다음, 회사에서 직접 현업에 종사하면서 실력과 경력을 쌓아올리는 것도 좋은 루트라고 생각합니다.

도움 많이 되셨길 바랍니다.

김용완 드림.

‘인플레이션이 발생할 때는 화폐 가치가 하락하니 화폐를 더 빠르게 모으거나 그럴 수 없으면 실물 자산을 매입해라’와 같은 말처럼 보이네요. 어떤 분야나 큰 맥락의 원리는 동일한가 봅니다.


마치며 

 

학계에 있었던 이론물리학자 로완은 새로운 세상으로의 탐구를 위해 카카오로 왔습니다. 그리고 “나만의 물리 이론을 만들자”라는 학계에서의 목표는 “나만의 새로운 무언가를 만들자”라는 목표로 확장되어 카카오에서 제가 몸담고 있는 분야의 발전에 기여하고 있습니다. 

이론 물리 분야에서 Chern-Simons theory를 만든 제임스 사이먼스는 물리학에서 자신의 이름을 남기고서 ‘르네상스 테크놀로지’라는 헤지 펀드 회사를 설립하여 수리 모델링을 통해 알고리즘 트레이딩에서 또 한 번 크게 이름을 날렸습니다. 

(본 강연 내용에서 맛보기로 보신 것처럼) 서로 달라 보이지만 많은 분야들의 원리는 일맥상통합니다. 하지만 그 안에서 무언가를 바라보는 관점이 다른 것도 많기 때문에 새로운 분야로의 탐험은 늘 새로운 것을 만들 수 있는 씨앗이 되고는 합니다. 

물론, 새로운 분야로의 탐험이 무조건 좋다는 것은 아닙니다. Exploration-Exploitation Dilemma가 여기에서도 존재하는 것이죠.

본 글은 이러한 딜레마 속에서 살아가고 있는 한 명의 과학자가 걸어가고 있는 길에 대한 소개였습니다. 많은 학부생/대학원생/석사/박사 분들께 (정답이 아닌) 영감이 되었길 바랍니다.

 

Latest Posts