인공지능 – DQN, I2A, AGI, Brain Initiative

“인공지능”이라는 단어를 들으면 제일 먼저 떠오르는 그림은 무엇인가?

알파고? 로봇이 통치하는 세상? 매트릭스 속에서 건전지로 바뀐 인간? 아마 10년전만해도 인공지능이라는 단어와 함께 연관 검색어가 될 만한 단어는 “자동화”였을 것이다. 물레방아부터 증기기관까지 근세까지 인류의 목표는 인간의 노동력을 대체할 수 있도록 자연의 힘을 인간의 목적에 맞게 활용하는 것이었다고해도 과언이 아니다. 다만 최근까지의 자동화 시스템은 인간의 “사고”를 복제한 수준에 머물렀지, 정작 사고하는 “방식”을 복제하지는 못했고, 더 나아가 사고하는 방식을 “만들어내는 추론 방식”을 복제하는데는 도달하지 못했다.

알파고가 인간 사회에 준 가장 큰 충격은 사고하는 “방식”이 복제되었다는 생각 때문이었을 것이다. 서양의 체스와 동양의 장기에서 인간 챔피언이 컴퓨터 알고리즘에 패배했을 때만해도 사고하는 “방식”을 복제”당했다”는 두려움이 크지 않았던 것 같은데, 인간 사회에서 가장 머리가 좋은 사람들 중 한 집단인 바둑 최고수들이 속속 패하는 장면을 보고, “인공지능”이 보통의 인간은 이미 훌쩍 넘어섰겠다는 직관적인 판단을 했기 때문이라고 생각한다.

그런데 정작 알파고 같은 알고리즘을 항상 고민하는 사람의 입장에서 봤을 때, 알파고는 내일 지구의 멸망을 가져올 “신”이 아니라, 단순히 규칙을 수식 안에 잘 입력한 방정식에 불과하다.


 

인공지능 (Artificial Intelligence)

보통은 규칙을 수식 안에 잘 입력한 방정식을 “약 인공지능(Weak AI)”이라고 부른다. 요즘 열심히 홍보되고 있는 이미지로 검색하기, 스마트폰 AI 비서, 챗봇 등등이 대표적인 예다. 미리 정의된 규칙 (Lots of “If-Then”s), 혹은 복잡한 알고리즘 (Deep Neural Network, 그들의 용어를 빌리자면 “딥러닝”)을 이용해서 단순 반복 동작이 아니라 지능적인 행동을 할 수 있도록 구현한 알고리즘을 말한다. 당연하겠지만 의식을 갖고 있는 것도 아니고, 사고하는 “방식”, or 지성, 을 복제한 수준도 아니다.

간단히 용어 정의를 하고 넘어가면, “지능”이란 사칙연산, 복잡한 수식 계산 같은 문제를 해결하는 능력이고, “지성”이란 이성적인 판단을 통해 문제를 해결할 수 있는 능력을 말한다. 쉽게 말해서 “어느 정당을 지지하시나요?”라는 질문에, “제 알고리즘은 우리 집 값을 얼마나 올려줄지, 저한테 복지를 얼마나 베풀어 주는지의 합산에 의해서 후보별로 등수를 매기고 1등한 후보에게 투표합니다”가 “지능”의 영역이고, 후보 개인의 인간성, 과거 발언 기록, 현재 정책, 소속 정당의 특성, 소속 정당 내에서 위치, 직접 만나봤던 인상, 심지어 “느낌적인 느낌” 같은 정형화하기 힘든 요소까지 투표자 개인의 인생 경험을 바탕으로한 복잡한 판단으로 지지 후보를 결정하는 것이 “지성”의 영역이라고 보면 된다. 

알파고가 가진 계산 능력은 “지능”일까? “지성”일까? 알파고도 결국에는 신경망 모델 (Neural Network)을 좀 구조적으로 복잡하게 만든 계산 알고리즘을 이용해서 가능성의 조합들 중에 최적 값을 고르는 “약 인공지능”에 불과하다. 차이가 있다면, 스마트폰 AI 비서는 음성을 데이터로 바꿔서 인식하고, 챗봇은 문자를 데이터로 바꿔서 인식하고, 알파고는 바둑 대국 기록을 데이터로 바꿔서 인식하는 정도이고, 계산에 들어가는 알고리즘은 대동소이하다. “약”이라고 불러서 무시당한다고 생각했는지 요즘은 저런 경우를 “카리스마 AI”라고 부르기는 하더라. 그래봐야 뭐 그냥 계산 알고리즘인데….

참고로 구글 딥마인드 팀은 그런 계산 알고리즘을 DQN (Deep Q-Network)라고 부르더라.

 

DQN (Deep Q-Network)란?

이 주제를 공부하는 사람들에게는 Q-Learning이라는 이름으로 알려진 Bellman equation 푸는 방식을 말한다. 간단하게 설명하면, 내가 어떤 행동을 취했을 때, 주변 환경이 바뀌고, 그 환경이 변화한 것 때문에 나의 다음 행동이 바뀌게 되는 구조, 그런데 확정적 (Deterministic)인 케이스가 아니라, 불확실성 (Uncertainty)가 잔뜩 들어간 경우를 수학에서 Markov Decision Process라고 부른다. Bellman equation은 그런 Markov process를 풀어내는 수학 테크닉 중 하나고, Q-learning은 머신러닝에서 Bellman equation을 풀어내는 방식에 붙은 이름이다. (Analytic solution으로 풀지않고, iteration으로 점점 근사치에 가까운 값을 찾아가는 작업)

그냥 Markov process와 Markov Decision process의 차이점은 나의 행동이 주변 환경을 변화시키는지 여부다. 예를 들어 주식 시장에서 내가 주식을 사고 파는 결정은 어지간해서는 주가의 움직임에 영향을 주지 않는다. 그래서 Decision 이 빠져있다. 그런데 바둑에서는? 게임에서는? 주변 환경이 변한다. 그래서 나의 행동을 결정하는 알고리즘과 내 행동이 주변 환경을 바꾸는 부분을 계산하는 알고리즘이 결합되어야 한다. 만약 이런 작업이 한 번만 이뤄지는게 아니라 계속 반복적으로 이뤄진다면? 당장 컴퓨터 게임을 하면 나의 한 선택이 게임 내 환경을 바꾸고, 그 때문에 새로운 전략을 취해나가는 작업을 끊임없이 반복해야한다.

반복적, 환경적응을 필요로하는 계산을 수학에서 “동적 (Dynamic) 계산”이라고 부르고, 그런 동적인 머신러닝 알고리즘이 바로 “강화학습 (Reinforcement learning)”이다. 그런데 그 의사 결정이 단순히 0/1이라면 Logistic regression이나 Support Vector Machine으로 충분했을텐데, 바둑이나 게임은 가능성의 조합이 매우 많다. 그래서 계산의 유연성이 높은 (그렇지만 계산 비용이 많이드는) 신경망 모델 (Neural network)를 활용하게 되는 것이다.

DQN을 수학 모델링하는 사람입장에서 보면, Markov Decision Process을 풀 때, Markov process는 Q-learning이라는 trial-and-error 방식으로 풀어내고, Decision process는 neural network로 풀어내는 모델을 말한다.

저런 모델링이 절대로 쉬운 작업이라고 생각하지는 않지만, 그렇다고 이런 계산식 결합이 “인공지능”인지, 좀 더 나아가서는 “지성”의 시발점인지는 잘 모르겠다. 그냥 좀 많이 어려운 모델링이고, 계산 비용이 많이 들어가는 계산일 뿐이다.

물론 저런 계산도 모델을 얼마나 잘 만드냐에 따라 계산 비용을 어마어마하게 줄일 수 있고, 구글 딥마인드 팀은 그런 수학적 도전들을 풀어낸 천재들의 집합임에는 틀림없다. Respect!

 

 

I2A (Imagination-augmented agent)란?

이세돌 9단에게 처참하게(?) 1패를 하고 절치부심했던 구글 딥마인드 팀이 새로 내놓은 모델이 “알파고 제로”다. 이전의 알파고는 바둑 기보라는 데이터를 바탕으로 최적화된 방정식을 찾아가는 방식이었다면, 알파고 제로는 그냥 시뮬레이션으로 만들어낸 데이터를 바탕으로 어떤 선택이 최적인지를 찾아내는, 이른바 “Self-learning”하는 구조라고 한다.

이름 짓기 좋아하는 구글과 딥마인드 팀은 여기에도 그럴듯하게 I2A라고 “인간의 상상력을 덧붙인 ‘인공지능'”이라는 식의 네이밍 전략을 쓰고 있는데, 알고리즘 빌딩을 직접하는 사람 입장에서는 “무슨 경영학과처럼 Fancy한 이름만 붙이냐…”는 생각이 먼저 들기는 한다.

I2A와 DQN의 가장 큰 차이점은, 위에서 방정식이라고 부른 모델을 갖고 있느냐, 아니면 규칙만 입력하고 모델의 방정식을 안 만드냐에 달려있다. 모델을 만들고 나면 그 모델의 변수들이 어떻게 작동해야하는지를 결정하기 위해서 데이터를 입력하고 변수간 상관관계를 뽑아내는 작업이 “Learning”인데, 모델이 아예 없는 경우에는 단순하게 각각의 경우마다 선택의 조합 (Policy Set이라고 한다)을 놓고, 그 선택의 조합에 다른 확률 값을 주는 계산이 된다.

수학적인 용어를 좀 쓰면, Policy Set으로만 구성된 Model Free한 모델을 만들고(?), Policy Set의 경우의 수들에 최적 가중치를 줄 수 있도록 시뮬레이션을 돌리는 작업이라고 하면 되겠다.

이렇게 계산 전략을 바꾼 이유는, DQN에서 Bellman equation을 만드는 작업, 특히 상태 변수 (State variable)들을 지정하고, 그 변수들의 갯수를 줄이는 작업이 어마어마한 수학적인 도전인데 반해, 고려할 수 있는 경우의 수는 기존 데이터에서 나왔던 값들, 상태 변수로 표현된 값들에 불과하기 때문에 모든 종류의 불확실성 (Uncertainty)을 다 고려할 수 없기 때문이다.

이세돌 9단이 “신의 한수”라고 불린 4국 78수를 뒀던 그 착점에 알파고는 0.1% 미만의 확률을 줬었기 때문에, 모든 종류의 불확실성을 제거하는 모델을 만들고 싶었을 것이라고 생각한다.

모델링을 위한 인간의 두뇌는 덜 쓰니 언뜻 더 좋아보일지 모르지만, 간과하지 말아야할 문제는 저렇게 만드는데는 더 많은 계산 비용이 들어가고, Policy Set을 만드는 작업이 더더욱 어려워진다는 것이다. 스타크래프트를 놓고 인간과 인공지능의 대결에서 인공지능이 참패를 했던 이유, 아예 단순히 생산량만 많이 늘리는 전략을 갖고 나온 이유도 마찬가지다. Policy Set을 복잡하게 만들 수가 없기 때문이다.

 

범용성 인공지능 (Artificial “General” Intelligence)

얼마전 구글 딥마인드 CEO인 데미스 하사비스가 “인간의 상상력을 AI에 심는 연구”를 하고 있고 2년안에 결과물을 보여줄 수 있다는 인터뷰를 했다는 기사를 봤다.  알파고 같은 카리스마 AI가 아니라, 범용성 인공지능 (Artificial General Intelligence)을 만들어내서 인간의 일상생활에까지 침투하겠단다.

도대체 무슨 방법을 이용해서 AGI를 만들어낼지는 알려진바가 없기 때문에 함부로 단언할 수는 없다.

다만 분명한 것은 I2A라고 불렀던 시뮬레이션 기반 방식은 Policy Set을 간단하게 만들 수 있는 경우에만 국한된 계산 알고리즘이라는 것, 그래서 I2A 기반으로 AGI를 만드는 것은 매우 어렵다는 사실이다.

모든 계산 알고리즘의 밑바닥에는 수리통계학 모델들이 들어있다는 점에 미뤄봤을 때, 구글 딥마인드가 AGI를 만들기 위해서 활용해야하는 통계학 아이디어는 베이지안 (Bayesian)이라고 생각한다. 필자의 수학 & 통계학 시간 끝 무렵에 잠깐 언급하듯이, 베이지안은 기존의 사고방식과 새로운 정보를 결합하는 인간 활동을 통계학 모델로 바꿔놓은 접근법이다. 자율주행차가 지평선 너머에 있는 아기 모양 구름을 보고, 사람이라고 판단할지, 구름이라고 판단할지는 차가 앞으로 나가면서 그 구름의 변하는 모양이라는 새로운 정보를 결합해서 판단을 내리게 만들 수 있다.

구글 딥마인드가 AGI라고 주장하는 인공지능 알고리즘이 끊임없이 Adaptive learning을 하고, 단순히 기존 데이터나 Policy Set에 국한된 판단이 아니라 새로운 정보들을 받아들이며 모델을 진화시킬 수 있을까? 필자가 다른 수학 & 통계학을 다 제쳐놓고 베이지안이라고 짐작하는 이유는, 테슬라의 자율 주행차가 이미 베이지안이 도입된 알고리즘을 만들고 있기 때문이다.

통계학을 학부 이후로 배운적이 없어서 t-Test도 까먹었다던 한국의 많은 공학 박사들, 베이지안이라고 하니 “예전에 한번 들어봤는데요…”라던 수업 시간에 찾아오신 공학 박사들이 이걸 할려면 어디에서부터 시작해야할까?

 

나가며 – Brain Initiative

컴공과에 알고지내던 지인을 만났더니, 요즘 애들이 머신러닝 나오면서 코딩 공부할 내용이 늘어서 취업하기 더 힘들어졌다고 하시더라. 저거 다 수학인데, 어차피 코드만 베낄꺼면서 뭐가 더 많아진거냐고, 수학이나 이해하고 그런 불평해라고 진담 섞인 농담을 던졌다.

소프트웨어적으로 인공지능이라고 불리는 자동화 시스템을 구현하는데 알파고, 알파고 제로에 이어 정말 범용성 인공지능이 나올지도 모르는 세상이 되니 프로그래밍으로 마치 모든 걸 다 할 수 있다는 착각에 빠진 사람들도 많고, 그런 코딩에 목을 매는 사람들도 참 많아진 것 같다. 사실 그 밑바닥에는 수학과 통계학이 깔려있다는 사실을 여러번 언급하면서 그동안 코드만 치는 얇팍한 지식에 불편한 감정을 드러내는 글을 썼는데, 어쩌면 진정한 인공지능 구현은 하드웨어적인 도전을 하는 쪽에서 더 먼저 성공할지 모른다.

1986년에 존 화이트라는 생명공학자가 꼬마 선충을 8,000등분으로 분해한 다음, 각각의 신경망 구조를 그대로 복제해서 로봇으로 옮겨보았다. 특별히 인간의 뇌, 척수 같은 신경 결합 구조가 있는 것도 아니었는데, 그 신경 구조 로봇은 알아서 벽을 피했고, 선충의 움직임을 그대로 재현하는 것을 보여줬다. (상단 Youtube 영상 참조)

소프트웨어적인 구현은 말만 인간의 사고방식을 모델로 구현하는 거지, 정작 계산을 해야한다는 점에서 계산 비용의 장벽을 갖고 있다. 그러나, 생물의 뉴런 구조를 그대로 옮겨오는 작업은 최소한 계산이라는 부분에서 생기는 문제는 고려하지 않아도 된다. (물론 인간형 로봇으로 적용시키려면 뼈, 근육 구조부터 무게, 내장기관과 혈액 흐름에 따른 중력 저항성 등등 생물학적, 물리학적 고려 요소가 어마어마하게 잔존하고 있는 것은 사실이다.)

동상이나 그림에 들어가는 근육 한 조각마저도 완벽하게 재현하겠다는 의지로 인간을 직접 해부했던 레오나르도 다빈치. 어쩌면 인간의 “상상력”을 실제로 구현하기 위해서는 뇌와 척수에 있는 모든 신경 조직을 그대로 프로그램으로 옮겨야할지도 모른다. 그 날이 오기전까지 단순히 “계산”을 하는 알고리즘을 놓고 “인공지능”이라고 부르는 요즘 세태를 보면 그냥 입맛이 좀 씁쓸하다.

사실 사진으로 검색하는 서비스는 2008년부터 이미 있었는데, 이걸 이제서야 갖다 붙이고는 자기네가 인공지능 “최선두 주자”라는 포털 사이트들을 보다가 글이 길어져 버렸네.

X