brunch

You can make anything
by writing

C.S.Lewis

by 김씨 Aug 17. 2019

인공지능의 미래?

단면이 아니라 그 내부를 파헤쳐 보자.

  알파고 쇼크 이후로 인공지능이 전 세계를 강타했다. 누군가는 터미네이터가 현실이 될 것이라고 말하기도 하고, 누군가는 인공지능이 사람들의 직업을 없앨 것이라고 말하기도 하며, 누군가는 희망찬 미래를 말한다. 스카이넷이 출현하여 인류를 말살시킨다는 내용을 제외하고는, 어느정도 일리 있는 내용들이긴 하지만 사실 인공지능 분야에 깊숙히 관여되어 일을 하는 사람은 극소수이기 때문에, 이에 관한 제대로 된 내용이 사람들에게 잘 전달이 안된 것이 사실이다. 


  따라서, 현재의 인공지능 기술 수준에 관해서 파헤쳐 보고 (특히 딥러닝에 관하여) 장점과 한계점을 분석해 보자. 미래를 예측하는 것은 거의 불가능한 일이므로, 기술의 방향성에만 초점을 맞추려고 한다.

 

딥러닝

  딥러닝에 관해서는, 지금은 초등학생도 알고 있을 만큼 너무나 많이 알려졌기 때문에 따로 이것이 무엇인지 이야기 하는 것 보다는 그냥 구글링 해서 읽는 것이 훨씬 더 빠를 것이다. 하지만 이 딥러닝에 관하여 제대로 알고 있는 사람은 굉장히 드물 것 같다. 이게 인공지능 분야에서 어떤 의미인지, 어떤 한계점을 가지고 있고 최근 동향은 어떤지 확실히 아는 사람은 더 적을 거라고 확신한다.


  일단 딥러닝은 새로 튀어나온 기술이 아니다. 딥러닝의 대가 중 한사람인 얀 리쿤의 1989년 논문 에 사실 대부분의 핵심 내용이 들어가 있다. 이 때 얀 리쿤은 벨 연구소에서 손으로 쓴 글씨를 인식하는 OCR 계열 연구를 하였다. 미국에서는 (아직도) 수표를 쓸 때 손으로 쓰고, 이것을 은행이나 ATM 기에 가서 입금을 하기 때문에 이쪽 수요가 꽤 있다. 이 때 딥러닝의 핵심 기술 중 하나인 Backpropagation이 이론적/실험적으로 이미 어느정도 정리가 되었고, 사실 현재의 주류 딥러닝 모델들은 여기서 별로 벗어나지 않는다. 또한 10년뒤 쓴 CNN 논문 에서 이미 현재 사용하고 있는 CNN의 기본 구조는 다 완성했다고 볼 수 있다. CNN과 더불어 양대 축 중 하나인 RNN 또한 2000년이 되기도 훨씬 전에 이미 기본 구조에 대한 논문은 다 나왔고, 심지어 유겐 슈밋후버의 LSTM 논문도 1997년에 나왔으니 꽤나 오래된 분야라고 볼 수 있다.


  물론 학습하는데 연산량이 너무 많다는 문제 때문에 한동안 주목받지 못했는데, 딥러닝 구루 제프리 힌튼 교수의 Alex라는 제자가 (이름 발음이 너무 어려워서 생략) ImageNet 챌린지에서 압도적 성능 격차로 1등을 했다. (아마 2011~2012 년 쯤으로 기억한다) 그 결과 때문에 학회에서 엄청난 주목을 받게 되었고 그때부터 수 많은 사람들이 여기 주목하게 된다. 이때는 일반인들에게는 잘 알려지지 않았지만, 학계에서는 압도적 성능을 낸 것 때문에 매우 핫해지고, 너도나도 딥러닝을 쓰게 된다. 물론 이전에도 Alex Graves (현재는 딥마인드에 있는) 가 2006년 정도에 sequence data 에 적용할 수 있는 RNN에 CTC layer를 쓰는 논문들도 냈는데, 현재의 필기인식, 음성인식 등 대부분이 이걸 사용하고 있다. 그러니 이 분야는 오래 되었는데, 연산량 때문에 못 쓰고 있었던 것이다. 


  하드웨어가 발전하고, NVIDIA GPU로 학습속도를 많이 끌어올리게 되고, 데이터가 폭발적으로 증가하면서 더더욱 주목을 받게 되었고, 이미 2014년도 정도부터는 이미지 인식이나 얼굴인식 등에서 사람보다 정확도가 뛰어나게 된다. 여러 regularization 방법들이나, 여러가지 경험을 통해서 잘 되는 네트웍 구조나 pretrained 된 모델들을 공개하고 하면서 이 분야는 빠르게 발전하게 된다. 계속해서 기존의 머신러닝 방법들을 아득히 따돌리는 결과를 보여주게 되자, 모든 분야에서 이걸 적용하게 된다. 이미지 인식 뿐 아니라 자연어처리, OCR, 음성인식에서 시작하여 음성합성과 추천시스템, 데이터분석 까지 기존의 패턴인식, 머신러닝, 데이터마이닝, 데이터분석, 바이오 인포메틱스 등등으로 겹치는 부분은 있지만 그래도 각기 다른 알고리즘들을 사용하는 많은 분야들이 딥러닝으로 대동단결 하게 된다. (물론, 아직도 도메인 지식이 많이 필요하기도 하고 기존의 방법론들도 아직은 대체할 수 없는 경우가 많다.)


  예전에는 Computer Vision을 하는 사람과 NLP를 하는 사람이 만날 일이 별로 없었다. 근데 이게 딥러닝이 핫해지면서 모든 분야에 딥러닝을 적용하게 되고, 한사람이 CV, NLP, Speech를 모두 하는게 별로 신기하지 않은 일이 되어 버렸다. 그리고 알파고 이후로 일반인에게까지 딥러닝이 퍼지게 되고, 여러 프레임워크와 라이브러리가 나오면서 지금은 프로그래머에게 딥러닝은 일종의 교양과목처럼 되어 버렸다.



딥러닝의 장점

  딥러닝의 장점은 feature extraction에 크게 신경 쓸 필요가 없어서 여러 분야에 적용이 쉽고, 데이터가 많으면 결과가 그런대로 나온다는 점이다. 기존의 feature extraction 하는 부분을 크게 신경쓰지 않아도 네트워크 구조를 설계하고 넣으면 결과가 나오니, 이미지 인식, 음성 인식, 기계번역등과 같은 부분에서는 엄청나게 결과가 좋아졌다. 근데 논문들 추세를 살펴보면 기존 방법으로 한계에 부딪치면 이것저것 시도해보다가, feature 추출 방법을 바꾸거나 기존에 사용했던 방법론들을 또 써보거나, 그렇게 성능을 향상시키다가 또 한계에 부딪치면 다른 네트워크 구조를 고안하거나 하는 방식이 반복된다. 즉, 도메인 지식 없이 실 사용이 가능할 정도로 뭔가를 만드는 것은 아직 힘들다. NMT 관련 논문들이 하루가 멀다 하고 SOTA 를 찍었다는 것들이 올라오고 코드도 많이 공개되고 데이터도 어느정도 있지만, 실제로 제대로 된 NMT 기반 번역 서비스를 하는 회사들이 극소수인건 다 이유가 있는 것이다. 단순히 논문에 있는 것으로 사람들이 돈을 내고 쓸 만한 서비스를 만드는 것은 정말 정말 힘든 일이다.


  그리고 빅 데이터 시대에 걸맞게 대량의 데이터가 있으면 네트웍 구조를 키워서 학습하면 그런대로 되는 편이다. 다른 머신러닝 알고리즘들은 데이터가 아주 많더라도 그것을 사이즈를 키워서 학습하고 하는게 그리 용이하지 않은 편인데, Neural Network 특성상 그런 점이 용이하기 때문에 더더욱 각광을 받게 되었다. 그리고 실제로 잘 되서 서비스에 적용되는 것들도 꽤 많았다.


  알파고를 보며 사람들은 내 일자리가 없어지지 않을까 걱정을 하게 되었고, 스카이넷이 출현하지 않을까 하는 생각을 갖게 되었다. 하지만 현실은...



딥러닝의 현실

  물론 딥러닝이 여러 제품이나 서비스에 적용이 되고 좋은 결과를 보여주고 있는 것은 사실이다. 하지만, 아직까지는 한계점이 명확해 보인다.


  첫째로, 데이터 문제이다. 딥러닝을 학습해서 좋은 결과를 내려면 많은 데이터가 필요한데, 정제된 데이터가 그리 많지 않다. 아직까지도 MNIST 에 실험한 논문들이 쏟아져 나오고 있는데, 겨우 10MB 짜리 데이터이다. 물론 여러 다양한 실험에는 적합할 수 있을 지 몰라도, 그만큼 정제된 데이터가 많지 않다.


  둘째로, 연산량/속도 문제이다. 사실 이것이 가장 크리티컬한 문제라고 볼 수 있다. 위에 데이터 문제를 말했는데, 데이터 문제가 좀 적은 Unsupervised learning 계열 모델들도 있다. 작년 NLP 분야에서 가장 핫했던 BERT 가 있고, 이번 년도에 후속작 비슷하게 XLNet 이라고 나왔는데 이걸 한번 학습하는데 최소 $30,000 이상 든다. (원래 20만불이 넘는다고 추정했는데 논쟁을 통해 줄이고 줄인거다.) 물론, 한번 pretrained model을 학습해 놓으면 fine tuning에는 얼마 안든다고 말 할 수도 있다. 근데 그렇게 해서 기존 알고리즘보다 성능은 올랐다고 할 때, 서비스는 어쩔것인데? 이렇게 무거운 모델은 TPS 처리량이 굉장히 낮은데 이걸로 서비스를 제대로 할 수 있을까 싶다. 구글에서조차 딥마인드에서 GPU/TPU를 너무 많이 써서 가용량이 부족하다는 이야기가 나올 정도라고 하며, 딥마인드의 2018년 손해액은 6000억원이 넘는다. (기사)


  실제로, 회사에서 딥러닝 모델을 학습하면 성능은 괜찮은 편인데 이걸로 실제 서비스를 하려니 속도가 너무 느려서 문제가 되는 경우가 많다. 그렇다고 GPU 서버를 쓰자니 그게 다 돈이라서 손익에는 악영향을 끼치게 된다. 물론, 최근에는 모델의 경량화나 연산 속도 관련해서도 많은 연구가 이뤄지고 있기는 하고 on-device 에서 모델을 돌리려고 하는 경우도 많지만, 회사에서 가장 중요한 것은 비용대비 이익을 높게 하는 것인데 딥러닝을 쓴다고 이게 개선될지는 의문이다. 그리고, 기존에 잘 쓰던 통계적 방법론이나 머신러닝 알고리즘에 비해서 성능은 약간 오르는데 속도는 무진장 느려져서 TPS 처리량이 확 낮아지게 되면, 회사 입장에서는 쓸모가 없다고 볼 수 있다. 특히나 근 3~4년 간 핫했던 GAN기반의 생성 모델들은, 그 사악한 연산량 때문에 실제 서비스에 넣기가 쉽지 않다. 혹자는 하드웨어가 빠르게 발달하고 있으므로 괜찮다고 말하는 경우도 있지만, 글쎄... 성능을 조금 높이는 대신 너무나 많은 걸 희생하는 것이 문제라고 보여진다.


  셋째는, 성능 문제이다. image/speech와 같이 feature 를 뽑기가 난해한 경우에는 딥러닝이 잘 나가지만, 아직 정형화된 데이터에 대해서는 tree 계열 알고리즘이 더 좋은 성능을 보여주는 경우가 많다. kaggle 상위권 모델들에 xgboost가 많이 포진되어 있는 걸 보면 알 수 있다. 실제로 써보면 잘되기도 하고. 또한 tree 계열 알고리즘은 해석할 수 있다는 장점이 있기 때문에, 거의 blackbox 와 같은 딥러닝 모델에 비해서는 아직도 이점을 가지고 있다. blackbox 모델의 문제는 이것을 서비스화 할 때, 일반적인 로직 기반의 알고리즘에 비해서 왜 그렇게 되었는지 알기가 힘들어서 이슈가 생겼을 때 그것을 해결하기가 굉장히 힘들어 진다는 데 있다. 그렇기 때문에 많은 회사들이 머신러닝 시스템만 구성하는 게 아니라 hybrid 로 시스템을 구성하는 것이다. 또한 Neural Network 구조가 인간의 뇌에서 따 왔다고는 하지만, 단순 수식 계산일 뿐이고 복잡도가 증가한 logistic regression 과 그리 다를 바 없으며, 인간 뇌의 효율성에는 발끝에도 못미친다.


  그리고 딥러닝이 몇몇 task에서 성능을 끌어올렸고 제품화까지 되었다고 하지만, 아직은 떠들썩함에 비해 많은 분야에서는 그다지 활약하지 못하고 있다. 하루가 멀다하고 SOTA 성능을 찍었어요! 하는 논문들이 아카이브에 올라오지만, 겨우 소수점 자리로 성능 개선이 되었거나, 성능을 위해 속도를 포기했다거나하는 실용성과는 거리가 먼 경우가 대부분이다. 논문들의 결과를 재현해 보면 cherry pick 한 경우도 너무 많고. 물론 연구라는 것이 실용성보다는 가능성을 보는 것이기는 하지만, 나는 사람들이 생각하는 영화 Her 에 나오는 인공지능을 만들어 줄 기술이 딥러닝은 아니라고 본다. 몇 년 전만 해도 챗봇의 수준이 빠르게 발전하여 Her 에 나오는 인공지능이 불가능이 아닐 것 처럼 보이기도 했지만, 그건 단지 환상일 뿐이라는 것이 판명났고 아직도 대부분의 챗봇은 Rule-based system 에서 한 발자국도 벗어나지 못했다. 물론, 머신러닝을 부분적으로 사용하긴 하지만, 보조적인 역할에 그치고 있다.


  많은 스타트업들이 자신들의 인공지능 전문성을 홍보하며 투자를 받곤 하지만, 실상을 까보면 별거 없는 경우가 많다. 왜냐면, 딥러닝 기술만으로 뭔가 획기적인 것을 만들기는 쉽지가 않기 때문이다. 물론 현존 머신러닝 알고리즘 중엔 딥러닝 계열이 여러 도메인에서 가장 뛰어난 성능을 보이는 것이 맞고 이 덕분에 많은 분야에서 breakthrough 라고 할 수 있을 만한 결과를 보여 주기는 했지만, 아직은 많이 멀었다고 보여진다. 최근 RPA (Robotic Process Automation) 계열 스타트업들도 마치 인간을 대체하는 인공지능 서비스 처럼 포지셔닝하며 투자도 많이 받고 하곤 있지만, 글쎄, 딱히 고도화된 머신러닝이라기 보다는 발달된 ERP 나 매크로 프로그램에서 많이 벗어나지 않았는데 마치 신기술인냥 홍보하곤 한다. (물론 회사는 돈 버는게 핵심이니 돈만 잘 벌면 문제 없긴 하다.)


  2014년도에 Alex Graves 가 쓴 NTM 논문을 읽고 흥분했던 기억이 있다. 딥러닝으로 튜링 머신을 만들다니!! 컴퓨터가 프로그램을 직접 생성해서 진짜 인공지능이 가능하지 않을까 생각 했었다. 그 후 후속작으로 DNC와 같은 논문도 나왔었는데, 사실 그냥 특정 task에 특화된 RNN계열 네트워크에서 별로 벗어나지 않는다고 생각한다. 꽤 복잡한 구조를 가지는데 구지 그런 구조가 없이도 해당 task들을 해결할 수 있기도 하고. 아무튼 이런 것을 보며 딥러닝이 가야 할 길은 정말 한참 멀었구나 라는 것을 느끼게 되었다.



결론

  물론 나는 딥러닝의 미래가 밝다고 생각한다. 아직 이게 적용될 만한 수 많은 분야가 남아 있다. 그렇지만 이것은 단지 많은 분야들이 IT/SW 기술의 발달에 비해 너무 발달이 덜 되어서 그런 것 뿐이다. 하지만 딥러닝은 그냥 머신러닝 분야의 하나의 방법론일 뿐이고, 진짜 breakthrough 라고 할 만한 것은 다른 데서 나올 것이라고 생각한다. 현재의 딥러닝은 한계가 아주 명확하기 때문에, 이대로 가다가는 다시 AI winter 가 올 수도 있다고 생각하며, 근시일 내로 사람들이 걱정하는 뛰어난 인공지능은 절대로 나올 수 없다고 생각한다.


  그렇다면, 진짜 인공지능은 어떻게 만들 수 있을까? 나는 전혀 모르겠다. 페드로 도밍고스 교수의 책 에서 여러 분야를 합쳐야 진짜 인공지능이 나올 수 있다고 이야기 하기도 했는데 나는 그것도 아니라고 생각하며, 신경과학자들과 뇌 과학자들이 어느정도 뇌의 비밀을 파헤친 후 그것을 리버스 엔지니어링 하는 방법까지 도입해야만 어느정도 인공지능 비슷한 걸 흉내라도 낼 수 있다고 생각한다. 물론 머신러닝, 특히 딥러닝은 기존의 프로그래밍 패러다임을 바꿀만한 것이긴 하지만, 이게 정답은 아닐 것이다.


  물론 프로그래머라면, 머신러닝에 관해서 기본적인 내용은 알아 두는 게 좋을 것이고 이것이 앞으로 IT/SW산업에서 중요한 한 축을 맡게 될 것은 확실해 보인다. 어쨌든, 진짜 인공지능에 대한 답은 어떤 게 될지 전혀 모르겠다. 하지만 우리는 답을 찾을 것이다. 늘 그랬듯이.

작가의 이전글 쿠팡의 미래는 어떻게 될까?
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari