[토막지식 및 잡담] 인공지능과 딥러닝

tpp52   
   조회 822   추천 6    

인공지능(AI)

  - AI의 역사에 대해 말하자면 끝도 없지만 현시대에 AI의 의미는 확률모델을 이용한 유추(inference)를 뜻하고 일반인이 SF등 매체를 통해 인식하는 범용인공지능(AGI, Artificial General Intelligence)와는 커다란 gap이 있습니다. 즉 AI=확률및통계입니다.

  - 확률모델이란 일단 인위적으로 어떤 인과관계의 구조를 만들고 (예를 들면 <구름이 많다> -> <비가 온다>) 데이터를 수집해서 모델의 변수를 학습 (예를 들면 <구름이 많은 날에 100일 중 80일은 비가 오더라>) 하여 새로운 환경에 직면했을때 (예를 들면 오늘에도 구름이 많더라) 학습된 모델로 오늘 비가 올 확률은 80%라고 결과를 출력하는 확률이론을 바탕에 둔 수학모델을 뜻합니다.

  - 현실에서 해결해야 하는 문제들은 대부분 엄청 많은 변수들에 의해 영향을 받고(비가 오는 현상에는 구름, 습도, 온도, 위도, 풍향 등등 수많은 변수가 존재합니다) 사람들은 이런 문제를 해결하기 위해 아주 복잡한 인과관계 구조를 만듭니다. 또한 이런 복잡한 모델들을 학습하기 위하여 수많은 확률론에 기반한 inference방법들을 개발했고 이는 보통 Bayesian 기반 머신러닝이라고 부릅니다 (단순하게 통계에 의존하는 방법은 Frequentist 기반 방법론입니다). 그러나, 이는 크게 두가지 단점이 있습니다. 첫째로 사람이 인위적으로 자연현상이나 지능현상에 대한 인과관계 구축과 관련 변수 정의는 한계가 있고 완벽하지 못하고 시간과 자금이 많이 소요되고, 둘째로 모델이 완벽하다 한들 어마어마한 복잡도로 인해 전통적인 확률이론 기법으로는 다항식시간복잡도로 유추를 하는게 불가능하여 대부분의 경우 현실과 타협하여 모델에 추가적인 가설을 넣어 간소화하여 유추를 합니다(factorization, approximation, sampling). 그리고 이는 곧 정확도의 하락을 의미합니다. 

  - 이런 배경하에 딥러닝은 전통적인 확률기반의 방법들이 풀어나가던 문제들의 부분집합에 대해 보다 범용적인 방식으로 접근하여 변수->인과관계->예측 이라는 큰 틀을 센서->블랙박스->예측 으로 바꾸어 버렸습니다. 여기서 센서란 인간의 청각, 시각 처럼 기계가 사용하는 감각인 이미징, 레코딩을 뜻하며 과거 인위적으로 정의한 변수가 아닌 범용적인 이미지, 음성, 텍스트를 시스템의 입력으로 사용하는걸 의미합니다. 블랙박스는 차량에 달린 그것이 아니라 설계자인 나도 이것이 무엇인지 모른다는 의미에서 블랙박스로 부르는것으로 과거 확률론적 방법이 정교하게 설계한 CPU라고 한다면 딥러닝은 CMOS게이트를 아무렇게 수십억개 쌓아놓고 알아서 좋은 결과를 출력할때까지 gate연결을 바꿔가면서 튜닝하는거라고 보시면 됩니다. 


딥러닝(Deep Learning)

  - 사실 인공지능의 역사에서 딥러닝의 조상인 인공신경망은 전통적인 확률기반 방법론보다 훨씬 일찍 출현했으며 첫 컴퓨터가 나오기도 전이고 앨런 튜링이 튜링머신이란 논문을 발표하던 무렵인 1943년에 논문으로 발표되었습니다. 이때는 물론 활률추론이고 뭐고 자시고가 아니라 동물의 신경세포의 활동을 수학적으로 추상화한 발표에 불과했습니다. 

  - 초기 인공지능 연구에서 인공신경망을 연구하는 학파는 두가지 이유로 찬밥신세를 면치 못했습니다. 첫째는 실험규모/데이터규모/하드웨어 한계 등으로 인해 인공신경망의 실용성 자체가 입증되기 어려웠습니다. 둘째는 학계내 정치싸움인데 미국을 비롯한 주류대학 및 연구기관에서는 인공신경망 자체에 대해 냉소적이다 못해 왕따를 하는 분위기였고 이런 상황은 2000년대 초반까지 지속됩니다. 지금은 유명인사가 된 Bengio 박사님은 당시 논문을 낼때 되도록이면 Neural Network라는 단어 자체를 쓰려고 하지 않았고 (이런 표현이 있으면 reject될 확률이 높아진다고 합니다) 이것 또한 Deep Learning이란 단어표현이 나오게 된 배경중 하나입니다. 

  - 딥러닝 하면 인공신경망(Neural Networks)이지만 인공신경망은 딥러닝의 부분집합에 속할 뿐이지 전부가 아닙니다. Deep Gaussian Process와 같은 Bayesian 기반 방법도 딥러닝의 일종이고 현재는 계산복잡도문제를 해결하지 못해 사장하다 시피 한 갈래입니다. 딥 러닝 자체는 센서->다계층 블랙박스구조->예측 이라는 큰 틀이라고 보시면 편합니다. 

  - 딥러닝의 유용성은 다계층 구조로 인한 임의 함수 구현능력에 있습니다. 이미지나 음성 같은 입력을 x라고 했을때 우리는 원하는 결과 y값을 구할수 있는 함수 y = f(x)만 있으면 됩니다. 인위적으로 만든 f(x)는 한가지 타입의 문제밖에 적용을 못하지만 다계층 인공신경망은 2개 계층만 있어도 임의의 f(x)를 구현할 수 있다는걸 증명할 수 있습니다. 쉽게 생각하면 전자회로에서 한개 열의 상호 연결이 없는 10개의 gate로는 10가지의 gating밖에 못하지만 그 뒤에 한열의 gate들을 추가한뒤 적당한 앞-뒤 wiring을 통해 gating기능을 기하급수적으로 늘이는걸 생각하면 쉬울것 같습니다. 따라서 일정한 규모의 인공신경망은 입력 집합 X와 출력 집합 Y에 대해 인과관계가 존재하기만 하면 그게 아무리 복잡한 관계일지라도 f(x)를 찾아낼수 있게 됩니다. 

  - 딥러닝의 학습은 최적화이론에 있고 이는 중학교때 배웠던 2차곡선의 최소/최대 값을 찾는 거랑 본질적으로 일치합니다. 2차곡선에서 x축을 인공신경망의 내부 블랙박스의 연결방식이라 치면 y축은 인위적으로 정의한 출력값에 대한 평가치라 보면 되고 인공신경망의 학습은 곧 평가가 가장 좋게 나오는 인공신경망 f(x)의 내부 구조를 곡선의 최대값을 찾는 방식으로 구하는 과정이라고 보면 되겠습니다. 물론 실제는 2차곡선처럼 바로 구하지는 못하고 조금 꼼수를 써야 합니다. 

  - 일반적인 딥러닝에 필요한 수학은 생각외로 단순하고 고등수학 + 학부수학의 일부면 충분하고 수학과에서 다루는 진짜배기 수학은 거의 사용할 일이 없습니다. 또한 경험이 굉장히 중요합니다. Over-clock튜닝과정과 굉장히 유사합니다. 데이터 마다 수율이 다르고 모델마다 전압하고 타이밍이 다릅니다. 중요한건 개념을 이해하는 것이고 감?을 잘 잡는것입니다. 딥러닝 모델을 설계하는건 레고블럭을 쌓는거랑 비슷합니다. 하다보면 답이 나옵니다. 왜 잘나오는지 저하고 물으면 저도 잘 모릅니다. 아마 만든 사람도 잘 모를겁니다. 그래서 구글에선 에라 모르겠다 하고 딥 러닝 모델을 만드는 딥 러닝 모델을 개발했고 그게 현재 유행하는 Auto-ML의 기반이 되었습니다. 

  - 딥러닝을 배우기전 전통 확률기반 머신러닝을 배우는게 좋습니다. 최소한의 분석을 할수 있고 논문을 쓰거나 결과를 분석할때 도움이 됩니다. 사실 인공신경망중 가장 유명한 Multi-layer Perceptron은 Bayesian쪽에서 다루는 Deep Gaussian Process의 특수경우이고, 튜닝에 많이 쓰는 Dropout과 필살기인 모델앙상블은 Bayesian 쪽 접근법으로 해석이 가능하다는 점은 머신러닝 기본지식이 있어야 조금이라도 이해가 갑니다. 

  - 인공신경망은 말만 신경망이지 인간의 신경망하고 근본부터 다릅니다. 아예 다른것이라고 보면 됩니다. 기사같은데서 CNN은 인간의 망막하고 시각피질이 정보를 처리하는데서 영감을 받았다 하는데 뇌피설입니다. 인공신경망은 현재로선 좀 특별한 단순 확률모델에 불과하고 인간의 두뇌 신경망은 사실 인공신경망보다는 일종의 특수한 튜링머신-즉 컴퓨터라고 보시면 됩니다. 인간의 신경망은 훨씬 구조가 복잡하지만 연결밀도는 작으면서 뉴런 서로간의 연결이 다양하고 중요한건 기억생성과 같은 학습 방식이 정확히 밝혀진바가 없습니다. 물론 인간이 생각하는걸 보고 인공지능을 만들겠다한건 맞지만, 이건 새가 나는것을 보고 비행기를 만들었지만 새와 비행기가 근본부터 다른거랑 비슷합니다.

  - 딥러닝은 만능이 아닙니다, 인공지능분야 및 확률예측분야의 수많은 문제중에 딥러닝이 해결할 수 있는건 극소수에 불과하며 그마저도 최근 5년간 건져낸 성과입니다. 또한 전통적인 확률기반 머신러닝이 적합한 분야가 있고 딥러닝이 적합한 분야가 나뉘어져 있습니다 (물론 딥러닝으로 해결을 보는 경우가 압도적으로 많습니다). 일단 딥러닝으로 해결 가능한 문제는 인지 및 지능 현상 (즉 사람이 할수 있는 일부 지능현상들, 예를 들면 목소리를 듣고 글로 쓰기라든가)에 국한되어 있고 자연현상에서는 극히 제한적입니다(일기예보, 주가예측, 경기예측 등등). 자연현상은 오히려 전통적인 방법이 더 잘 먹힐때가 많습니다. 알파고의 본질은 20년전 체스머신 deep blue나 윈도우에 깔려있는 체스프로그램하고 차이가 없습니다, 전부 유명한 알파-베타 탐색 알로리즘입니다. 오로지 현재 상황에 대한 판독이 바둑이 체스에 비해 인위적인 규칙으로 계산이 불가능하여 인공신경망으로 대신했을 뿐입니다. 

  - 딥러닝으로 이루어낸 소위 인공지능은 일반인이 머리속에서 생각하는 인공지능과는 거리가 멉니다. 매체에서 전하는 인공지능 성과는 지나치게 과장되어 있고 4차산업혁명이 인공지능혁명이 맞다 하다라도 아직 시작도 못했다고 보는게 맞습니다. 이는 최근의 뜨거운 감자인 양자컴퓨터도 마찬가지입니다. 구글의 양자우위는 70년전 소련이 처음 터뜨린 수소폭탄의 의미와 비슷합니다. 70년전에 이미 핵융합이 적은 에너지를 넣고 많은 에너지를 얻을수 있다는게 입증되었지만 70년이 지난 오늘 상용 핵융합발전을 이야기하면 관련 전문가들은 아직도 머리를 절레절레 합니다. 핵융합상용화가 가져다 주는 경제적이익은 양자컴퓨팅 따위가 비교할수 있는게 아닙니다. 이렇게 돈이 되는걸 사람들이 게을러서, 노력이 부족해서 못해낸게 아닙니다. 그만큼 어렵기 때문이죠. 양자컴퓨팅과 진정한 의미의 범용인공지능도 마찬가지라고 봅니다. 양자우위도 증명되었고, 범용인공지능도 인간이라는 존재로 자명한 사실이지만 그걸 어떻게 실사용에 가능할 정도의 기술로 연마하느냐는 상상 이상으로 복잡하고 어려운 별개의 문제입니다.

  - 인간의 뇌를 컴퓨터에 비유한다면 현재 인공지능의 수준은 엘리베이터를 제어하는 회로판 진공관붙이에 가깝습니다. 좀더 복잡해봤자 진공관 라디오 회로 기판 정도입니다. 이런 애들은 엘리베이터를 제어하고 라디오를 트는 일을 빼고는 아무일도 못합니다. 다른 일을 하려면 회로를 다시 그리고 프린트 해야 합니다. 즉 "범용성"이 결여 되어 있습니다. 컴퓨터의 정식 명칭은 범용 튜링 머신입니다. 다른 일을 하고 싶으면 프로그램을 새로 짜기만 하면 하드웨어를 바꿀 필요가 없이 할 수 있습니다. (계산능력이 허용하는 범위안에서 말이죠) 현재 인공지능의 문제점은 이론적으로, 구조적으로, 시스템적으로 이러한 범용성이 결여되어 있습니다. 영어를 번역하는 신경망을 중국어를 번역하는 신경망으로 전환하는 transfer learning 어쩌고 하는것도 있긴 한데 그건 라디오 회로 일부를 다시 납땜해서 무전기회로로 바꾸는 작업과 유사한것이지 진정한 컴퓨터가 가지는 범용성과는 거리가 멀죠. 컴퓨터를 만들기 위해선 범용 튜링 머신 이론이 있어야 하고, 폰 노이만 시스템이 있어야 하고 각개요소를 구현한 CPU, 램 같은 구조가 있어야 합니다. 인공지능에는 현재 이 세가지에 해당되는것이 하나도 없습니다. 오로지 CPU나 램을 구현할 전자회로기초정도를 가지고 있는 20세기 초중반과 유사합니다. 

  - 인공지능연구는 요즘 많은 대학원과 회사에서 하고 있습니다. 하지만 대학원에 들어가 보면 아시겠지만 박사는 많고 교수자리는 적고 대학입시가 내신에 목매듯 교수초빙 평가도 실적에 목을 맵니다. 교수가 되어도 다가 아니고 본인과 제자들의 입에 풀칠이라도 할려면 돈을 벌어야 합니다. 이론, 추상적인것, 근본적인걸 연구하다 보면 실적은 세월아 네월아 되고 나한테 돈을 준 기업은 언제 결과물을 주냐고 일주일이 멀다하게 보챕니다. 회사도 다를바가 없지요, 아무리 연구소라 해도 현실과 동떨어진 연구를 환영할 회사는 없습니다. 사실 현실과 동떨어진게 아니지만 사람들은 한치 앞밖에 못봅니다. 범용이니 나발이니 보다 인식성능 몇%올리는게 장땡입니다. 물론 짱박혀 있을 곧을 잘 찾고 본인 능력이 되고 능력자 동료를 잘 섭외 하면 아주 불가능한건 아닙니다, 좀 외롭고 안 그래도 힘든데 더 힘들뿐이죠. 

  - 인공지능은 아직 갈길이 멀지만 날이 갈수록 다양해지는 연구와 산더미처럼 쌓이는 공개데이터들, 친절하게 남들이 이미 구현내 놓은 소스들 덕분에 엄청 재미있고 다양한 시도를 할수 있는것 또한 사실입니다. 다음글에는 그런 연구들에 대해 간단히 적어보도록 하겠습니다.

잘 모르는 분야의 글인데도 비유를 쉽게 해주셔서 편하게 읽었습니다. 많은 경험과 노력 끝에 얻어진 내용들일텐데
공유해 주셔서 진심으로 감사합니다. 많은 공부가 되었습니다.
좋은 글 감사합니다.
진신두 11-13
좋은 글 잘 읽었습니다.
고맙습니다. ^^
우뚱뿌셔 11-14
감사합니다~
스크랩해 갑니다~
Risingdream 11-17
와.. 놀랍습니다.. 이정도 식견을 가진 글은 처음인 것 같습니다.. 어떤 분이신지 어떤 일은 하시는 분인지도 너무 궁금하구요. 좋은 감사합니다




제목Page 1/7
2014-05   2893493   정은준1
2015-12   12624   백메가
12-11   108   앞짱구
11-27   472   Leo
11-27   373   색작업자
11-20   476   경기북
11-12   823   tpp52
11-12   1437   tpp52
11-11   753   경기북
10-29   876   존쓴즈로션
10-23   1045   MS77
10-21   640   MikroTik이진
10-10   1205   leeplay
10-09   1131   iyah4888
09-30   1284   KIMS99
09-22   1077   MikroTik이진
09-19   1728   공돌
09-18   1884   자연
09-02   1392   백만스물하나
08-18   2361   딥린이
08-11   2875   비와서코털…
08-11   1793   긍정공돌이