미국에 교수로 있는 친구 하나가 사무실에 놀러왔었다. 무슨 비트코인 어쩌고 하는 걸로 사업하는거 아니냐고 농담하길래, 내 성격 알면서, 사업을 안 했으면 안 했지 내가 그런 사기치겠냐고 웃고 넘어갔었다. 처음 코인 바람이 불었을 때부터 예상했던대로 코인에 대한 (투기적) 수요는 지난 1년간 빠르게 증발했고, 덕분에 “비트코인 가격 예측할 수 있는 인공지능 알고리즘 만드는 가격은 얼마냐?”고 묻는 무개념 전화를 안 받게 됐다ㅋㅋ

꼭 1년 전쯤에 코인 가격이 폭등했던 탓에 코인을 “캔다”고 하는 일단의 그룹이 생겨났고, 그래픽 카드 수천대를 투입한 “광산”도 생겼다. 코인 가격들이 줄줄이 폭락한 탓에 그런 광산들이 다 문을 닫았고, 전기세도 안 내고 도망간 사람들도 많단다. “광산”에서 “학대”를 당한 그래픽 카드들이 대거 중고로 풀렸는데, 얼마 쓰지도 못 하고 하드웨어가 고장나는 일이 잦은지 중고 그래픽 카드 구매할 때 테스트해야할 내용들도 인터넷에 돌아다니게 됐다.

그래픽 카드 업계의 선두주자로 저런 대용량 데이터 계산에 사업 역량을 집중했던 Nvidia의 주가는 2018년 9월 28일에 주당 $281까지 치솟았다가 연말에 $140로 반토막났다.  “광산”에 대규모로 투입되었던 그래픽 카드 중고 물량이 시장에 풀리면서 새로나온 제품이 안 팔리는 부분도 있을 것이고, “딥러닝” 혹은 “인공지능”으로 불렸던 Non-linear & Pattern recognition 계산이 가지는 한계를 업게에서 인지했기 때문이라고 생각된다.

(Source: CNBC 기사)

블록체인의 한계 – The Crypto Hangover

Nvidia의 CEO인 Jensen Huang은 대놓고 “The Crypto Hangover”라는 표현을 썼다. 코인 광산에 대한 시장의 반응이 차갑게 식어가고 있고, Nvidia 제품 판매에도 더 이상 영향을 주지 않을 것을 인지하고 있단다.

It’s hard to think that this crypto winter will be over anytime soon

코인이라는 가상화폐 자체의 활용 근거가 없고, 블록체인이 쓰일 수 있는 곳도 굉장히 제한적이라는 이야기를 하면서 줄곧 주장했던대로 암호화폐에 대한 (투기적) 수요에 겨울이 닥칠 것이라고 목소리를 높였는데 (Winter is coming), 이제 정말 겨울이 왔다. (Winter has come)

블록체인을 이용해 코인을 발행하고, 생태계가 구축되고 결국은 정부도 이 흐름을 받아들여야할 것이라고 주장하던 어느 “블록체인 전문 VC”도 떠오르고, 어느 스타트업이 데이터 팔아서 돈 벌 수 있다며 코인 발행을 하겠다고 사업 모델을 바꾸더니, 그걸로 돈을 “벌었다”고 주장하던 꼴불견도 생각난다. (스마트폰 기준으로 우리나라에서 유저 데이터를 제일 많이 보유한 SKT도 데이터 파는 사업으로는 직원 월급은 커녕 서버 유지도 힘들 것이다. 그런 사업 모델을 생각한 사업가들이나, 거기에 투자한 VC들이나, 그 코인을 구매한 투자자들이나….)

Crypto Winter가 끝날 것 같지 않다는 말은, Nvidia 주가 폭락이 상징하는 것처럼 가상화폐 발행을 위한 블록체인 시스템이 매력적인 사업 모델이 아니라는 사실을 (최소한 미국) 시장이 인지하고 있다는 뜻이다.

코인 가격 등락에 매일같이 투자자들 등쌀에 힘들다던 어느 블록체인 스타트업 대표의 다크 써클 가득한 눈이 떠오른다. 50원에 발행한 코인이 5원에도 거래가 안 되고, 거래량마저 없으니 돈 날렸다 -> 사기당했다로 생각이 바뀌는 투자자들이 가만있지 않을 것이다. 주식은 저런식으로 상장 폐지의 위험에 다다르면 투자자들이 회사 건물로 쳐들어가곤 하던데, 블록체인 투자자들 사이에서도 조만간 비슷한 일이 생기지 않을까? 모르긴 몰라도 법적 책임이 애매모호하다는 핑계로 도망가려는 코인 발행사들 & 관계자들 vs. 묻지마 투자자들 사이에 큰 분쟁이 머지않아 뉴스 지면에 오르내리게 될 것이다.

(Source: Nvidia)

 

딥러닝의 한계 – The AI Hangover

바둑계의 전설이라고 불리는 이세돌을 4승 1패로 물리친 알파고가 등장한 이래, 그 게임의 계산 모듈을 만든 Demis Hassabis와 그의 회사 “딥마인드”는 스티브 잡스나 엘론 머스크를 능가하는 IT업계 아이콘이었다. 전문가들 눈엔 “Neural Net 잘 짰네”라는 생각밖에 안 드는 그런 계산 알고리즘에 일반인들이 열광하면서, 단순히 게임만 잘하는 Artificial Intelligence (AI)가 아니라, 모든 일을 다 자동 습득하는 Artificial “General” Intelligence (AGI)가 곧 인류의 삶을 뒤바꿀 것이라는 장밋빛 전망이 언론을 뒤덮었다.

새로운 데이터가 필요한 부분을 시뮬레이션으로 대체한 “알파(고) 제로”가 등장하면서 더 그런 믿음이 한층 고조되었는데, 정작 전문가들의 눈엔 새로운 분야에 적용할 시뮬레이션 데이터 생성 부분이 당면 과제로 떠올랐고, 그걸 인간이 갖고 있는 계산 모듈로 해결할 수 있을지에 대한 의구심이 샘솟기 시작했다.

시뮬레이션으로 모든 가능성을 다 점검하는 작업은 고려해야하는 변수와 가능성의 숫자에 따라 무한대에 가까운 데이터 생성이 필요한데, 이걸 뭔가 적절한 수학 모델링을 풀어내는 방법으로 단순화 시키는게 아니라, 단순하게 시뮬레이션으로 모든 조합을 다 생성해내는 방식으로 접근하고 있으니 전문가들이 발전 가능성에 의구심을 품는 것은 당연한 일이었다.

요즘와서는 Demis Hassabis 본인도 (Deep) Neural Net이 적용되는 한계를 인지한 발언을 하고 있고, 실리콘 밸리에서도 수학, 통계학 잘 모르는 공대생들만 Deep Net에 얽매여 있다. (Deep Learning을 더 배우고 싶어요~ 라던 그 공대 석사 가시는 분, 다시 한번 자신의 커리어 Path를 생각해보시길 바란다.) Data Science 석사 프로그램들은 아예 대놓고 수학적으로 훈련을 많이 받은 사람들 위주로 학생 선발하겠다고 이야기를 하지, 그래픽 카드의 성능을 활용하는 오픈 소스 솔루션을 쓸 줄 아는 사람을 뽑겠다는 이야기는 찾아보기 어렵게 되어버렸다.

(Source: Nvidia)

 

NVidia의 갈림길

그동안 그래픽 카드 소비자들이 봤던 라벨은 일반 상업용 제품 (GTX 계열)과 캐드 계산을 지원하는 제품 (Quadro 계열) 밖에 없었다. 경쟁사인 AMD에서 내놓는 제품도 OpenGL이라고 캐드 계산을 비롯한 일부 3D 이미지 처리 전문 모듈에 대한 논의만 있었다. 그런 계산 모듈들을 셰이더 코어라고 부르고, 3D 그래픽 계산의 성능은 정수 유닛 계산 속도가 아니라 부동 소수점 유닛 계산 속도에 달린 바가 컸다.

Nvidia 주가가 그동안 폭등했던 이유 중 또 하나는 셰이더 코어 뿐만 아니라 Tensor 코어를 추가해놨기 때문이었다. 여러분들이 TensorFlow라는 구글의 오픈소스 계산 모듈 이름으로 한번쯤 들어봤을 그 3차 이상의 행렬 데이터 계산을 위한 모듈을 말한다. 어차피 그래픽 카드 자체가 행렬식으로 계산을 처리하기 용이하도록 구성되어 있기 때문에, Tensor 코어를 추가하는 것 자체는 기술적인 도전이 아니었지만, 그 계산 코어가 효율적으로 작동하도록 하드웨어용 설계 및 펌웨어를 구성하는 일은 절대로 쉬운 일은 아니었을 것이다.

그렇게 Tensor 코어에 집중하던 Nvidia가 이번에 GTX 계열 라인업을 업그레이드 시켰는데, 정작 Tensor 코어 성능 향상은 그렇게 크게 느껴지지 않는다.

이번에 출시되는 RTX 시리즈는 기존의 셰이더 코어를 정수 계산용과 부동 소수점 계산용으로 구분하고, Ray Tracing (RT)이라고, 이미지에 빛을 넣는 렌더링 방식을 광원 여러개를 가정하고 처리하는게 아니라 중심 광원 하나에 따르도록 바꿨다. 그럼 Tensor 코어도 뭔가 업그레이드가 있었을 것 같은데?

Tensor 계산을 한다는게, 결국은 고차원 행렬의 합연산과 곱연산을 수행하는걸로, 연산 총량(스루풋)을 몇 십배로 늘리기 위해서 행렬에만 집중한 코어를 만들었는데, 정작 행렬이 아닌 연산에는 아무런 쓸모가 없는 전기 식충이(!)가 되어버린다. RTX가 진화하는 방향은 Ray Tracing으로 이미지를 좀 더 게임하는 사람에게 실제감각이 느껴지도록 렌더링하는데 포커스가 맞춰져 있는데, 행렬 계산은 거기에 아무런 관련이 없기 때문에 무작정 많은 코어를 넣을 수도 없다. RTX 그래픽 카드를 딥러닝 알고리즘에 활용하는 사람들 비율이 얼마나 되겠는가?

결국엔 여러 데이터 포인트를 하나의 곡선으로 연결해 묶은 Interpolation을 하는 계산에 Tensor 코어를 활용하는 방식으로 타협했다는데, 아무래도 데이터 포인트가 모자라서 빈칸이 생긴 경우를 메워넣는 쪽으로 쓴다는 뜻일 것이다. (결국 머신러닝의 가장 기본형 포맷인 Non-linear function matching으로 돌아갔다는 뜻이기도 하다.)

분명히 TensorFlow 덕분에 주가 폭등이 있었는데, 왜 새로운 그래픽 카드 시리즈를 내면서 Tensor 계산 지원해주는 스루풋 처리 부분을 더 늘리지 않고 Interpolation으로만 갖다쓰는 타협을 했을까?

답은 윗 섹션에 있다. Deep Neural Net이 더 복잡한 계산을 해야하는 도전에 직면한게 아니라는 사실을 Nvidia가 인지 했기 때문이다. 말을 바꾸면, AI가 AGI로 나아가는 방향에서 DNN이 더 이상 큰 역할을 못한다는 사실, TensorFlow 계산 지원이 더 이상 큰 도움이 되지 않는 사실을 인지했기 때문이다.

 

나가며 – 하드웨어 장치 산업

90년대 초중반부터 우리나라의 주력 수출품목은 반도체였다. 반도체 가격이 폭락한 90년대 중반에 금융위기를 맞았고, 모든 산업이 쇠퇴하고 있는 2010년대에도 경제성장율이 +를 유지하는 가장 큰 이유는 삼성전자와 SK하이닉스의 반도체 수출덕분이라고 해도 과언이 아니다. 그리고, 지난 몇 년사이에 인공지능(?), 클라우드 컴퓨팅 등을 비롯한 IT산업의 혁명이 있었기 때문에 반도체 수출이 장기간 호조였다. 그런 호조가 얼마나 지속될지, 메모리 분야의 세세한 내용을 잘 모르니 전망을 내놓고 싶진 않지만, 적어도 인공지능, 블록체인이라고 불리던 거품이 빠지면 하드웨어 투자를 위한 수요는 줄어들 것이라고 생각한다.

Nvidia도 시장의 흐름을 읽고 원래 돈 벌이가 됐던 분야인 게임쪽에 더 집중한 그래픽 카드 라인업을 내놓았다. Ray Tracing 방식의 렌더링이 어두운 영역은 더욱 어둡게 표현한다고, 오히려 쓰기 안 좋은거 같다고 불평하는 사람들에게 그건 디스플레이가 2^10 단계의 밝기 (10스톱)에 머물러 있기 때문에 색이 뭉쳐나와서 그렇다고, 인간의 눈 급인 2^20단계 (20스톱)를 지원할 수 있도록 모니터용 하드웨어 기술에다가 따져라고 하는 댓글을 봤었다.  Nvidia가 게임 시장에서 넘사벽의 그래픽 성능으로 게임사들과 모니터 제조사들까지 압박하는 모습과 DNN 기반의 Reinforcement learning은 한계가 있는 것 같다는 인터뷰를 하는 Demis Hassabis의 표정이 꽤나 대비된다.

섣부른 예측일지도 모르지만, AGI만든다는 도전은 컴퓨터 알고리즘보다 생물학에서 먼저 가시적인 성과를 볼 것 같다. 애시당초 지능은 컴퓨터를 이용한 2진법 방식 연산의 중첩이 아니라 진짜 “학습” 프로세스를 거치는 생명체에게서 찾을 수 있는 것 아니었나?

지금 우리가 만나고 있는 “인공지능”은 사실 “지능”이 아니라, 데이터에서 뽑아낸 패턴들로 이뤄낸 고급 자동화라는 사실을 여러번 강조하고 있다. 이전에는 단순한 규칙만을 입력한 자동화였다가, 이제는 데이터에서 더 다양한 규칙들을 뽑아내서 자동화를 좀 더 복잡한 수준으로 할 수 있는 정도에 불과하니 이건 “지능”이 아니라 “규칙”을 “저장”하는 것에 불과하다고 했다.

수업 초반에 강조하듯이, 단순히 데이터의 용량이 커져서가 아니라, 예전 데이터는 랜덤 데이터였는데 반해, 요즘 우리가 IT업계에서 뽑아내는 데이터는 여러가지의 패턴들을 포함하고 있기 때문에, 패턴을 매칭하는 통계 알고리즘들로 “고급 자동화”를 구현하고 있는 상태다. 단순한 선형이 아니라 비선형의 복잡한 패턴을 잡아내는데 (Deep) Neural net이 (그나마) 빠르고 효과적으로 계산하기 때문에 활용하고 있는 것일뿐, 이 시대의 “인공지능”은 그냥 통계적인 계산들 중 하나에 불과한 상태다.

신경과학자 (Neuroscientist)인 Pascal Kaufmann이 빅 데이터 기반의 딥러닝 알고리즘 광풍에 대해서 이렇게 표현했다.

“If you need 300 million pictures of cats in order to say something is a horse or cat or cow, to me that’s not so intelligent, It’s more like brute-force statistics.”

필자가 그동안 이야기했던 것과 완벽하게 일맥상통하는 이야기다. 참고로 Kaufmann 박사는 Starmind라는 “진짜” 인공지능 스타트업을 운영하고 있는 중이다. 이 분의 주장은 머신러닝, 딥러닝 같은 통계 프로그래밍은 인공지능이라고 부르지말고, “Computing statistics”라고 불러야한단다. (또 공감했다. 캬~)

진정한 인공지능이라고 하려면, 어마어마한 데이터를 입력해서 패턴을 매칭해내는 통계 알고리즘이 아니라, 사람들의 “생각”하는 방식을 구현해내야하지 않겠냐고 반문하는데, 얼마나 공감하실 수 있으신가?

“I think it’s impressive what statistics is capable of, but it’s definitely not what we’re looking for when it comes to human intelligence.”

 

Brain Code를 알아내야 – 뇌 매커니즘을 복제해야

알파고 이후 약 2년 남짓 동안 정말 수많은 사람들이 “인공지능”이라는 노래를 불러댔고, 몇 백조의 자금이 투자됐다. 곳곳에서 인공지능이 곧 인류를 지배하는 시대가 온다고 설레발을 치는 “전문가(?)”들이 신문 지면을 장식했고, 이틈에 개발자라는 직군의 사람들 중 일부는 자기네들이 “인공지능” “기술”을 갖고 있다는 말도 안 되는 뻥을 치며 4차 산업 혁명은 코딩 기반으로 가야된다고 언론 플레이를 했었다.

그 결과는? 지금까지 필자가 줄곧 주장해왔던대로, 개발자들은 코드나 Copy & Paste하는 수준에 불과했고, 글로벌 IT 회사들이 인공지능 시스템을 도입한다는데 정작 수준은 데이터 패턴 매칭에 지나지 않았다. 바둑에서 컴퓨터가 인간 최고수를 이겼으니, 이제 스타크래프트같은 쉬운(?) 게임은 어렵지 않다고 그랬다가, 프로게이머도 아니고 일반인 수준도 안 되는 것 같다는 혹평을 들으며 졸전을 치르는 “인공지능 플레이어”도 만나봤다. 데이터로 매칭해야하는데, 바둑은 1개 유닛을 어디에 놓을지만 고민하면 되는 (상대적으로) 단순한 패턴 매칭만 하면 됐는데, 스타크래프트는 무려 200개 유닛을 어떤 방향과 어떤 속력으로 어떤 조합으로 움직여야할지 고민해야하는 Super Mega Ultra 복잡한 패턴 매칭을 해야하니 답이 있을리가 있나

정말로 “인공지능”이라고 부를려면 인간의 머리 속이 어떻게 움직이는지 이해하고, 그 움직임 방식을 따라갈 생각을 해야하지 않을까?

(Source: thinkerstank)

이걸 영어권에서는 Craking the “Brain Code“라고 부른다.

글로벌 대형 IT 회사들은 아무도 이런 이야기를 안 하는데, 필자같은 변방의 Data Scientist, Pascal Kaufmann 같은 유럽의 외딴 지역에서 이름도 모르는 스타트업 운영하는 사람들만 이런 이야기를 하냐고?

“It’s not about decoding random thoughts….We’re talking about decoding the words you’ve already decided to share by sending them to the speech center of your brain.”

Facebook의 Building 8 매니저인 Regina Dugan이 뇌파를 읽어내는 프로젝트를 이야기하면서, 위와 같은 이야기를 하더라. 비슷한 주제에 대해서 Elon Musk는 Neuralink 라는 회사를 설립하고, 뇌파를 전달해주는 스마트폰 비슷한 기계를 만든다는 이야기를 했었다.

솔직히 말하면, 글로벌 대형사들이 저렇게 한심한 이해와 답답한 투자를 하고 있는 덕분에 스타트업들이 성공하는 것 같아서 한참을 웃었다. (필자와 같이 실망한 연구 인력들이 많을 것이다.)

당장 뇌가 사용하는 언어가 뭔지를 알아야 그 뇌파를 읽어서 뭔가 다른 작업을 할 수 있지 않을까? 현재 인간이 뇌파를 읽어서 해석하는 수준은 팔, 다리, 손가락의 움직임에 대한 전기 신호 자극을 “번역”하는 수준 밖에 안 된다.

이것도 데이터가 더 많아지면 “인공지능”이 “Learning”하는 거 아니냐고? 글쎄다. 팔, 다리, 손가락 움직임은 하나하나 매칭해가면서 데이터 셋을 만들 수 있을지 모르겠는데, “저 여자가 나를 보는 눈빛을 보니 내가 아까 몰고 온 싸구려 국산차가 마음에 안 들었나보다.”, “저 남자의 팔 동작은 나한테 호감이 있는걸 감추려는 억지가 들어간 어색한 동작인 것 같다.” 와 같은 판단을 하는 뇌파의 움직임은 어떻게 될까? 그런걸 알아내야 진짜 “인공지능” 뇌파 분석기 아닌가?

 

그럼 인공 지능이 아니라 뭘까? – 집합 지능 vs. 통합 지능

집합 지능 (Collective Intelligence)
– “민주주의의 수준은 그 나라 평균의 수준이다”

대의제 민주주의에서 리더를 뽑는 투표를 보통 집합 지성 (Collective Intelligence)라고 표현한다. (다만 이번 글의 맥락상 집합 “지능”으로 바꿔서 쓴다.) 여러 사람의 생각을 모으면 집단 전체에게 가장 큰 이익이 되는 결정을 내릴 수 있다는 맥락에서 나온 용어다. 역사적으로 멀리가면 고대 그리스 사회의 도편 추방제가 있고, 민주주의 국가들에서 다수결의 원칙에 따라 의사 결정을 하는 것도 모두 집합 지성이다.

물론 집단의 구성원들이 수준이 낮으면 낮은 수준의 정부 밖에 못 갖는다고 혹평도 받을만큼 집합 지성이 항상 우월한 것은 아니다. 노벨 경제학상 후보 중 한 사람이었던 Stephen Ross 교수님은 매번 이렇게 농담하셨다.

Collective intelligence is no more than AVERAGE intelligence of the society. You know yours is at least above the average, but you are also aware of how awful yours is. What’s more terrible is that half the population has BELOW average intelligence.

집합 지성이란 평균 지성인데, 평균이 얼마나 멍청한지, (그런데 그 평균이 매일 멍청하다고 놀림듣는 너보다 더 멍청하고) 그리고 인구의 절반은 평균 아래니 얼마나 더 멍청할까는 우스갯소리다.

 

통합 지능 (Integrated Intelligence)
– “뭉치면 살고, 흩어지면 죽는다”

요즘 말하는 인공 지능 (Artificial Intelligence)의 냉정한 정의를 따지면 통합 지능이 아닐까 싶다. 수 많은 사람들의 작업 데이터를 입력해서, 그 중 반복적으로 나타나는 패턴을 골라내는 계산법, 여러 사람의 데이터를 모아서 전체의 대형 데이터 셋을 만드는 작업이 2018년 시점에 사람들이 알고 있는 인공지능이고 빅데이터이기 때문이다.

다른 글에서 소개했듯이, 수백만 명이 네비게이션을 쓰면서 실시간으로 차량 정보를 보내주면 그 정보를 바탕으로 다른 운전자가 현재 차량 정체 상황과 도로 상황을 쉽게 이해할 수 있다. 개인은 한 순간에 한 지점에 있지만, 집단은 한 순간에 수 많은 지점에 퍼져 있기 때문에 더 많은 정보를 갖고 있기 때문이다. 필자의 수업 시간에 얼굴 인식하는 알고리즘이 PCA 작업이라는 걸 보여주고, Neural Net은 그런 PCA의 아이디어를 형상화한 알고리즘이라는 걸 보여주면서 결국은 깨끗하게 정리된 얼굴 사진 데이터를 얼마나 많이 집어 넣느냐에 따라 모델의 성능이 바뀌는 걸 보여주면 많은 분들이 놀란다. 알고리즘이 아무리 좋아봐야 주변 친구들 열댓명의 얼굴 정보 데이터로는 한계가 있고, 대한민국 사람들 모두의 얼굴 사진, 그것도 똑같은 프레임 속에 집어넣은 얼굴 사진을 모아야 얼굴 이미지를 더 잘 인식할 수 있다는 이야기다.

물론 통합 지능이라고 표현했으면 이렇게 사람들의 관심과 투자를 끌어모을 수 있지 않았을 것이기 때문에 용어를 변경한 부분은 이해되지만, 필자처럼 그 계산의 매커니즘을 다 알고 있는 사람 입장에서 “인공 지능”이라는 단어를 입에 올리는 것은 굉장히 거북한 일이다. 우리 회사 이름을 Predictive Analytics by Integrated Intelligence 라고 한 이유도 회사 비지니스 모델의 핵심을 정확한 표현으로 옮기고 싶었기 때문이다. 모든 걸 다 떠나서, 필자는 “인공” 이라는 단어를 붙여서 “사기”를 치고 싶지 않다.

(Source: Analytic India Magazine)

 

Cracking the Brain Code – 인공지능이 나아갈 길

지금까지 인류는 아무런 인공지능도 만들어내지 못했다. 그냥 자동화 알고리즘만 좀 더 복잡하게 만들어내는 방향으로 진화했을 뿐, 정작 인간을 비롯한 고등 생명체가 어떤 방식으로 사고하고 있고, 그 사고의 격차가 생기는 것에 맞춘 “지능”적인 알고리즘은 커녕, 영장류보다 지적으로 열등한 생명체들의 지능이 어떻게 생명반응의 로직을 설계 하고 있는지도 잘 모르는 상태다.

이전에 다른 글에서 언급했듯이, 1980년대에 편모충의 세포 그룹들을 하나하나 복제한 조직을 결합시켰더니, 편모충과 유사하게 움직였다는 생물학적 “발견”이후, 더 큰 생명체의 움직임을 “단순 복제”는 해내고 있을지언정, 정작 원리를 파악하고 “구현”을 해내는 단계는 아니다. 개발자들의 딥러닝 코드로 비교하자면, Copy & Paste로 딥러닝을 “잘한다”고 주장하지만, 정작 Deep Neural Net이 어떻게 구현되는지, 그 알고리즘에서 Overfitting은 어떻게 해결하는지, 다른 데이터, 다른 목적에는 어떻게 바꿔서 활용하는지는 전혀 알지 못한다는 뜻이다. (그래놓고 “딥러닝 엔지니어”라고 주장하는 모습을 보면 기가찬다 ㅋㅋ)

참고로, 레오나르도 다 빈치가 새들의 활강 장면을 보고 비행에 필요한 신체 조직, 공기 저항을 이겨내는 방식 등에 대한 개략적인 이해를한지 몇 백년이 더 지나서야 라이트 형제가 비행기를 만들어냈다. 인공지능도 마찬가지다. 뇌가 어떻게 움직이는지를 일단 알아내야 인간 비슷한 “지능”적인 객체라도 만들어 낼 것 아닌가. 이제 겨우 뇌파 분석기로 뇌파 데이터 수집하는 단계인 주제에, 아직 인간은 커녕 돌고래의 뇌가 어떻게 작동하는지도 모르는 판국에 무슨 인공지능이란 말인가?

 

나가며 – 설레발 금지

지능도 아닌, 겨우 데이터 훈련하는 주제에 “인공지능”이라고 열심히 주장들을 해대는 꼴을 보면 정말 깝깝하다. 당장 저런 통계 모델링을 못해서 글로벌 선진국 대비 몇 년이나 격차가 뒤쳐졌고, 그걸 따라잡으려면 정부가 얼마나 투자를 해야하고… 정부의 눈먼 돈 빼먹으려는 전략으로 밖에 안 보이는 말들을 매일같이 듣는다. (더 웃긴건, 블록체인은 이제 막 시작해서 충분히 따라갈 수 있단다. 수학과 통계학 모르는 사람들은 그대로 있는데, 선형대수학에서 네트워크 이론으로 필요한 수학만 바뀌었을 뿐, 상황은 뭐가 달라진게 있나???)

이걸 Computer Science하는 친구들끼리, 아니 심지어 고졸 개발자들끼리 “나 저런 수학 모르는데, 너는 아냐?” “나도 몰라” 같은 이야기를 하고 있으니 우리나라가 몇 십년 뒤쳐진 것 같은 공포가 밀려오는 것이다. 똑같은 질문을 통계학과에 가서 다시한번 해 보시라. 필자처럼 통계학이 주 전공이 아니었던 아카데믹도 다 알고 있는 내용을 통계학 박사했던 사람들이 모를리는 없을거라고 생각한다. (뭐 학위 중에 관련 주제에 관심이 없었다면 또 모르겠지만)

우리나라 별로 밀리는거 없다. 코드 Copy & Paste하는 개발자들을 이 시장에서 몰아내고, 제대로 수학 & 통계학 훈련받고, 어떤 모델을 어떤 수학으로 모델링해야하는지 알아먹는 똑똑한 인재들을 공대말고 자연대에서 훈련시켜서 데리고 오면 된다. 데이터 센터라는 인프라만 훌륭하게 만들어 놓으면 된다. (솔직히 이게 공돌이 학부출신들이 할 일 아닌가?) 나머지는 자연대에서 수학과 통계학으로 잘 훈련된, 그 데이터를 이용하는 연구인력에 대한 지원만 해주면 충분하다. 이런데 쓸 평범한(?) 수학과 통계학은 한국의 아카데믹들이 하나도 밀릴게 없기 때문이다.

요즘 데이터 사이언스 해 보고 싶다고 잔뜩 바람이 들어서 학부 전공을 Computer Science나 Computational Statistics로 정하려는 고등학생들에게 한 마디 덧붙인다. 필자의 중학 3학년 겨울에 우리나라가 IMF 구제금융을 맞았고, 이걸보고 조지 소로스보다 더 거물이 되어서 유태인 자본을 금융시장에서 몰아내겠다는 망상으로 경제학을 전공했고, 취업하고나니 그 해에 글로벌 금융위기가 왔고, 머리를 더 써보자고 박사하고 났더니 퀀트 연봉 반토막났고, Data Scientist를 Hot job이라고 부르는 시장이 되어버렸다. 지금은 Data Scientist가 좀 “Sexy”해 보일지 모르지만, 정말 Brain Code를 해석하는 시대가 오면, 신경 연구하는 분들의 몸값이 폭등할 것이고, 그 땐 수백만장의 사진을 집어넣어야 특징을 찾아내주는 짝퉁 인공지능이 아니라, 약간의 데이터로 모든 분석을 다 해주는 진짜 인공지능이 구현된 세상이 될지도 모른다.

참고로 1980년대 초반, 1990년대 중반에 각각 한 번씩 Neural network 붐이 있었다. 물론 그 땐 “인공지능”이라고 설레발도 없었고 “알파고”같은 퍼포먼스도 없었지만, 꽤나 많은 CS 박사들이 여기 뛰어들었다가 “피봤었다”. 진짜는 아직 나타나지도 않았는데 왜들 이렇게 난리를 피우는지. 설레발 그만치고, 자기가 잘 할 수 있는거 하는게 맞는거 같다.

블록체인 투자 전문이라는 VC를 한 분 만났다. 인공지능이 세상을 이끄는 시대가 왔고, 그런 기술을 블록체인에 접목시켜서 비지니스의 혁신이 계속 일어날 것이란다. 곧 특이점이 오고, 그 때부터는 인류가 뭔가를 개발하는게 아니라, 프로그램이 자체 개발을 다 해서 지금까지 인류가 수백만년에 걸쳐 쌓아온 노하우와는 비교도 안 되는 어마어마한 발전이 앞으로 10년안에 일어날 거란다. (푸흡~)

VC와의 미팅은 언제나 둘 중 하나다. 필자의 블로그를 읽고, 괜히 아는체 했다가 다음 블로그 글의 비판 대상이 될까봐 눈치를 보는 VC와, 필자가 누군지 알지 못한 채 다른데서 열심히 떠들었던 말을 반복하는 VC들로 나뉘어진다. 아마 어지간한 스타트업 대표라는 사람들 수준이 다들 고만고만하니까 필자도 비슷한 수준으로 봤을테니 그렇게 자신감 넘치는 “세상 모르는 소리”를 읊으셨을 것이다. “혹시 머신러닝 말고 딥러닝이라는 신기술도 할 줄 아세요?”라고 묻던 스타트업 대표 하나 생각나네 ㅋㅋ

Pabii.co 블로그를 계속 읽으신 분들, 특히 수업에 찾아와서 직접 코드를 보신 분들은 더 깊게 공감하시겠지만, 인공지능 (AI)이라고 불리는 “기술”들은 엄밀하게 따지면 데이터를 바탕으로한 “자동화 알고리즘”이다. 말을 좀 바꾸면, AI라고 불리는 “프로그램”은 주어진 정보들을 바탕으로 “생각”하는게 아니라, 주어진 정보에서 뽑아낸 “규칙”을 “저장”하고 있다. “지능”이라는 단어를 붙여놓으니 마치 복잡하게 생각하는 능력을 갖춘 것처럼 들리지만, 사실은 빅데이터와 시뮬레이션을 바탕으로 예상 가능한 상황에 대한 매뉴얼을 마련해놓은 프로그램들이 돌아가는 것이다. 주먹구구식으로 if-then 조건만 걸었던 단순 자동화에서 데이터의 패턴으로 좀 더 다양한 경우의 수를 커버할 수 있는 자동화, 쉽게 말하면 데이터 기반의 (좀 더 고급) 자동화 시스템을 “인공지능”이라고 부르고 있다.

20세기 최고의 발명품을 세탁기라고 하더라. 가정 주부의 시간 대부분을 뺏던 옷 세탁 작업을 자동화한 덕분에 주부의 여가 시간이 대폭 늘어났고, 주부가 사회 경제 활동에 참여하거나, 남/여 독신 가구가 유지될 수 있는 조건이 갖춰지는데 결정적인 기여를 했다고 한다. 갑자기 인공지능 이야기를 하던 중에 왜 뜬금없이 세탁기가 나왔냐고? 둘 다 본질은 “자동화”이기 때문이다.

자율주행차? 차 주변에 달린 카메라가 눈의 역할을 하고, 내부 알고리즘으로 카메라의 영상과 데이터 베이스 안에 있는 다른 사물을 매칭한다. 덕분에 인간이 눈으로 직접 보고, 손과 발을 움직이지 않아도 되었다. 그럼 인간이 아예 운전을 안 해도 될까? 아직도 차량 속도가 빨라지면 카메라가 잡아내는 이미지의 수준이 떨어지고, 계산 모듈이 비슷한 사물을 매칭하는 시간 소모가 커서 상용화하기 힘들다는 비판이 나온다. 처음 가는 길, 혹은 도로가 미세하게 울퉁불퉁한 길에서 인간은 적절하게 반응할 수 있지만, 알고리즘은 데이터가 쌓여야 반응할 수 있다. 마치 팔만 얼룩이 진 세탁물을 세탁기에 넣었을 때 우리의 기대는 팔 부분만 세탁하는 거지만 옷 전체가 세탁되는 것처럼, 자율주행차 같은 “인공지능” 제품들도 “생각”해서 작동하는게 아니라 “암기”된 기준대로 작동할 뿐이기 때문이다.

(Source: GCN)

 

인공지능 개발의 난제? – by 모 전략컨설팅 회사

아래의 2개 (혹은 4개) 꼭지는 Mc모 유명 글로벌 전략 컨설팅 회사가 인공지능의 미래를 이야기하는 보고서에서 따온 것이다. 보고서 전체가 문돌이들의 풍부한 상상력이 담긴 글이라는 생각에 Trash Can으로 직행시켰다가, 이번 글에서 조목조목 비판해보고 난 다음에 Can 안으로 집어넣자고 스스로를 달래봤다.

  1. 인공지능은 현재 정체기인 성장율을 폭팔적으로 급등시켜줄 기폭제가 될 수 있다
  2. 하지만 투자대비 효율이 높은 상태는 아니고, 1-2년 사이에는 해결되기 힘든 많은 문제들이 여전히 존재하고 있다
    1. 생각하고 발전하는 AI를 만들었을 때, 그 통제 문제
    2. AI 개발을 통해 사라지는 노동 수요의 문제
    3. First mover advantage에 대한 믿음 때문에 서로간 연구 결과를 공유하지 않음

이게 단순히 데이터를 쌓아놓고 패턴을 찾아서 각 패턴별로 다른 액션을 끌어내는 프로그래밍에 불과하다는 사실을 전혀 모른채, 진짜 “지능”의 초기 단계인 것처럼 심각한 메세지를 던지는 이른바 “문돌이”들이 엄청나게 많다. (뭐, 필자도 문돌이다 ㅋㅋ)

 

1. 인공지능은 정말로 경제 성장율을 폭발적으로 급등시켜줄 기폭제가 될 수 있을까?

필자가 장기간 설명한대로, 인공지능은 데이터에 기반한 (쪼끔 더 고급) 자동화 기술이다. 그럼 자동화가 진행되면 경제 성장율이 폭발적으로 증가하나는 질문으로 바꿔볼 수 있을 것이다. 참고로, 인류 역사에서 1,2,3차 산업 혁명 모두 기계의 힘을 빌린 생산성의 증대로 부양 인구 숫자를 늘리고, 잉여 노동력을 만들어냈었다. 지금보다 더 자동화가 이뤄진다면 부양 인구는 늘어날 수도 있겠지만, 정작 잉여 노동력이 늘어날지는 잘 모르겠다. 무슨 말이냐고?

고령화 사회에 대한 대비를 해야한다, 출산율이 무서운 속도로 떨어지고 있다는 류의 인구 구조 변화에 대한 경고 메세지가 언론을 타고 다닌지도 이제 20년이 다 되어가는 시점이다. 생활 수준은 향상되었는데, 정작 생산성 증가 속도가 그에 따라오질 못하니 인구를 감당하지 못해서 생긴 현상인데, 세대별로 배운 기술 수준도 천차만별이고, 당연히 세대별 생산성도 크게 차이가 난다. 말을 바꾸면, 경제 성장율 폭발은 잉여 노동력이 된 구세대들이 4차 산업시대에 걸맞는 수준의 노동 생산성을 유지할 수 있느냐에 달려있다고 본다.

그 동안은 인구가 계속 증가했으니 구세대의 저생산성이 감춰졌겠지만, 이렇게 빠른 속도로 고령화되고 있는데, 구세대가 시대 흐름에 맞는 생산성을 보여주지 못한다면 잉여 노동력이 아니라, 잉여 소비력만 갖춘 인력으로 남게 될지도 모른다. MS-DOS나 Linux 같은 운영체제도 아니고 윈도우에 스마트폰 같은 쉬운 UI도 버거워하시는 세대들에게서 과연 그런 기대를 할 수 있을지는 잘 모르겠다.

(Source: Medium)

 

2-1. 생각하고 발전하는 AI를 만들었을 때, 그 통제의 문제는?

인공”지능”은 정말로 “생각”하고 “발전”하나? 그냥 데이터에 있는 패턴들을 매칭하는 “암기” 수준인데? 차라리 생명공학 연구실에서 복제 인간을 만들어냈을 때, 그 생명체의 인권이 있냐는 질문이 좀 더 적합하다고 생각한다.

애시당초 언론이 열심히 받아적기하고 있는 AI는 “지능”이 아니라 “패턴 매칭 알고리즘”에 불과하기 때문이다. 인간도 반복학습을 통해 뭔가를 배우니 “패턴 매칭 알고리즘”을 갖고 있는 생명체가 아니냐고? 그런데 인간은 정말로 “생각”하는데, “인공지능” 알고리즘은 어떻게 “생각”하는거지?

한 가지를 보면 열 가지를 깨닫는 “천재”는 어떻게 만들어 내야할까?

인공지능이라고 불리는 “패턴 매칭” 수준의 자동화 시스템이 진정한 “지능”으로 거듭나기 위해서는 반드시 “문일지십”을 할 수 있는 형태가 되어야한다.

Bayesian 통계학이 머신러닝에 적용되면서 이제 겨우 걸음마를 뗀 상태인 Dynamic updating도 새로운 정보를 생산해내는 능력은 없다. 단순히 snapshot 정보만 가공하다가 시간의 흐름에 맞춰서 가공되는 모델값을 업데이트할 수 있을 뿐이다. 최소한 지금 우리가 알고 있는 지식의 체계 아래서는 “생각하고 발전하는 AI”란 꿈꾸는 자들의 망상일 뿐이다.

 

2-2. AI 개발을 통해 사라지는 노동 수요의 문제

자동화가 이뤄지면 필연적으로 노동 수요가 기계로 대체될 수 밖에 없다. 말을 자동차로 대체하고 나니 승마는 귀족들의 전유물이 된 것처럼, 아마 자율주행차가 상용화되면 운전은 넷기어에서 나오는 드리프트처럼 부유층의 오락으로만 남을지도 모른다. 자율주행차 덕분에 택시, 트럭 등의 운전수가 알고리즘으로 교체되면 그런 인력들을 어디에서 소화할 수 있을까? 그보다, 사용자들이 계속 고용을 하려고 할까?

임금은 계속 오르고, 노동자들에게 보장해줘야하는 권리는 계속해서 추가된다. 투표로 먹고사는 정치인은 유권자의 대다수인 고용 노동자들의 복지를 개선하는 정책을 취하고, 노동력을 최대한 짜내야하는 기업가는 노동 비용이 더 저렴한 나라로 탈출하거나, 자동화 시스템에 의지할 수 밖에 없다.

여기까지만 들으면 노동자들이 21세기판 러다이트 운동이라도 해야할 판국이 아니냐고 생각하겠지만, 저런 자동화 시스템은 누가 만드는지 한번 되물어 보시라. 로봇 설계하고 제작하는 엔지니어가 필요하지 않을까? 산업 구조의 변화는 노동자를 해고하기만 하는게 아니라, 새로운 노동력을 고용하는 방식으로도 작동한다. 데이터 사이언스에 대한 붐이 불어서 석사 프로그램이 우후죽순처럼 생겨나고, 필자같은 허접 블로그 운영하는 사람에게도 문의 메일이 몰려드는건 사람들이 시대에 맞춰서 변화하고 있다는 증거라고 봐도 무방할 것이다.

산업혁명으로 농경지에서 쫓겨난 농노들이 런던, 맨체스터, 글래스고 같은 대도시들에 몰려들면서 새로운 노동력을 흡수했고, 도시 내에서 생활 공간을 제공해주는 고층 건물, 빠른 이동을 도와주는 도로 포장, 자동차, 지하철 공급이 덩달아서 이뤄졌다. 정보화 혁명이라고 하더니 컴퓨터 프로그래밍이 갑자기 각광을 받게 됐고, IT산업으로 억만장자가 된 사람들이 생겨나면서 예전에는 컴퓨터 수리공으로 입에 풀칠하기 바쁜 사람들 몇 명만 있던 산업이 미국 실리콘 밸리와 중국의 선전을 이끌어가게 됐다.

노동 수요가 사라졌다고? 실리콘 밸리의 1-bed flat 한 달 렌트비가 지난 10년 사이에 3배도 더 뛰었다는건 무슨 뜻일까?

(Source: Paragon Real Estate)

 

2-3. First mover advantage에 대한 믿음 때문에 서로간 연구 결과를 공유하지 않음

이건 도대체 또 무슨 뚱딴지 같은 분석인지 모르겠다. 당장 Github을 보라. 필자도 모든 아이디어를 Scratch부터 다 만들지 않고, 다른 박사들의 논문도 뒤져보고, Stack에 물어보고, Github 코드들을 보면서 계속 고민한다. 가끔은 학회에 가서 비슷한 고민을 했을 법한 사람들과 대화도 나누고, 내가 했던 리서치의 결과물을 공유하면서 상대방의 Insight도 얻어온다.

First mover advantage는 네트워크 효과로 사람들이 모이기 시작하면 성장 속도가 기하급수적이 되는 SNS 서비스 같은 분야 정도 밖에 없다. ARJ, ZIP 같은 압축 프로토콜을 한번 생각해보자. 비전문가들은 당연히 모르겠지만, 이게 대표적으로 PCA의 아이디어를 파일 시스템에 적용하는 방식인데, 일반에 널리퍼진 ZIP 계열의 프로토콜만 있는게 아니라, 계속해서 빠르고 고효율을 지향하는 새로운 프로토콜이 전세계 곳곳에서 생겨나고 있다. 요즘들어 안드로이드 운영체제에 많이 쓰이는 lz4라는 압축 프로토콜은 기존의 lz의 문제를 해결하려는 엔지니어들의 Joint work의 산물이기도 하다.

내 논문을 잘나가는 교수들에게 뺏긴 경험이 있기 때문에 무조건 협업 시스템을 긍정하고 싶지는 않지만, 내 논문을 뺏어갔던 교수도 그걸 Publish해서 명성을 쌓기 위함이지, 그걸 훔쳐서 자기 방구석에서 혼자만 낄낄거릴려고 하지는 않았을 것이다. 그런 연구가 산업에 적용되고 특허만 갖고 있으면 독점 이윤을 오래 누릴 수 있는 시대도 아니다. 수만명의 연구자가 같은 주제에 달려들어서 새로운 Notch를 하나 더 얹으려고 노력하고 있기 때문이다.

연구 결과물을 Publish해서 학문적인 명성을 쌓고 싶은 욕심과, 산업에 적용해서 큰 돈을 벌고 싶은 금전적인 욕심 사이에 어느 쪽이 더 고상한지, 속물스러운지 따위에 대한 논쟁을 하고 싶은 생각은 없다. 다만 어느 쪽이 되었건 인간의 욕심을 충족시켜주는 시스템이 다른 산업에 비해 굉장히 잘 작동하고 있는 분야에 “서로간 연구 결과를 공유하지 않음”이라는 평가를 내리는건 너무 섣부른 판단인 것 같다.

 

나가며 – 기술력이란?

얼마전, CTO 면접자리에서 자기가 인공지능에 대해서 엄청나게 많이 알고 있는 것처럼 주장하는 전형적인 코더를 한 분 만난적이 있다. 본인은 논문들을 계속 읽는다면서 새로운 지식을 빠르게 흡수하는 개발자인 것처럼 포장하시던데, 외람된 표현이지만 정말 “속 빈 강정”인게 너무 훤히 눈에 보이더라. 낙하하는 물체에 대한 이미지 스캔 데이터를 바탕으로 스캔된 물체가 어떻게 이동하고 있는지를 가르쳐주는 새로운 인공지능이 곧 나온다면서, 인공지능이 발전하는 속도가 무시무시하다, 니가 하는 사업은 인공지능이 안 들어간 것 같다, 그 사업 포기하고 새로운 인공지능을 활용하는 사업 모델로 갈아타라는 식으로 이야기 하시더라.

인공지능이라는게 데이터를 처리하는 알고리즘이라는 걸 제대로 인지하지 못한 채, 단순하게 코딩이 인공지능인 것처럼 착각하는 바보를 또 만났다는 생각에 허탈함이 차오르더라. (얼굴에도 드러났을라나? ㅋㅋ) 더 황당했던 부분은 물건이 낙하하는 걸 인지하는 인공지능은 새로운 레벨의 인공지능이고 이걸 자기는 정말 잘 아는 것처럼 주장하는 사람이 정작 그 알고리즘의 핵심인 Bayesian 통계학을 배운 적이 있기는 커녕, 용어조차도 처음 들어보는 표정을 지었다는 거다. 특정 사물에 대한 Dynamic image scan (시간적 순서를 달리하면서 움직임을 파악하기 위한 스캔 작업)의 결과물로 움직임을 계산하는 작업은 Bayesian 통계학의 대표적인 적용 분야다. 시간적 순서에 따라 새롭게 업데이트 되는 데이터를 바탕으로 여러 sub-model / sub-hypothesis에 대한 가중치를 바꿔가면서 모델을 업데이트하는 작업이기 때문이다. (필자의 모델링 수업 1번째 시간에 나오기도 한다.)

요즘 필자의 CTO 면접은 노동 수요가 사라지는게 아니라, 노동 수요의 요구 사항이 바뀐다는 좋은 예시, 과거 세대의 생산성은 미래 세대의 생산성을 따라올 수 없다는 좋은 예시가 아닐까 싶다.

 


(추가)

위에서 언급한 CTO 면접자가 자기가 수학을 모르는것과 상관없이 낙하하는 물체의 방향을 인지하는 “직관 물리학”을 소개한 것에 지나지 않는다고, 베이지안은 그거랑 무슨 관련이냐고 따로 (분노의) 연락을 하시길래, 왜 Bayesian이 중요하다고 했는지, 왜 수학 모르면서 아는체 하지말라고 했는지 좀 배우시라고 몇 줄 더 부연설명한다.

물체가 어느방향으로 움직이는지 직관적으로 알아내는 그런 “지능”이 들어간 시스템이 인공지능이 아니라, 입력되어 있던 데이터 모델과 새로운 데이터가 얼마나 매칭되는지를 계산하는게 요즘의 인공지능이라고 위에 길게 설명했으니 이 부분은 패스한다. 그럼 물체 사진을 입력했을 때, 하방이동 중인지 상방이동 중인지 구분하려면 기존의 데이터 모델은 어떻게 만드는걸까? 당연히 하방이동 중인 사진, 상방이동 중인 사진들로 내 모델을 “Learning” 시켜놨어야하지 않을까? 그렇게 움직이는 동체의 사진을 여러장 입력하는 작업이 바로 Dynamic image scan이다. 그리고 그런 데이터로 모델을 업데이팅 시키는 방식이 위에 언급한대로 Bayesian 통계학이고.

한참후에 연락이오더니, Neural net으로 이걸 맞출 수 있다면서 또 물체의 이동 방향도 모르는채로 Un-supervised learning을 하는 “인공지능”이라고 주장하시던데, 첫째, neural net은 feed forward, back propagation 계산 방식의 특성상 무조건 Supervised learning이 될 수 밖에 없다. Hobfield net처럼 내부적으로 뱅뱅돌아가는 시스템이면 또 모를까. 둘째, Bayesian을 안 쓰고 모델링을 한다고 해도, 모든 사진들에 대해서 이동 방향의 반대방향으로 잔상이 남는다는 점을 입력값으로 넣어줘야한다. 사진 1번은 하방 잔상이고 상방 이동 중, 2번은 우방 잔상이고 좌방 이동 중 등등. 이런 방식으로 Learning의 기초 데이터를 입력하지 않고 어떻게 모델링을 한단 말인가?

개발자들이 일반적으로 Un-supervised learning에 대한 맹목적인 기대를 갖고 있는데, (복잡하고 어려운 통계학을 알고 싶지 않으니 그냥 데이터랑 코드가 좀 알아서 척척척 해 줬으면 좋겠다는 희망일 것이다.) 이렇게 만들려면 사진마다 방향을 일일히 다 지정해줘야하고, Outlier 데이터들을 다 제거해야한다. 방향 잡을 때 방위는 몇 개인가? 동서남북만 잡을래? 더 복잡하게 8개? 16개? 속력에 따라 사진에 남는 잔상이 다를텐데? 직선으로 움직이지 않고 곡선으로 움직이는 물체는? 야구공, 축구공처럼 스스로 고속 회전이 있는 물체는? 잔상 모양이 다들 제각각일텐데? 이러느니 Bayesian 알고리즘으로 데이터 전처리를 하는게 훨씬 더 Intellectual & Efficient한 작업이라고 생각한다. 그래서 테슬라가 자율주행차에 Bayesian 알고리즘을 도입하고 있는 것이다.

수학과 통계학을 모르면 “우와~ 새로운 인공지능이다. 이거봐라, 이렇게 빨리 발전한다.” 이런식의 반응을 보이겠지만, 밑바탕의 모델을 잘 알고 있으면 “어? 이건 이런 모델을 이용했겠네, 비슷한거 만들려면 어떤 방식으로 데이터를 만들고, 어떻게 데이터 입력구조를 만들어야할까?” 같은 질문을 하게 된다. 위에서 언급했듯이, 이게 기술력이고, 이게 내공이다. 필요한 능력은? 코딩인가? 수학/통계학 모델링인가? (참고로 위에 언급한 아이디어들 대부분이 맥락만 다른 방식으로 우리 회사 모델에 적용되고 있다. 그럼 이 사업이 인공지능 기반이라고 부르는데 좀 더 공감해주실 수 있는가?)

모든 사람은 본인이 대단히 똑똑하다는 착각 속에 빠져산다. 박사가서 지도교수에게 후드려맞고, 논문 발표장에서 다른 연구자들에게 폭격을 맞으면서 스스로를 절차탁마하는 시절을 보내지 않으면, 회사에서 상사에게 쿠사리를 먹어가며 본인의 부족함을 메워넣는 지난한 시간을 보내지 않는 한 그런 착각을 벗어나기가 참 어렵다. (다 겪어봤고, 필자도 멘탈 박살나서 괴로웠던 경험이 평생에 걸쳐 쌓여있다.) 자기가 “소개”(라고 하지만 지식 자랑으로 느껴졌던)한 지식이 상대방의 눈에 어떤 방식의 알고리즘인지 한 눈에 각이 나오는 걸 본 적이 없었던 탓에, 또 본인이 그런 수학적인 내공을 쌓은 적이 없었던 탓에 위의 저런 비판이 기분이 나빴을 수는 있다. 근데, 더 늦기 전에 깨우쳐야 필자같은 사람들한테 욕 먹는 횟수가 줄지 않을까? 앞으로 그 분과의 대화에서 느낀 당황스러움이 몇 차례 더 후속 포스팅에 등장한다. (물론 개인의 권익 보호를 위해 개인정보는 제공하지 않는다.) 기분 나쁘다고 불평하는 연락하시기 전에, 이걸 배워서 남 앞에서 부끄러울 일을 좀 줄여야겠다고 스스로 다잡는 기회가 되시길 바랄 뿐이다.

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

알파고? 로봇이 통치하는 세상? 매트릭스 속에서 건전지로 바뀐 인간? 아마 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년부터 이미 있었는데, 이걸 이제서야 갖다 붙이고는 자기네가 인공지능 “최선두 주자”라는 포털 사이트들을 보다가 글이 길어져 버렸네.

요즘 4차 산업혁명이라는 단어가 화두다. 도대체 누가 만들어냈는지는 잘 모르겠지만, 그 단어에서 가장 핵심 키워드는 “인공지능”인 것 같은데, 인공지능 만들어 본 적도 없는 사람들이 너무 뇌피셜을 많이 쓰고 있고, 필자에게 이런게 가능하냐고 물어보는 사람들이 너무 많아졌다. 사실 필자도 아는거 별로 없는데, 아래 게임 인공지능 예제로 한번 필자가 알고 있는 내용들을 정리해보고 싶다.

 

들어가며

필자도 여느 80년대생 한국 남성들과 마찬가지로 2000년대 초반에 스타크래프트라는 게임에 빠져 살았다. 처음에는 컴퓨터와 1:1로 연습했고, 나중에는 3:1로 연습해서 이기는 수준이 되니 친구들과 함께 팀플레이할 수 있는 수준이 되더라. 그 시절 게임에 들어있던 “인공지능”이 보통의 한국인 게임 유저 1/3명 정도의 능력을 갖추었다는 이야기다. 물론, 컴퓨터에게 꼼수를 쓰면 더 쉽게 이길 수 있는 방법이 많고, 컴퓨터는 언제나 인간보다 비 효율적으로 유닛을 생산, 조합하고 전략을 짰다.

알파고의 대성공을 보고 지난 1년 반 남짓동안 인공지능 개발에 엄청나게 많은 돈이 투자되었고, 사람들의 기대감도 커졌는지 스타크래프트 인공지능도 지금보다 더 잘하게 만들 수 있지 않을까는 이야기가 계속 돌았다. 최근에는 스타크래프트 프로 선수와 인공지능간 대결이 열렸는데, 필자의 예상대로 인공지능이 참패를 했다.

왜 인공지능의 참패를 예측했냐고? 여기 두 개의 키워드가 있다. 불확실성(Uncertainty)계산비용(Computational Cost).

 

1. 인공지능 모델링

필자의 예측을 설명하기 전에 스타크래프트 인공지능을 어떻게 만들었을지 한번 짐작해보자.

우선 반칙을 안 한다는 전제아래 맵핵을 안 쓰고 다른 유저의 정보를 알려면 정찰 유닛을 보내야하고, 그 유닛의 시야에 들어오는 정보들을 보고 해석해야한다. 미니맵을 실시간으로 스캔하는 알고리즘은 아마도 CNN이었을 것이고, 거기서 우리 편과 색이 다른 유닛이 나오면 적군으로 인지하도록 만들면 되겠다. 근데, 정찰 유닛을 어느 방향으로 보내야할까? 4인 플레이 맵에서 1:1로 경쟁하고 있으면, 내 위치에 따라 유닛을 보내는 방향이 달라질텐데, 그런 부분은 어떻게 Learning을 시켰을까? 여기서 첫번째 난관이 보인다. 이걸 인공지능으로 만들지 말고, 그냥 IF – THEN을 수십가지 경우의 수로 만들어서 내 위치에 따라 정찰 유닛을 보내는 방향을 정한다치면, 상대방과 언제 어느 지점에서 조우하느냐에 따라 또 상대방의 위치를 가늠하는 확률 게임을 해야한다. 당장 정찰 부분부터 IF – THEN으로 도망가고 싶을만큼 고려해야하는 이슈들이 많다.

자 그다음 적군의 방향에 따라, 적군의 설치 유닛에 따라 내가 생산하는 유닛과 수비에 쓰는 유닛이 다 달라지는데, 이런건 또 어떻게 Learning을 시킬 수 있을까? 새로운 정보가 주어지면 실시간으로 업데이트해서 새 전략을 짜내야하는데, 바둑처럼 착점까지 시간을 주는 것도 아니고, 그렇다고 미리 계산했던 값을 계속 써먹을 수 있을만큼 전황이 안정적으로 변하는 것도 아니고…. 실력없는 필자는 더 이상 기획할 용기를 잃었다.

이렇게 “니가 못하니까 인공지능의 참패를 예측했냐?”고 물으실 분도 있을 것 같은데, 위의 간단한 사고 실험에 필자가 제시한 두 가지 키워드가 모두 숨어있다.

 

2. 불확실성

이미 다른 글에서 여러번 설명했지만, 머신러닝 모델링은 결국 통계적인 테크닉을 이용해 데이터에서 패턴을 찾아내는 작업이다. 그리고 데이터에 복잡한 신호가 여럿 섞여 있으면 정확한 패턴을 찾아내기가 매우 어렵다. 기존에 Deep Neural Net을 비롯한 여러가지 머신러닝 모델들이 성공을 거둔 영역을 보면 데이터의 형태가 정형화되어 있는 바둑 게임, 음성과 문자, 그림 인식 같은 영역에 국한되어 있다. 왜 다른 영역으로 확장되지는 못할까? 왜 주가 예측을 하는 알고리즘은 못 만들어낼까? 주가에는 불확실성으로 야기되는 결과가 엄청나게 반영되어 있기 때문이다. 데이터에 패턴이 있다면 정규 분포를 따를 수가 없는데, 주가를 6개월치 모아서 주가 수익률을 그래프로 그려보라. 영락없이 정규 분포가 나올 것이다. 어릴 때 동전 던지기 게임을 하면 동전이 휘어있지 않은 이상 앞면과 뒷면이 나올 확률은 반반이고, 이런 반반 확률을 수천번 반복하면 앞면이 나오는 숫자가 정규 분포에 수렴하는 모델을 아마도 통계학 수업 시간에 한번쯤은 보고 연습문제를 풀어본 적이 있을 것이다. 반반이라는 이야기는 예측을 못한다는 이야기고, 그렇게 예측을 못하는 데이터를 쌓으면 정규분포가 되었다는 걸 뻔히 보고서 주가 움직임을 보고 패턴을 예측한다는 이야기를 하는 사람들을 보면….

(주가에서 패턴을 찾으려면 주가말고 다른 외부 데이터가 주가에 어떤 영향을 미치는지, 유사한 데이터가 어떤게 있는지 보는게 그나마 좀 합리적인데, 그렇게 상관관계가 높은 변수들이 많이 있을까….)

스타크래프트라는 게임을 한번 해보면 알겠지만, 불확실성의 연속이다. 고려해야하는 경우의 수도 많고, 그 경우의 수의 조합이 실시간으로 바뀐다. 언뜻보면 알파고와 비슷한 것 같지만, 불확실성의 가능성이 훨씬 더 크다. 단적으로, 상대편 배럭에 불이 켜졌을 때, 생산되고 있는 유닛이 마린일지, 파이어뱃일지, 고스트일지, 메딕일지 어떻게 알 수 있을까? 프로토스가 리버 드랍을 시도할 때, 스캐럽이 어디에서 어떻게 터질지 미리 알 수 있는 방법이 있나?

스타크래프트 게임계에서 “황제”라고 불렸던 임요환 선수의 플레이를 보면, 예측하지 못했던 전술로 상대방을 당황시키거나, 아주 찰나의 노출을 보고 순간적으로 전략을 바꾸는 경우를 자주 볼 수 있었다. 수 많은 유저들이 그 선수의 플레이 스타일에 환호했던 가장 큰 이유는 불확실성이 가득한 전장에서 그 불확실성을 무기로 삼기도 하고, 불확실한 정보 속에서 핵심 메세지를 빠르게 찾아내는 점 때문이었을 것이다.

인공지능으로 똑같은 기능을 하는 모델링을 하기 위해서 가장 필수적인 부분은 바로 그런 불확실성을 어떻게 처리하느냐다. 게임 시작하고 3분이 지난 시점에 적이 9시 방향쪽에서 정찰이 오는 것 같은 순간, 3분이라는 시간이 흘렀기 때문에 실제로는 9시 방향에 적 진지가 있는게 아니라, 다른 곳을 다 정찰하고 늦게 도착했다고 판단해서 12시 방향에 적 진지가 있을 것이라는데에 높은 확률을 두고 게임을 진행한다고 해보자. 이 시점에서 9시 지역과 12시 지역에 줄 수 있는 확률이 1:2라고 가정한 상태에서, 내가 정찰하고 있는 유닛이 1시 지역 쯤에서 상대방의 또 다른 정찰 유닛과 만났다면, 12시 지역에 적의 본진이 있고, 9시 지역에 보냈던 정찰 유닛이 아군을 못 발견해서 6시 지역으로 이동하는 동안 1시 쪽 방향으로 추가 정찰 유닛을 보냈을 것이라고 짐작하는 것이 가장 합리적이라고 생각한다.

인간 플레이어는 이런 정보를 바탕으로 단순히 적군의 위치만 파악하는 정도에서 끝나는게 아니라, 적이 정찰 유닛을 2개나 보낼만큼 아군의 위치를 빨리 알아내야하는 전략을 쓰고 있다는 생각까지 할 수 있다. 정찰 유닛의 종류에 따라 적군이 어떤 초반 전략을 짜고 있는지도 예상해볼 수 있고, 적군 진지를 살펴보지 않더라도 미리 방어 전략을 짤 수도 있다.

(오랜만에 스타크래프트 하고 싶어져서 큰일이다 ㅎㅎ)

인공지능이 게임하는 방식을 보니, 예상대로 불확실성에 맞게 대응하는 방식으로 만드는 걸 포기했다는 감이 왔다. 대규모 물량전을 펼치는 위주로 단조로운 빌드만 전개되던데, 아마 스타크래프트 인공지능 개발하던 사람도 필자가 위에 제시했던 내용을 갖고 불확실성을 어떻게 처리할지 심각하게 고민했을 것이다. 그리고 결과물에서 봤듯이 불확실성을 다루는 쪽으로 모델링을 한게 아니라, 불확실성을 없애는 쪽으로 모델링을 했다. 알파고는 인간이 바둑판 위에서 반응할 수 있는 데이터 조합에 적절한 반응만하면 되었지만, 스타크래프트에서 인간이 반응할 수 있는 가능성의 조합은 바둑판처럼 1차원적이지 않고, 유닛의 종류, 반응 위치 등등 조합이 너무 다차원적이다.

 

3. 계산비용

며칠전 수업 시간에 Neural Net을 열심히 설명하면서 Logistic regression을 여러개 중첩한 것과 같고, 이 때 Feed forward + Back propagation 매커니즘은 사실 각 Node의 가중치를 행렬로 계산하는 작업에 불과하다고 설명하고 있었다. 그 때 학생 한 분이 그럼 그 모델은 어디에 저장하냐고 물으시더라. 보통 이렇게 만든 모델은 실시간으로 꺼내써야하는데, 대형 서버에서 큰 데이터 베이스를 이용해 복잡한 계산을 한 결과값은 어디에 저장하면 될까? 실시간으로 꺼내써야하니 보통은 Memory DB라고 속도가 빠르고 좀 비싼 데이터 베이스에 저장한다. 그래야 새로운 데이터가 입력되었을 때 그 값에 맞춰서 바로 결과값이 나오고 반응을 결정할 수 있기 때문이다.

문제는 대형 데이터를 이용해서 모델링을 할 때, 엄청난 계산 비용, 특히 시간이 많이 걸리기 때문에 단순히 광고 타겟팅 하는 모델만해도 실시간으로 업데이트하기가 매우 힘들다. 보통 2시간 단위, 4시간 단위로 데이터를 모아서 계산한 결과값을 Memory DB에 새로 업데이트 해주는 방식으로 돌아가는데, 저 위의 스타크래프트용 인공지능 모델은 도대체 몇 개의 반응 함수를 만들어야할까? 특히 불확실성을 다 고려하도록 만들려면 숫자가 어마어마하게 많을텐데? 거기다 알파고처럼 정해진 규칙이 있고 단차원적인 데이터 매칭으로 대응 방식을 짜는게 아니라, 다차원적인 불확실성을 다 감당해야하는데? 그걸 다 계산한 값을 운좋게 만들어낼 수 있다고해도 Memory DB에 입력해야하는 값만해도 엄청나게 클 것 같다.

스타크래프트 인공지능 제작팀이 불확실성에 대한 대응을 포기하고 물량전으로 전략을 잡은 두번째 이유가 바로 이 “계산비용” 때문이라고 본다. 실시간으로 전략 수정을 계속해주려면 인간 유저의 반응이 이미 데이터화 되어 있어서 그 값에 맞게 바로 대응 전략 X번을 고르도록 하거나, 아니면 뒤에서 돌아가고 있는 모델이 엄청나게 빠른 속도로 계산을 해내야하는데, 이 두가지 모두가 불가능한 상황이었을 것이다.

필자가 요즘은 게임을 잘 안 해서 최신 경험치를 갖고 있지는 않지만, 일반적인 컴퓨터 인공지능이 예전과 비교해서 구조적으로 크게 바뀐 점은 없다. 예전에도 IF – THEN을 이용해서 XXX라는 조건이 발동되면 YYY라는 대응을 하도록 하는 알고리즘을 만들고, 그런 알고리즘 몇 개가 대부분의 경우의 수를 커버할 수 있도록 단순하고 포괄적인 알고리즘을 만들었을 것이다. 그러다 패턴을 좀 더 복잡하게 인식할 수 있게 되면서, 좀 더 다양한 알고리즘으로 좀 더 복잡한 대응을 할 수 있도록 알고리즘을 만들게 된 부분이 있고, 그런 복잡한 알고리즘을 만들 때 드는 계산 비용이 감소했다는 점이 예전과 달라진 부분이다.

온도차에 따라 금속의 팽창이 달라지는 점을 이용해 전원을 끄고 켜는 바이메탈은 단순한 목적을 수행하면서 온도가 금속의 팽창에 전달되는데 걸리는 시간만큼의 “시간 비용”이 들었다. 로봇 청소기 정도로 진화한 인공지능은 더 이상 앞으로 나아갈 수 없는 벽을 만나면 되돌아 가도록 프로그래밍을 했는데, 센서가 가져다 주는 정보와 벽에 대해서 기존에 갖고 있는 정보가 일치하는데 걸리는 시간만큼의 “시간 비용”이 드는 방식이다. 알파고는 이세돌의 한 수에 어떻게 반응해야할지 데이터 베이스를 다 훑어서 승리로 이끌어주는 최적 Path 몇 개를 찾아내는 (계산하는게 아니라, 찾아내는) 시스템이고, 그 데이터 베이스를 뒤지는 시간만큼이 “시간 비용”이 된다.

 

정리하며

알고리즘이 작동하는데 “시간 비용”이 매우 작아야하는 스타크래프트 인공지능은 불확실성을 어디까지 고려할 것인가, 얼마나 빠른 시간 안에 전략을 선택할 수 있을까에 대한 상충관계를 타협할 수 있는 새로운 알고리즘을 만들어내기 전까지는 더 이상 큰 발전을 하기 힘들 것이라고 생각한다. 구글의 딥마인드가 바둑 이외에 다른 전략 시뮬레이션 게임에 같은 수준의 인공지능을 못 만들어내는 것도 같은 이유다.

좀 더 쉽게 정리하면, 4차 산업혁명이라고 설레발을 치고, 인공지능이 뭔가 새로운 것인처럼 포장하는 것도 과대포장에 지나지 않는다는 뜻이다. 솔직하게 “비선형 패턴 찾기” 알고리즘이라고 말하면 아무도 관심을 안 가질 것 같으니까 그럴듯한 용어로 포장되어있고, 그 포장을 더 큰 포장으로 장식하면서 밥 벌어먹고 사는 사람이 참 많은 것 같다.

저런 알고리즘 만들어 내는데 가장 중요한 능력이 뭘까? 코딩을 잘 하는 능력? 글쎄다… 일단 기획을 어떻게 해야할지, 불확실성을 어떻게 모델 안에 내재화해야할지 전혀 감이 없는 필자의 입장에서 가장 필요한 능력은 수학과 통계학인 것 같다. 요즘 초등 교육에도 코딩 넣는다고 그러던데, 필자의 짧은 소견으로는 코딩을 넣을게 아니라 저런 수학적인 알고리즘 만들어 낼 수 있는 몇 명의 천재를 양성할 수 있는 교육이 진정한 4차 산업혁명용 교육인 것 같다.

어차피 코딩 교육도 다른 과목처럼 학교 졸업하면 다 까먹는 애들이 태반일테지만, 수학 천재가 만들어놓은 혁신은 영원하지 않을까?

 

 

 

강의 4회차에 빅데이터 활용을 위한 차원 축소 (Dimensionality Reduction)을 설명하면서 Principal Component Analysis (PCA)를 수학 빼고 최대한 직관적으로 가르치려고 노력하는데, 학부 기초 수학 수업인 선형대수학에서 나오는 Eigen vector라는 개념을 이용해 데이터들을 새로운 축에서 재해석하고, 새로운 축들 중 값이 큰 축만 골라내면 거의 손실없이 빅데이터의 특성을 모두 담을 수 있는 작은 데이터 셋을 만들 수 있다는 방식으로 설명한다. (이래서 선형대수학을 아예 모르면 데이터 사이언스 강의 듣기 어려운 것 같기는 하다.)

이번 달 강의에 오셨던 학생 분 중 정말 철학자가 아닐까 싶은 분이 한 분 계셨다. 그 연배 있으신 학생 분은 항상 복습하고 인터넷 뒤져서 찾아낸 자료 중 일부를 공유주시곤 했는데, 그 4주차 강의 복습을 하신 자료 중 생물학과에서 인간을 구성하는 46개의 염색체 안에 있는 개별 게놈(Genome)의 기능을 파악한 데이터를 염색체별로 정리하는 것이 아니라, 같은 기능을 하는 게놈을 묶은 Eigen Gene이라는 설명을 하는 슬라이드는 정말 충격적이었다. 현미경으로 보는 염색체 1번부터 46번이라는 인간이 정리하는 방식의 데이터 인식이 아니라, 게놈 각각의 기능에 맞춰 염색체 단위가 아니라 기능 단위로 데이터를 재정리하는 것이 마치 자연이 만들어 놓은 방식을 역추적해서 새로운 축으로 재해석하는게 PCA인 것 같다는 식으로 메일을 주셨는데, 이 정도의 철학적인 이해를 마주하고 나니, 그동안 필자가 선형대수학을 헛공부했구나는 생각에 고개를 못들겠더라.

사실 머신러닝이건 생물학이건 모델링의 영역으로 들어가면 모든 구성 요소는 수학과 통계학이고, 더 아래에는 철학이 깔려있다. 학부시절, 지식을 잡학다식하길 좋아했던 필자가 미학과의 미학원론*을 들으며 알게된 철학과 친구를 수학과 2학년 수업인 해석개론에서 다시 만났는데, 해석개론이 철학과 전공 인정 수업중 하나라고 하더라. 보통 해석개론은 수학에서 증명을 하는 내공을 길러주고, 앞으로 계속 수학 증명으로 깊게 들어갈 능력이 있는지를 판단하는 가늠자 같은 수업인데, 그래서 보통 경제학 전공자들 중 박사 유학을 고민하는 친구들 사이에 필수적인 수업인데, 이런 수학 수업이 철학과 전공 인정 수업이라니… (필자도 문돌이긴 하지만, 그 이후로 인문대 친구들이 수학 못할 것이라고 함부로 가정하면 안 된다는 걸 뼈저리게 느낀 사건이다.)

(* 미학, 철학, 종교학은 사실상 하나의 원류에서 시작하는 학문이다. 잘 모르는 사람들이나 미학은 미술이고, 종교학은 목사나 스님되는거라고 생각하지, 실상 세 학문의 출발점은 플라톤과 아리스토텔레스, 피타고라스를 위시한 고대 그리스 소피스트들이다.)

나이가 더 들고, 공부를 더 하면서 수학이 사실은 철학이고, 증명도 논리학이라는 걸 깨닫게 되면서, 틈나는대로 철학 서적들을 찾아서 읽는다. 그러던 차에 위에 살짝 언급한 철학자 풍의 수강생께서 7회차 수업 후에 아래의 책 한권을 선물해주시더라.

 

철학하시는 분이 머신러닝을 철학적인 관점에서 바라본 내용인데, 일부 신문기사처럼 “인공지능이 철학적으로 재해석되어야된다”는 둥, “인공지능에 철학적 관점이 필요하다”는 둥의 뚱딴지 같은 내용과는 거리가 멀고, 책 저자가 수학 공부를 참 많이 한 것 같아서 책 페이지를 넘기면서 참 반가운 부분이 많았다. 그 중 가장 눈에 띄는 부분은, Supervised learning이 아닌 영역, Un-supervised learning으로 접근하고 있는 영역에서 별로 성과가 없는 이유를 설명하면서 Stochastic process와 생물학적인 진화를 연결짓는 부분이었는데, 부족하나마 필자의 첨언을 좀 달아보고 싶다.

 

1. Supervised vs. Un-Supervised

필자의 머신러닝 수업 첫 시간은 아래의 그래프로 시작한다. 기존 통계학이 데이터를 가장 잘 설명하는 선형 함수를 찾는데 집중했던 것, 왜 선형 함수가 가장 유리했었는지, 왜 빅데이터 시대에는 선형 함수가 최선의 선택이 아닐 수도 있는지, 머신러닝이란 결국 (데이터 속에 숨겨진) 비선형 함수 패턴을 찾는 것이다는 아이디어를 짧게나마 정리하고 수업에 들어간다.

굳이 저런 그래프로 수업을 시작하는 이유는, 다들 머신러닝이 뭔가 새로운 학문이라고 오해하고 있고, 그리고 머신러닝이 통계학과는 별개의 학문이라고 생각하고 수업에 들어오기 때문이다. IT 업계 짬밥도 있고, 데이터 관리 플랫폼 만들어내는데는 한국에서 몇 손가락 안에 꼽히실만한 어느 스타트업 개발이사(CTO) 분을 만난적이 있었는데, 필자더러 어떤 변수를 넣을지도 알아서 찾아내는 시스템이 있는데, 굳이 필자가 주장하는 방식으로 수학, 통계학을 배우고 머신러닝 알고리즘을 익혀야하냐고 되물으시더라. 말을 바꾸면, 저 위의 그래프 (혹은 다른 어떤 규칙)를 찾아가는 길(path)를 인간이 지정해주지 않고도 기계가 알아서 찾아내는데, 굳이 모델을 만들어야할 필요가 있냐는 것이다. 그분이 들었던 예가 알파고가 “스스로” 학습해서 인간 최고수를 이겼으니, 인간이 가르쳐주지 않은 길(path)를 만들어낸 것이 아니냐는 거였다.

모델링을 직접하는 사람들은 알겠지만, 사실 알파고의 시스템은 바둑의 규칙을 단지 Linear regression 대신 Neural net으로 구현하고, 과거 바둑 데이터의 승/패 여부를 활용해 인간이 몰랐던 승리 “패턴”을 찾아낸 것에 불과하다. 새로운 “승리 패턴”을 만들어 낸 것이고, 우리가 알고 있는 바둑의 “포석”들 보다 더 나은 선택지가 있다는 것을 알려준 것이지, 바둑의 규칙을 새로 “창조”해 낸 것은 아니다. Neural net이 복잡한 비선형 패턴을 찾아내기에 좋은 도구이기 때문에 Linear regression보다 더 나은 성과를 가져다 준 것은 맞지만, 그렇다고 Neural net이 Linear regression과 완전히 다른 기술이냐고 물으면 또 그것도 아니다. 필자의 수업에서 꼭 짚고 넘어가는 부분인데, Neural net은 Logistic regression의 결합이고, Logistic regression은 Linear regression에 다른 Kernel을 하나 추가한 것에 불과하다.

좀 쉽게 말하면, 우리가 학부 수업 때 들었던 통계학 방법을 좀 응용해서 쓴 테크닉으로 알파고가 만들어졌다는 뜻이다. (인공지능이 무슨 4차원의 기술이 아니라는 뜻이기도 하다.)

추천받은 책에서 가장 맘에 들었던 부분은, 철학자이신 저자가 위의 내용을 정확하게 알고 있고, 더 나아가서 왜 Supervised learning에서만 Neural net이 작동하고, Unsupervised learning에서는 좋은 성과가 나오기가 힘든지에 대한 설명을 해 놓은 단락이었다. 비선형 함수 or 비선형 패턴을 찾아내는 작업은 무한대의 조합 중 가장 그럴듯한 함수를 하나 찾아내는 작업인데, 데이터가 0 또는 1로 가이드를 해줄 때는 (승/패 값을 알려줄 때는), 데이터가 보정을 해 주니 그럭저럭 가장 그럴듯한 함수를 찾아낼 수 있는데, 데이터의 보정이 전혀 없으면 어떻게 무한대 중에 어떤 조합이 가장 좋은지 알아낼 수 있겠냐고 설명하더라.

저 위의 생물학 Eigen Gene의 예제와 접목시켜보면, 특정 DNA가 무슨 기능을 하는지에 대한 유전자 지도도 없는 상태에서 어떻게 PCA 함수로 Eigen Gene을 “알아서” 찾아내도록 만들 수 있을까라는 반박과 같다. 우리가 PCA로 유사한 기능을 하는 DNA들을 하나의 Eigen Gene으로 묶을 수 있는 건, 그 DNA들이 유사한 기능을 하고 있다는 정보를 이미 알고 있기 때문이다.

 

2. Stochastic process

인공지능이 Supervised의 영역에서 Unsupervised의 영역으로 확장되기 위해서 가장 필요한 부분이 뭘까는 질문에 대한 챕터에 “진화”라는 제목이 달려 있었다. 그리고 단락 소제목으로 Stochastic Process가 있더라.

필자가 박사 재학시절 배우고 Best Teaching Award까지 받으며 가르친 Stochastic process는 시간을 분,초 단위의 “인간이 인지할 수 있는” 기준으로 쪼개는 것이 아니라, 무한대분의 1과 같이 “인간이 인자할 수 없는” 기준으로 쪼갤 때, 그 때 각각의 쪼개진 부분들에 미분, 적분같은 기존의 수학이 어떻게 적용되는지 설명하는 수학이었다. 그렇게 잘게 쪼개는 이유는, 인간이 인지할 수 없는 무수히 많은 Particle들이 뭉쳐져서 하나의 물질이 된다는 아이디어를 활용해, 불확실성(Uncertainty)을 모델화할 수 있는 최소 단위를 만들기 위함이다. 우주 물리학에서는 같은 수학을 이용해서 천체의 움직임을 예측하고, 파이낸스에서는 파생상품의 가격 계산에 Stochastic Calculus를 쓴다. (필자의 논문에 쓰인 수학도 Stochastic Calculus다.) 그런 Stochastic Process가 왜 갑자기 인공지능의 진화 부분에 나오고, 인공지능의 진화와 Unsupervised learning은 도대체 무슨 관계가 있는걸까?

저자의 정의에 따르면, 인공지능이라고 불리고 있는 (Deep) Neural Net 모델이 Unsupervised learning을 하게 된다는 것은 인간이 알려준 규칙말고 다른 규칙을 만들어 낼 수 있다는 뜻이란다. 바둑의 규칙내에서 새로운 “포석”을 찾는게 아니라 바둑 이외에 새로운 “게임”을 만들어내는 수준에 이르러야 진짜 Unsupervised learning이고, 그걸 위해서는 자연계에서 진화가 일어나는 방식대로 “돌연변이”가 랜덤하게 일어나는 모델링이 필요하다는 뜻이다. (인간이 추위에 적응하기 위해서 털 옷을 만드는게 아니라, 털이 많은 인간으로 진화하는 거랑 비슷하다고 이해했다.)

머신러닝 모델에 Stochastic process까지 도입한 모델은 아직 필자도 본 적이 없지만, 최소한 “랜덤”을 추가해서 기존 모델의 성능을 업그레이드 하는 경우는 꽤나 보아왔다. 상품 추천 알고리즘에서 “Serendipity”라고 불리는 모델 응용은 기존 데이터 기반으로 추천하지 않아야할 상품을 랜덤하게 끼워넣는 것이고 (위의 Netflix 모델 설명 슬라이드 참조), 알파고의 성능 업그레이드를 위해서 데미스 하사비스도 일부러 오류를 발생시키는 알파고와 기존 알파고 간 대국을 통해 기존 알파고에게 새로운 데이터 셋을 추가했다는 인터뷰를 보기도 했다. (아래 YouTube 영상의 31분 이후부터 이세돌의 “신의 한수” (4국 78수)를 언급하고, 대응책으로 오류 알파고를 활용했다고 언급한다.)

필자가 모델링을 하면서 Serendipity를 만들 때도 나름대로의 랜덤 함수 규칙이 있고, 오류 생성 알파고도 아마 오류에 해당하는 알고리즘이 따로 있었을텐데, 인류가 인공지능의 등급을 진짜 Unsupervised까지 끌어올리기 위해서 어떤 방식으로 “돌연변이”를 모델에 집어넣어야할까?

최소한 인간이 처음보는 단어가 나왔다고 페이스북 챗봇 서비스를 중단했다는 기사를 보고, 문자 데이터 전처리를 잘못했나보다고 생각하는게 아니라, 페이스북이 진정한 Unsupervised learning 모델을 만들어냈다고 설레발치는 기사들이 돌아다니는 수준으로는 어렵겠지.

 

3. Integrated Intelligence

인공지능이 성장하면서 인류의 삶에 어떤 영향을 미칠 것인지에 대한 이야기들이 참 많이들 돌아다닌다. 위에 소개한 책처럼 철학자이면서 동시에 수학과 기술을 다 이해하고 있는 분의 의견도 있는 반면, 많은 경우에는 잘 모르는 기자들이 쓴 단발성 기사라서 필자가 관심을 기울이는 경우가 드물다. 그러다 며칠전에 우연히 모 방송국의 다큐 프로그램에서 아래 대담을 스쳐봤는데, 그냥 넘어가기가 좀 많이 불편해, 한 마디해야 겠다는 생각에 굳이 스샷을 떴다. (다른 부분을 안 봐서 앞, 뒤 내용이 달랐을 수도 있다는 점을 미리 공지하고, 방송국에서 저작권 위반이라고 연락받으면 삭제할 수도 있다는 점 알려드립니다.)

우선, 위 스샷의 대담 내용 중에 도로 사진을 찍는 자동차를 운전하는 사람이 구글 정규직 직원이 아니라는 점은 동의한다. (미국 사회에 한국식 정규직 – or 철밥통 – 이라는 개념이 있는지 잘 모르겠다는 점은 일단 배제해놓자.)

그러나, 도로 사진을 찍는 자동차, 그 자동차를 운전하는 운전자, 그 운전자를 고용하는 구글 (or 다른 자율주행 프로그램 제작회사)의 관계 부분에 대해서만큼은 꼭 한 마디하고 싶다. 일반 운전자가 자율주행 프로그램을 무료로 쓴다는 조건으로 현재 달리는 도로의 사진을 모두 자율주행 프로그램사에 제공한다면 어떻게 될까? 이미지 전송 속도를 지금보다 더 빠르게해 줄 5G 세대가 오면 (현재는 4G, LTE 속도) 충분히 가능한 이야기가 아닐까? 아니 지금도 좀 화질을 낮추면 얼마든지 실시간으로 이미지 전송을 할 수 있다. 전세계의 모든 운전자가 자기 차에 달린 카메라 (or 블랙박스)로 현재 달리는 도로, 주차장의 상태를 찍어서 보낸다면, 굳이 도로 사진을 찍어줄 직원을 (비정규직으로라도) 고용할 필요가 있을까?

필자의 회사가 만들고 있는 시스템도, 유저들이 보내준 데이터를 기반으로 돌아간다. 이런 방식의 수익자 제공 데이터 기반 시스템을 조금 유식한 용어로 Integrated Intelligence*라고 부르는데, 인공지능 모델의 최대 한계인 데이터 수집 부분을 설문조사하듯이 고비용을 들여 직접 찾아가는 방식이 아니라, 특정 서비스를 제공해주는 조건으로 그 서비스에 필요한 데이터의 일부가 되는 것을 반대급부로 제공하는 방식이다.

(*Collective Intelligence는 여러 사람의 생각이 모이면 오류가 줄어들 수 있다는, 이른바 “평균의 위대함”을 말하는 것이었다면, Integrated Intelligence는 유사함을 기준으로 유저를 묶어 서치 비용을 감소시키는, “다양성의 존중과 지원”이라고 할 수 있다.)

어마어마한 계산 비용을 써야하는 알파고에 맞서 겨우 설탕 한 스푼치 열량으로 비슷한 효율을 내는 (지능적인 생물인) 인간을 겨우 도로 위 사진 찍는 “저급한” 노동에 쓰기는 좀 아깝지 않나? 그런건 기계에게 맡겨도 될만큼 인공지능자동화 시스템이 많이 성장했다. (물론 잉여 시간과 설탕 투입량을 증가시켰더니 살만 찌는 부작용이 있기는 하지만 ㅋㅋ)

 

나가며

지난달 중순쯤에 4차 산업을 선도하는 어느 IT전문 매체라는 곳에서 필자더러 데이터 사이언스 강의를 해달라고 요청이 왔다. (아래 내용이 비판적이기 때문에 어느 곳인지 밝히지 않는 점, 미리 독자의 양해를 구합니다.)

필자가 3시간짜리 8회 강의를 해도 사실 시간이 빠듯하고, 내용 이해를 다 못하실까봐 강의 동영상도 제공하고, 심지어는 어느정도 수학, 통계학 공부를 하신분만 오라고 “엄포”를 놓고 있는데, 자기네 매체 쪽에서 같은 강의를 열면서 대신 이론 6시간, 응용 6시간 정도로 줄여달라고 하시더라. 데이터 사이언스를 가르치는게 아니라, 교양 수업 수준으로 간단한 안내 정도만해야 아마 12시간 안에 빠듯하게 내용 전달을 할 수 있을 것 같은데, 도대체 지금까지 무슨 강의만 했길래 저런 이야기를 할까 싶어서 그 IT전문 매체 홈페이지 이곳저곳을 뒤져봤다. “챗봇 만들기 6시간 과정”, “앙상블 모델 따라하기 6시간 과정” 같은 수업들이 여럿 있었고, 인터넷 검색해보니 그런 식으로 짧고 간단하고 만만해 보이는 종류의 수업들이 참 많더라. 좀 양식 있으신 분은 필자에게 질문하는 메일을 쓰면서 가격 할인해달라는 이야기가 아니라, 이 많은 내용을 어떻게 그 짧은 시간에 가르칠 수 있냐고 묻는데, 우리나라의 IT전문 매체라는 타이틀을 달고 있는 회사는 앞 뒤 다 짤라먹고 6시간짜리 단축강의만 해라니…

구글이 직원을 고용해서 도로 위 사진 찍는 이야기하는게 메이저 방송사의 다큐 프로에 버젓이 나오는 마당에 뭘 바라야할까?

인공지능이라는게 예전보다 자동화 시스템이 좀 더 잘 갖춰질 수 있도록 패턴 인식하는 성능이 더 나아진 상황에 불과한데, 온갖 설레발을 다 치면서 직장 잃을거라고 겁이나 주는 언론의 “썰”들을 보면 답답하다. 무슨 러다이트 (Luddite) 운동하는 것 같은 프로그램을 만들게 아니라, 인공지능이라는게 뭔지 좀 정확하게 알려주는 내용들이 등장하고, 자동화하기 어려운 직업을 가질려면 자라나는 학생들이 어떻게 준비해야하는지 같은 좀 발전적인 프로그램은 방송 안 하나?

짧게 한 마디로 필자의 소견을 던지면, 위에 언급한 저 책에서 철학자가 이 정도의 수학, 머신러닝 소양을 갖고 있는 것에 놀라는 것이 아니라, 일반인이 그런 지식을 기본 소양으로 갖출 수 있는 시대가 진짜 4차 산업혁명 시대라고 생각한다.

 

데이터 사이언스, 데이터 과학자, 인공지능, Prophet

데이터 사이언티스트가 부족하고, 좋은 사람을 찾기도 힘들어서 (그리고 비싸서), 아예 인공지능으로 대체해보려는 움직임이 많이 있다. 가장 많이 발달한 영역은 시계열 (Time-Series) 데이터를 넣으면 향후 예측치를 보여주는 시뮬레이션 모델인데, 정확성이 꽤나 높게 나와서 이제 다른 영역의 데이터 사이언스도 인공지능으로 대체될지도 모른다는 “설레발”들이 입에 오르내리고 있다.

최근에 모 데이터 사이언스 학회에 가보니 2025년까지 인공지능이 데이터 사이언스 관련 기능들을 (거의) 완전히 대체할 수 있을거란다. 지금도 이미 Word Cloud 만들기 같은 매우 단순한 작업들은 무료로 해주는 서비스들이 널려있고, 위에 말한대로 고급 통계학자들만 할 수 있을 줄 알았던 시계열 예측도 저렴한 가격에 제공해주는 서비스들이 나타나기 시작했다. 심지어 페이스북이 올초에 Prophet이라는 사실상 무료 서비스를 내 놨다. Github페이지에 R과 Python으로 코드도 다 공개했고 (Prophet 패키지 알고리즘은 공개 안 했더라), 필요한 그래프도 온라인에서 바로 확인할 수 있다.

 

그럼 정말 데이터 사이언스는 인공지능으로 대체될까?

 

아래는 KDnuggets에서 데이터 사이언티스트들을 대상으로 한 설문조사 내용이다.

많은 숫자가 설문에 참여한 것은 아니지만, 그래도 과반수의 참여자들이 10년 이내에 가장 고난이도 데이터 사이언스 업무마저도 자동화될 것이라고 예상하고 있다. 밥그릇 챙기는 소리를 떠나서 냉정하게 시장 트렌드만 놓고보면, 데이터 사이언스 업무 중 일상적인 작업들은 자동화 업무로 빠르게 전환이 될 것이라는 점에 이의를 달고 싶지 않다. 필자가 전 직장에서 했던 업무 중 하나도 간단한 시뮬레이션을 통해서 향후 온라인 광고 예산을 추정하는 시뮬레이션 모델을 만드는 것이었는데, 이미 다양한 곳에서 유사한 업무가 진행되고 있다.

 

그럼 대체되는건가?

사실 여기서 가장 중요한 질문은 “Most expert-level”의 수준이 어느정도인가에 달려있다.

필자가 시계열 데이터 시뮬레이션 모델을 만들면서 했던 작업들을 한번 돌이켜보자. 먼저 데이터를 트렌드 (Trend) 부분, 주기 (Cycle) 부분, 그리고 오차 (Error) 부분으로 쪼갠다. 특히 주기 (Cycle) 부분을 쪼갤 때는 ARIMA 모델의 (x,y,z) 숫자 조합이 어떻게 되는지 몇 가지 테스트를 해 봐야된다. 트렌드도 직선으로 뽑아낼 수 있다면 참 좋겠지만, 때로는 곡선이 더 정확할 수도 있다.

그 다음, 각각의 데이터 셋들을 놓고 머신러닝 모델을 훈련을 시킨다. 무조건 딥러닝을 써야되는거 아니냐고 착각하는 분들이 참 많을텐데, 가장 간단한 Logit으로만 훈련시켜도 충분히 좋은 결과가 나오는 경우도 많다. 모델 훈련에서 가장 중요한 부분은 “1. 데이터가 얼마나 많냐, 2. 얼마나 전처리가 잘 되었냐” 에 달려있다. 그리고 가능성 높은 모델들 몇 개를 뽑아서 그 중 어느 모델이 더 좋은지 테스트를 해 보는 과정도 거친다.

생각해보니 참 간단하다. 이 과정 전체를 수학적으로 다 이해할려면 꽤나 긴 수업을 들어야겠지만, 정작 주어진 모델을 활용해서 시계열 데이터에 적용하는 일은 그다지 어려울 것 같지가 않다.

그래서인지 이미 수십개의 자동화 프로그램들이 돌아다니고 있다. 위에서 언급한 페이스북의 Prophet과 더불어 알려진 프로그램 몇 개를 정리해본다. (광고해주는거 아니니 오해마시라.)

인간 최고수를 이기는 바둑 게임도 나왔고, 변호사, 의사같은 유명 전문직들이 인공지능으로 빠르게 대체되고 있는 마당에 굳이 데이터 사이언티스트가 인공지능으로 대체되지 말아야 할 이유가 하나도 없다.

 

인공지능에 대한 착각

그럼 변호사, 의사를 대체하는 인공지능은 누가 만들까? 공돌이들이 만드는 걸까?

진짜로 저런 상품을 (모든) 공돌이들이 어느 날 뚝딱 만들어 낼 수 있을 것이라고 생각하는 사람은 없을 것이다.

기계가 어떻게 돌아갈지에 대한 작동 원리를 만드는 사람은 결국 그 분야 전문가일 수 밖에 없다. 세금 계산을 자동으로 해 주는 로보텍스 모델은 개발을 배운 회계사가 만든게 아니라면 두 직군의 협조가 있어야 나올 수 있다. 마찬가지로 변호사, 의사도 같은 방식의 협조가 있어야 대체할 수 있는 로봇과 그 로봇을 돌릴 수 있는 인공지능이 나온다.

인공지능이 무슨 아이큐 160의 천재를 만들어내서 그 천재가 모든 업무를 순식간에 배우고, 스스로 창의성을 갖춘 형태로 진화할 것이라는 일반의 생각들 때문에 오해들이 참 많은 것 같다. 지금 우리 인류가 갖고 있는 인공지능은 패턴을 학습하고, 그 패턴과 유사한 내용을 매칭시키는 기술 이상도 이하도 아니다. 이걸 “약(Weak) 인공지능”이라고 표현하더라. 누군가가 “강(Strong) 인공지능”을 갖고 있다면 정말 보고 싶다. 실제로 어떻게 돌아가는지.

같은 맥락에서 데이터 사이언스 업무를 대체할 인공지능을 만드는 사람도 여전히 데이터 사이언티스트일 것이다. 한 10년쯤 지나서 데이터 사이언티스트 간 경쟁이 더 치열해지면, 데이터 사이언티스트에게 필요한 능력이 지금처럼 통계학과 머신러닝 모델을 활용하는 수준을 넘어서서, 그 모델들을 자동화시킬 수 있는 능력을 갖춰야할지도 모르겠다. (사실 이런거 벌써 다들 하고 있는거 같기는한데…)

 

데이터 사이언스의 미래

데이터 사이언스가 더 발전하면서 데이터 사이언티스트가 줄어들 것이다. 자동화가 되어서 Not-so-expert-level인 데이터 사이언티스트가 없어져서? 아니다. 지금 시장이 혼란하다보니 여러사람들이 자기가 데이터 사이언티스트라고 주장하지만, 정작 하는 일은 Data Analyst거나 Data Engineer인 경우가 많다. 그들이 당장은 Data Scientist라는 타이틀을 달고 있겠지만, 시간이 지나고 업무 레벨이 고도화되면 시장도 학습을 하게 될 것이다. 물론 Data Scientist라는 타이틀을 단 사람들에게 요구되는 스킬셋의 수준도 고도화될 것이다.

데이터 사이언스 석사하고 있는 후배가 가끔 보내오는 Problem Set을 보면, 과연 이 정도로 10년후에 살아남을 수 있을까 싶다. 항상 공부 더 해라고 충고해준다. (필자 자신에게도 마찬가지 충고를 매일하고 있다.)