강화학습 만능주의 탈출

1392

어느 공학 박사 분과 모 국책 연구소에서 만나서 했던 대화의 일부이다.

공학 박사: 데이터로 모든걸 다이나믹하게 “러닝”을 하는 시대가 왔기 때문에….. (중략) 거기다 시뮬레이션으로 모든 데이터를 생성하는 시대가 왔기 때문에 오늘 발표에 나온 IoT 데이터 같은 것도 어쩌면 필요없을지도모릅니다…..(중략) 알파고 제로를 보면 외부 데이터가 아예 필요없고… (중략) 스타크래프트 인공지능이 게임하는걸 보면…. (중략)

필자의 답변을 포인트 별로 요약 정리해본다.

 

1. 데이터로 모든걸 다이나믹(Dynamic)하게 “러닝”을 하는 시대가 왔기 때문에…

Quantitative 전공으로 학부 고학년이 되면 Static 모델의 업그레이드 버젼인 Dynamic 모델을 약간 배우다가 학위 과정이 끝난다. 대학원에 가면 Dynamic 모델을 열심히 배우고, 박사 학위 중에는 Static으로 뭔가 작업을 했으면 Dynamic으로도 검증이 되어야 좋은 논문이라는 평가를 받는다는 지도교수의 “조언”을 열심히 듣게 된다

학부 1-2학년에 배울 미분방정식 수준의 교재들의 후반부를 한번 보시라. 어느 교재건 Dynamic modeling이라는 섹션이 거의 맨 마지막 쯤에 있을 것이다. (그래서 보통 안 배우고 고학년에 올라간다.)

“러닝”이 아니라 통계학적으로 “Fitting”하는 작업을 학부 저학년 수준에서는 Static 케이스로, 고학년/대학원 수준에서는 Dynamic으로 하는 방법을 배울 뿐이다.

이미 오래전부터 다이나믹(Dynamic)하게 “Fitting”을 하는 계산들을 모든 학문이 해 왔다. 천체물리학은 행성/혜성 같은 천체의 궤도를 계산하는데 그 지식을 썼고, 경제학은 중앙은행이 이자율을 올리거나 정부의 재정정책이 변할 때 다른 경제 지표가 어떻게 변하는지 확인하는데 그 계산법을 썼다. 기계항공하던 친구는 비행기 이륙 모델에 이 지식을 쓰는걸 봤었다. 모든 Quantitative 학문이 이 계산법을 이미 오래전부터 쓰고 있었다.

새로운 계산법, 새로운 시대가 온 게 아니다. 전혀.

좀 전문 용어를 쓰면, Dynamic 계산의 기본틀인 Hamiltonian 계산은 1833년 논문에 기반해있고, Markov process를 가정하고 문제를 단순화(?)시켜서 풀어내는 Bellman 계산법도 이미 1850년대에 정립이 끝났던 계산법이다. 거의 200년된 계산법이고, 경제학처럼 1960년대 이후에나 수학을 제대로 가져다 쓴 학문도 1970년대부터 Bellman, Hamiltonian 계산법을 써 왔다.

 

2. 시뮬레이션으로 모든 데이터를 생성하는 시대가 왔기 때문에…

아예 지구 역사를 완전히 새로 시뮬레이션해서 인류가 태어나서 지금의 문명을 만들어내는지, 이 후 문명은 어떻게 되는지, 마치 전지전능한 신처럼 알 수 있다고 이야기 하는 것처럼 들린다.

실상은 어떨까?

모든 시뮬레이션은 기본적으로 변수를 정하고, 그 변수가 어떤 분포함수/패턴/규칙을 따라서 움직이고, 얼마나 Noise (ex. 분산)을 갖는지에 대한 가정을 넣어서 만들어낸다. 당장 기본 변수가 없으면 모델 자체가 만들어지질 않는다. 분포함수/패턴/규칙도 알아서 학습해라가 아니라, 풍부한 과거 데이터 or 연구자의 직관에 의해서 결정된다. Noise 값 역시 같다. Noise를 단순히 분산으로 삼아도 상관없는 정규분포 스타일의 2차 variant 케이스가 아닌 다양한 패턴/규칙이 들어가 있으면 시뮬레이션의 난이도는 기하급수적으로 올라간다.

기계가 알아서 해 주겠지? 계속 이야기하는거지만, 그랬으면 알파고 나온지 4년이 지난 지금쯤 어느 슈퍼컴퓨터로 인류 문명의 역사, 지구의 역사를 완벽하게 복제하는 시뮬레이션이 나왔어야 한다. 변수를 수십억, 수백억가지 찾아야할텐데, 아니 얼마나 많은 변수를 넣어야하는지 모르는데 어떻게 찾지?

시뮬레이션만 그런게 아니라, 모든 계산은 사실 밑 바닥에 식을 세워야 된다. 원래 데이터에서 추측할 수 있는 기본 가정 없는 시뮬레이션은 없다.

 

3. 오늘 발표에 나온 IoT 데이터 같은 것도 어쩌면 필요없을지도 모릅니다

눈에 보이는 Raw 데이터는 현실의 어떤 특성이 투영된 결과물이다. 결과물을 보고 어떤 인과관계가 있었을까에 대한 추론을 바탕으로 예측을 하는 작업이 아마 “러닝”일텐데, 인과에서 원인에 해당하는 값을 찾아서 한꺼풀 한꺼풀 벗어보면, 눈에 보이지 않는 데이터, 숨겨진 변수 (Latent Variable)이라는걸 찾을 수 있다. 인공지능 마니악들이 좋아할만한 Andrew Ng 교수의 Latent Dirichlet Allocation (LDA) 에서도 모델의 키워드는 단어들에 숨어있는 핵심 의미(즉, Latent factor)이다.

IoT 데이터 셋 중에 필요없는 데이터는 없다. 시뮬레이션으로 똑같은 데이터를 만들어내고 싶어도 일단은 그 사람의 행동 패턴을, 최소한 비슷한 사람의 행동 패턴을 관찰해야하니까. 다만 시뮬레이션을 하게 된다고 했을 때 모든 데이터를 그대로 복제하는게 아닌 다음에야 특성을 추출하고 (즉, 기본적으로 변수를 정하고) 그 특성에 기반한 시뮬레이션을 해야할텐데 (분포함수/패턴/규칙을 정하고, Noise를 정하고 등등), 그 때 특성이라는 값이 Latent variable이라고 할 수 있다.

통계학 훈련없이 AI만 좋아하시는 분들이라면 GAN에서 가짜 이미지를 어떻게 추출하는지 한번 확인해봐라. Latent space라는 단어를 찾을 수 있을 것이다. 가짜 이미지 제작을 위해 진짜 이미지에서 Latent variable을 뽑고, 거기에 약간의 랜덤 오차값을 집어넣어서 가짜 이미지를 만들기 때문이다.

 

4. 알파고 제로를 보면 외부 데이터가 아예 필요없고

맞다. 알파고 제로를 보면 외부 데이터가 아예 입력되질 않았다. 100% 시뮬레이션 데이터로 작업했다. 이제 데이터는 필요없다고 많은 공학도들이 만세를 부르더라.

현실은? 그 시뮬레이션 데이터는 19×19 바둑판 위에서 흑/백점을 번갈아놓는다는 규칙, 2집 이상이 없으면 그 패는 죽는다는 기본 규칙 위에 가능한 모든 Markovian path를 찾은 것이다. 쉽게 생각하면 모든 가능성의 조합을 다 찾았다고 생각하면 된다.

자, 그 모델을 38×38로 늘리면 필요한 시뮬레이션은 몇 배가 될까? 단순히 Linear하게 생각해도 4배가 되는데, 가능한 조합이 훨씬 더 많아질 확률이 높다. 쉽게 생각하려면 오목을 5×5판에서 둘 때와 50×50에서 둘 때의 차이를 생각해보시면 된다. 5×5는 훨씬 더 제한된 환경이고, 가능한 조합의 숫자도 적다.

흑/백 2개의 플레이어(Agent)가, 점을 어디에 놓는지 (수학적으로 Control variable – 인공지능 마니악들에게는 Policy variable) 이외에 다른 전략이 전혀 없는 상태에서, 내가 과거에 놓은 점과 상대방이 놓은 점이 상태 값 (State variable)인 꽤나 단순한 모델에서도 상대가 어떤 점을 놓을지 예상하기 위해서 몇 백만 대국을 입력해서 확률 (State transition probability)을 구했고, 그 몇 백만 대국의 데이터가 전체 셋을 다 커버하지 못한다는 판단에 아예 시뮬레이션에 의존했다.

플레이어 숫자가 늘어나고, Control variable의 숫자가 늘어나고, State variable의 숫자가 늘어나고, Probability를 구할 수 있는 조합이 늘어나면 계산은 어떻게 될까?

위에 나온 시뮬레이션으로 모든걸 할 수 있다는 주장에 대한 꽤나 학문적인 반박이 될 수 있을 것 같다.

오래전부터 이런 시뮬레이션이 광범위하게 학문하는 사람들에게 이용되었다는 점은 굳이 재삼 언급할 필요가 없을 것이다.

 

5. 스타크래프트 인공지능이 게임하는걸 보면

강화학습 만능주의자 분들이 위의 4개 논리가 격파당하고 나면 항상 실제 사례라며 스타크래프트 인공지능 이야기를 하신다. 우선, 자신의 논리가 격파당했다는 사실을 인지하실 수 있을만큼 교육 받은 분들이 아니면 우기기, 싸우기로 필자를 이기려는 분들이 많다는 점을 생각해보면, 합리적인 판단으로 위의 논리를 받아들여주신 부분에 감사드리고 5번째 반박을 시작한다.

1990년대 후반에 나온 스타크래프트라는 게임에 1명의 유저가 조작하는 유닛은 최대 200개이다. Control variable이 200개라는 말이다. 근데, Control variable 각각에게 줄 수 있는 옵션이 너무 많다. 위치를 이동시키는데 옵션은 화면 전체다. 위치만 이동하는게 아니라 뭔가 공격/수비하는 값이 실시간으로 바뀐다. 1개 유닛이 아니라 N개 유닛을 동시에 조작해야할 수도 있는데, N개 유닛이 같은 종류의 유닛이 아니라 조합된 유닛인 경우에는 공격/수비 값 조합도 그에 맞춰서 바뀐다.

그냥 완전 시뮬레이션으로 가능한 모든 조합을 찾겠다고하면 아마 200의 몇 백, 몇 천 제곱에 해당하는 값들이 가능한 모든 조합이 된다. 이걸 Matrix/Tensor 형태로 바꿔서 그래픽 카드들 수십개로 계산하면 금방되는거 아니냐는 반문을 받는데, 일단 시뮬레이션 데이터 생성 작업에서 그래픽 카드는 큰 장점이 없다. Data Generating Process (DGP)는 CPU의 높은 클럭수에 크게 달려있다.

DGP는 그렇다치고, 계산은 금방하는거 아니냐고? 알파고가 이세돌을 이기기 위해 176개의 그래픽 카드를 꽂고, 더 많은 그래픽 카드들을 묶어봐야 서로간 통신 비용이 커서 1,760개 대신 176개를 썼다는 점을 상기하면, Matrix/Tensor 계산을 위해 그래픽 카드를 아무리 잘 쓴다고해도 계산에는 한계가 있을 수 밖에 없다. (알파고는 200의 몇 천제곱이 아니라, 2의 몇 십제곱 정도의 계산을 위해서 176개의 그래픽 카드를 썼다.)

언젠가는 무한대를 연결할 수 있지 않을까요?

무한대의 그래픽 카드를 묶으려면 그래픽 카드간 통신 비용이 0이 되어야하는데, 이건 물리적으로 불가능해보인다.

유닛 200개가 만들어내는 시뮬레이션 공간이 얼마나 무모해보이는 숫자인지 감을 잡은 사람들은 보통 Control variable을 줄이기 위해 온갖 노력을 다한다.

천체의 궤도, 거시경제 지표의 변화, 항공기 이륙에 필요한 양력의 변화 값들을 계산하는 사람들은 Dynamic modeling (니네는 Reinforcement learning라고 부르는)에 쓰고 있는 목적함수에 들어가는 변수들간의 특정한 관계를 조건식으로 써서 변수의 자유도를 최대한 낮춘다. 자유도(Degrees of freedom)가 1차원이라도 낮아져야 계산이 간편해지고, 시뮬레이션 할 부분이 줄어드니까.

같은 로직을 스타크래프트 인공지능을 만드는 사람들이 그대로 쓴다. 당장 입구를 막고, 처음 5분간 모든 불확실성을 제거해서 게임 초반부 전략에 해당하는 값을 시뮬레이션에서 제거해버린다. Markov Chain 시뮬레이션을 하는 분들이라면 초반 X개의 가능성 조합을 없애면 2^N이었던 조합이 2^(N-k) 조합으로 바뀌면서 가능성의 조합이 급격하게 줄어들었다는 사실을 이해하실 것이다.

그 이외에도 반드시 어떤 묶음으로 이동해라, 어떤 위치로 이동해라 등등으로 시뮬레이션 없이도 인간이 판단했을 때 합리적인 Policy set을 계속 추가하면서 시뮬레이션의 가능성을 줄여줘야 한다. 계속 자유도를 줄여주다보면 심한경우에는 아예 시뮬레이션 데이터를 하나도 안 쓰는 경우도 생긴다. (수학적으로 Dynamic modeling 하는 사람들에게는 목적함수 값이 조건식대로만 따라가는, Corner solution에 해당하는 경우라고 할 수 있다.) 이건 인간이 정한 조건을 그대로 따르는거지, “인공지능”이 아닌거라고 표현하면 일반인들에게 적절한 설명이 될까?

정리하면, 그냥 아무 손을 안 대고 시뮬레이션이 불가능하니까, 인간이 정한 규칙을 조건으로 많이 걸어주면 걸어줄수록 계산이 가능한 영역으로 내려온다는 말이다. 제일 아래로 내려오면 모든 행동을 인간이 정한 규칙대로 하는건데, 그건 인공지능인가? 시키는대로 하는 로봇인가?

 

6. 그래도 성공 사례가 많으니까

저 공학박사 분이 5개의 모든 논리가 모조리 격파 당하고 난 다음에 “그래도 성공 사례가 많으니까”라고 그러시던데, 성공 사례 중에 현실에 쓰이는 사례는 과연 몇 개인가?

동적 최적화(Dynamic optimization, 당신들에게는 Reinforcement learning) 계산을 수학적으로 훈련받은 사람들은 대부분 각 Stage별로 조건이 비슷한 Markov process를 가정하고 문제를 푼다. 많은 경우에 내 모델에 해당하는 수식이 깔끔하게 정리가 된다. 안 되면 논문을 출판할 수가 없다. 어떻게든 만들어낸다. 이걸 수학적으로 Analytic solution이라고 부르고, 고교 이하 수학 용어를 쓰면 “공식”이라고 생각하면 된다. 근의 공식, 삼각함수 공식 등등이 좋은 예시다.

근데, 동적 프로세스가 Markov process를 벗어나면 쉽게 Analytic solution을 못 찾아내는 경우가 생긴다. 이걸 시뮬레이션 데이터로 풀어내는걸 머신러닝에서 Q-learning이라고 부르는데, Reinforcement learning의 여러 모델들이 큰 틀에서 모두 같은 출발점이다. “공식”에 해당하는 식을 못 찾으면, 근의 공식을 못 찾았는데, 답은 써 내야 하면 어떻게 하시는가? Trial-and-error로 답을 찾아주는 계산기를 쓴다. Reinforcement learning이 “Learning”에 쓰는 Gradient descent (계열의 모든) 계산의 가장 간단한 형태는 집에 하나쯤은 갖고 있는 계산기다.

수학을 기반으로 연구하는 사람들이 갖고 있는 가장 큰 문제는 모델화를 위해 단순화를 심하게 시켜버린다는 점이다. Markov process는 과거에 전혀 영향을 받지 않는 랜덤을 가정하는건데, 이런 가정을 조금씩 완화시킬 때마다 Analytic solution과는 멀어진다. 학계의 분위기는 “공식”이 안 떨어지면 Garbage paper라고 생각해서 논문으로 인정해주질 않는다. 더더욱 Markov process 같은 이상적인 구조에 집착하게 된다.

Reinforcement learning이라고 불리는 계산법은 “공식”이 없어도 답을 찾아주는 계산기라는 관점에서 분명이 매력적이다.

그런데, 계산기가 만능은 아니지 않나? 계산기는 계산기일뿐이지 않나?

왜 계산기에게 “성공 사례가 많으니까”라고 하실까? 쌀집 계산기 놔두고 계산 잘 해준다는 이유로 “성공 사례가 많으니까”라고 하면 그 분의 지능에 대해서 어떻게 취급할 수 있을까?

인공지능이 주식 투자해준다는 로보 어드바이저, 인공지능이 진단한다는 IXM의 왓X 등등 19×19 같은 단순한 벡터 공간을 벗어난 데이터들로 하는 모든 “현실 적용”은 이미 실패를 눈으로 봤다.

주식은 결국 수익률이 정규분포라는 랜덤을 따른다는 큰 틀을 A.펀드매니저라고 자칭 전문가라는 인간도, B.그런 전문가가 만들어낸 알고리즘도, C.인간이 만들어내지 않고 인공지능이 만들어냈다고 주장하지만 사실 인간이 만든 알고리즘도, 그 어떤 알고리즘도 원래부터 랜덤을 따르는 수익률 분포 자체를 바꾸지 않고는 지속적으로 시장을 이길 수가 없다는 증명이 됐다.

(랜덤 분포를 바꾸는 가장 확실한 방법으로 일반인이 아는 용어는 “작전”이다.)

IXM의 왓X이 곧 현실 의료를 바꿀 것처럼 언론보도가 수백차례 나왔지만 당장 언어처리부터 장벽이 있었고, 간단한 처방 이외의 패턴 매칭은 데이터 부족인지, 모델링 실패인지는 모르겠지만 돈만 날렸다고 불평하는 글들이 이미 엄청나게 쌓여있다. (개인적으로는 패턴 매칭으로 가능한 영역의 작업이라고 생각하고 모델링 실패보다는 데이터 전처리의 실패라고 생각해서 IXM을 응원하는 사람이지만, 어쨌건 IXM에서 고소하실까봐 미리 말해둔다. 구글 검색해서 직접 눈으로 보시라.)

저 계산기가 유의미한 곳은 Markov process를 완전하게 따르고, 시뮬레이션을 해야하는 벡터 공간이 크지는 않은 작은 모형 정도에 불과하다. 바둑판이 딱 그런 곳이다. 이세돌처럼 이상한 기보를 가진 천재가 있지만, 그래봐야 19×19 평면을 벗어나지는 않으니까. 연구실에서 얻은 자료가 비정형인데, 패턴을 찾고 싶다는 관점이라면 인정한다. 근데, 우리가 일상에서 만나는,

  • A. 모르는 변수 투성이,
  • B. 랜덤 투성이,
  • C. 오차 투성이

의 데이터가 만드는 벡터 공간에서 Reinforcement learning이, 아니 계산기가 잘 작동한다고?

근의 공식이 없는 4차 이상의 방정식도 일단 식을 넣어야 답을 가르쳐줄거 아닌가?

 

나가며 – 인공지능 악마 or 강화학습 악마

지금 상황은 컴퓨터 성능이 좋아져서 좀 고급 계산기가 나온 것과 같은 상황이다.

근데, 계산기가 아무리 좋아져도, 문제를 읽고 식을 세우질 못하면 계산기를 쓰지를 못한다.

왜 계산기가 인류를 멸망시킬거라고 착각들을 하는거지?

계산기의 성능이 어마어마하게 발전해서 모든 것을 다 “예측”할 수 있는, 말 그대로 삼라만상을 다 꿸 수 있는 상황이 온다는 이야기는 세상의 모든 일이 결정론적 관점에서 움직인다는 19세기 초반 프랑스 수학자들의 몽상과 같은 이야기로 보인다.

당시에 결정론으로 모든 젊은이들을 의지박약으로 이끌었던 라플라스의 수학 논리는 “라플라스의 악마”라고 불렸었다.

지난 200년 동안 인류는 나비효과, 하이젠베르그의 불확정성 원리 등등 수많은 수학, 물리학, 통계학 지식을 쌓아올려가며 결정론이 보지 못하고 있는 랜덤의 위력을 겪고 살았다.

요즘 강화학습 만능주의자들을 보면서 어쩌면 당신들의 무지가 21세기판 라플라스의 악마, “인공지능 악마” or “강화학습 악마”를 만들어내고 있는건 아닌가 싶다.

삼라만상을 궤뚫는 계산기를 만든 신이 실제로 존재한다는 류의 논박은 이 글의 주제와는 맞지 않으니 접는다.

10분이 안 되는 짧은 시간의 설명임에도 불구하고 강화학습이 뭔지, 무슨 한계가 있는지 명확하게 이해했다며 감사를 표하시던 그 공학 박사님처럼, 위의 부족한 글로 다른 분들도 좀 깨어나시면 좋겠다. 제발 좀 부탁드린다.

관련글 링크

Previous article기술회사 vs R&D회사
Next article데이터 사이언스? 개발자세요?
제 이름은 파비가 아닙니다. 파비는 회사이름입니다. 파비는 온라인 광고 타게팅에 머신러닝이라고 쓰고 계산통계학으로 읽는 지식을 적용하는 스타트업입니다. 학부 고학년 이상 수준의 수학, 통계학 고민이 들어간 질문 이외의 질문은 파비캐시 앱 안의 Ask파비 섹션에 남겨주시면 앱 유저 중 누군가가 답변을 남겨드릴겁니다.