1990년대 초에 바다 건너 미국에서는 바둑, 오목, 체스, 스크래블 같은 보드 게임의 AI 위주로 ‘컴퓨터 올림피아드’라는 대회가 잠깐 개최된 적이 있었다. 기억을 정말 오랜만에 다시 떠올린다. ㅠㅠㅠㅠ
IOI라고 불리는 '국제 정보 올림피아드'와 헷갈리지 마시길. 요즘은 저걸 검색하면 구글도 자꾸 IOI 쪽으로 안내하는 것 같은데 그거랑은 다르다. 컴올은 공식 명칭에 '국제 I'라는 말이 없다. ㄲㄲㄲㄲ

IOI는 대학에 진학하지 않은 중등 수준의 10대 청소년들이 문제 푸는 프로그램을 '즉석에서 작성'해서 그 코드의 성능과 정확도를 평가 받는 대회이다. 그 반면, 저건 현업에 종사하는 소프트웨어 개발자/개발사들이 오랫동안 미리 연구 개발해 놓은 자기 자기 제품의 AI 성능을 현장에서 겨루는 대회이다. 즉, 로봇 쥐 미로 찾기와 비슷하며, 저런 보드 게임을 사람이 아니라 컴퓨터끼리 대국한다는 차이가 있다.

근데 컴터 올림피아드도 첫 대회가 1989년부터 시작됐다니.. 그건 IOI와 동일하다. 그리고 가끔은 IOI에서도 간단한 게임을 진행하는 프로그램을 작성해서 주최측 AI와 대국하고 채점되는 형태의 문제가 나오기는 한다. 그러니 둘이 완전히 다른 별개 분야의 대회까지는 아니긴 하다.

본인이 저 대회에 대해 들어 본 건.. 한때 왕년에 영단어 보드 게임인 스크래블의 AI를 연구하느라 관련 자료를 많이 찾아봤었기 때문이다.
무려 1988년에는 World's fastest Scrabble program (by 앤드루 아펠, 가이 제이콥슨)이라는 논문이 CACM에 게재돼서 후대의 스크래블 AI 개발자에게 아주 큰 영향을 줬다. 모든 가능한 수를 찾는 기본 작업은 이 논문에서 소개된 알고리즘으로 해치우고, 그 뒤에 단순히 당장 점수가 가장 높은 수를 넘어 장기적인 이익을 따지는 건 전략과 휴리스틱의 영역으로..

사용자 삽입 이미지

오래된 생각이긴 하다만, 스크래블 게임의 컴퓨터 구현은 대학교 수준의 자료구조와 알고리즘 코딩 주제로 아주 적합하다. 만약 내가 학원이나 학교에서 저런 전공 과목을 가르칠 기회가 있다면 실습이나 과제로 저걸 꼭 넣었지 싶다. =_=;;
하긴, 석사 논문으로 두벌식 한글 연속입력 오토마타를 연구했던 모 교수님은 자기가 강의하는 형식언어와 오토마타 수업 시간에 한글 입력 오토마타를 구현하는 과제를 고정 편성으로 넣었더구만.. 그런 것처럼 말이다.

아무튼 그건 그렇고..
저 논문을 투고했던 연구진은 딱 이듬해인 1989년, 제1회 컴퓨터 올림피아드의 스크래블 부문에 참가해서 우승했다고 한다. 타이밍 절묘하군..

그 뒤 2회와 3회에서는 Jim Homan이라고 MIT 출신의 다른 엄친아 공돌이가 개발한 스크래블 AI가 2년 연속 우승을 차지했다. 정황상, 아마 저 논문 내용을 바탕으로 AI를 더 발전시킨 것 같다.
그리고 그 사람은 저 AI 엔진을 토대로 CrossWise라는 굉장히 깔끔한 크로스워드 게임(설정을 맞춰서 스크래블 게임도 가능한!!) 프로그램을 개발해서 판매했다.

그것 말고 브라이언 셰퍼드라는 사람이 개발한 Maven이라는 스크래블 AI도 유명했다. 얘도 개발 역사가 1980년대로 거슬러 올라갈 정도로 오래됐고, 스크래블 보드 게임의 총판사에서는 Maven을 공식적으로 밀었다고 하는데.. 얘에 대해서는 나도 더 아는 바가 없다. 이쪽은 딱히 컴올에 참가한 이력도 없는 것 같다.

뭐, 이것도 다 지난 얘기이다. 지금은 스크래블 게임쯤이야 폰이나 웹에서도 돌릴 수 있을 텐데.. 유행이 지난 것 같다.
하다못해 바둑조차도 세계를 석권해 버린 알파고 개발진이 "이젠 바둑은 더 연구할 게 없다~~" 명목으로 발을 뺐을 정도이니 말이다. -_-;;

저 컴퓨터 올림피아드는 스폰서 내지 운영진을 섭외할 수 없어서 1991년 이후부터 1990년대 내내 맥이 끊겼다. 그러다가 2000년대 이후부터 다시 개최는 되고 있지만.. 다들 아시다시피 인지도가 별로 없고 마이너하다는 냄새가 풍긴다. 고전적인 최적화나 휴리스틱 위주의 AI는 유행이 끝나고 닥치고 인공신경망이 대세가 돼서 그런지..??

우리나라에서 보드 게임 AI 외길을 가고 있는 제품은 '장기도사'가 유일하지 싶다. 의미 있는 연구이긴 하다만, 보드 게임이라는 장르 자체도 마이너해지고, AI 패러다임도 마이너해져서 수요가 무척 적을 것 같다. 뭐, 그런 식으로 염세적으로만 따지자면 본인의 주특기인 세벌식 자판도 마이너 중의 초 마이너이긴 하다만 말이다. -_-;;

고전적인 AI 대신 2010년대를 풍미했던 건 인공신경망들이었다. 2012년, 사물 인식을 기가 막히게 잘한다는 AlexNet부터 시작해서 VGG, ResNet, YOLO가 뒤를 잇고 chatGPT, transformer 등등이 쏟아져 나왔으니까.
컴퓨팅 패러다임이 싹 달라졌다. 이 과정에서 파이썬은 머신러닝 학계와 업계의 공용 언어가 되었고, 교육과 실무를 다 장악해 버렸다. ㄷㄷㄷㄷ 파이썬과 루아(Lua)가 처지가 극과 극으로 달라지게 될 줄은 20년 전엔 정말 예상할 수 없었다. 이것도 생각할 점이라 하겠다.

글을 맺기 전에 잠깐.. 그러고 보니 World Cyber games도 생각난다. 얘는 컴퓨터 AI가 아니라 사람이 겨루는 대회이지만, 그래도 E-스포츠 전문이니 뭔가 컴퓨터스럽고 사이버틱한 느낌이 나기 때문이다.
얘도 2001년에 처음으로 시작됐다가 2010년대엔 스폰서를 못 구해서 한동안 중단됐던 적이 있다. 그 뒤 지금은 재개되기는 했지만 권위나 인지도가 예전만 하지는 않다는 게 컴퓨터 올림피아드와 비슷해 보인다.

Posted by 사무엘

2024/06/25 08:35 2024/06/25 08:35
, , , , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/2312

우리가 매체에서 접하는 옛날 풍경 모습이란 게 한때는 그냥 사람이 붓에다 물감 찍어서 그린 그림이 전부였다.
그러다가 그게 흑백 사진을 거쳐서 컬러 사진으로 바뀌었는데, 이제는 애초에 흑백 사진밖에 전해지는 게 없던 장면조차 컬러로 재구성된 게 늘고 있다.
컬러이더라도 화질이 안 좋았던 것을 리마스터링까지 한다. 이런 건 소실된 색/화소 정보를 AI의 힘으로 창작해서 복원한 것이다.

AI는 완전히 생판 무에서 유를 창조할 정도로 혁명적인 일은 절대 못 한다.
뭔가 패턴이 있고 생노가다 같긴 하지만, 진짜 노가다보다는 미묘하게 복잡하고 전문성과 창의성(?)이 필요해서 자동화가 안 되고 인력 수작업이 필요했던 일들.. 그러면서 법적 책임과 부담감이 크지는 않은 일.
AI는 딱 그런 업종을 0순위로 잠식할 것으로 보인다.

(1) 음악: 없는 곡을 AI가 작곡도 하는 세상인데, 기존 악보 멜로디를 읽고서 E G Fm 등 코드를 매긴다거나 반주를 넣는 건(편곡) 당연히 자동화될 것이다. 이것도 답이 한 가지만 있는 게 아니기 때문에 곡에 대한 해석과 창작이라는 범주에 든다!
코드를 만에 하나 좀 이상하게 넣었다고 해서 당장 인명· 재산 손실이 발생하는 것도 아니고.. AI화하기에 딱 좋아 보인다.

(2) 폰트: 한 폰트 패밀리로부터 다양한 굵기 내지 이탤릭 바리에이션을 자동 생성하기. 윤곽선을 단순히 기계적으로 산술적으로 부풀리기만 하는 게 아니라, 그로 인한 세밀한 공간 배치를 인간이 보기 좋게 알아서 하는 것 말이다. 힌팅을 더 똑똑하고 정교하게 생성하는 것도 포함이다.
그리고 한글· 한자의 경우, 샘플 몇 글자만 넣어 주면 그로부터 규칙성을 파악해서 나머지 수천 자의 글자 모양까지 알아서 유추해서 자형 생성하기.

AI는 한글· 한자에 대해서도 알파벳처럼 폰트들이 엄청 많이 넘치도록 개발되게 도와줄 것이다. 한글· 한자가 글자수가 수천 자나 된다고 해서 진짜로 문자로서 자형의 절대적인 정보량? 엔트로피가 알파벳의 수백 배 이상인 건 아니다. '가각간갇'이 무슨 알파벳의 ABCD 급으로 서로 완전히 다른 건 아니기 때문이다.

옛날엔.. 알파벳은 글자 수가 적어서 폰트도 크기가 작고 쉽게 만들 수 있는 반면.. 한글 한자는 너무 무겁고 뚱뚱하고 컴퓨터 자원도 많이 차지한다고.. 이러니 동양이 서양보다 국가 경쟁력이 떨어지고 열등하고 도태할 수밖에 없다는 식으로 극단적으로 생각하는 정서가 있었다. 100여 년 전, 공 병우니 최 현배니 하던 시절엔 기계식 타자기만 갖고도 문자의 우열이 비교될 지경이었으니 말이다.

지금은 그 정도로 강박관념을 가질 필요는 없다. 컴퓨터 자원이야 풍부해서 넘쳐나고, AI가 사람으로 하여금 진짜로 본질적으로 창의성이 필요한 작업만 하면 되게 나머지를 보조해 줄 것이기 때문이다.
다만.. 인간이 이런 AI를 만들기 위한 연구 개발은(코딩, 수학식, 논문 등)... 알파벳처럼 원초적으로 가볍고 취급하기 쉬운 tier 1급 문자로 행해졌음이 부정할 수 없는 사실이다.

(3) 코드 정적분석: 재래식 알고리즘만으로는 컴퓨터 프로그램을 정적분석만으로 실행 결과를 100% 정확하게 예측하고 논리 결함을 찾아내는 게 불가능하다. 그 이상부터는 그냥 휴리스틱/AI의 영역으로 갈 수밖에 없다.
그리고 코드뿐만 아니라 주석에 적힌 자연어 문구도 의미를 파악해서 "이거는 시스템 정보나 패스워드가 하드코딩된 거 아냐?" 같은 것도 정적분석이 찾아낼 수 있다. AI는 재래식 정적분석 툴의 쓸데없는 오탐들을 줄이는 데 기여할 수 있다.

(4) 그 밖에 이런 AI 기술로 내 생각엔 인쇄된 글자 모양을 보고 그냥 OCR을 하는 게 아니라 이게 무슨 폰트인지를 알아맞힌다거나, (산돌, 윤~~ ㅋㅋㅋ) 거대한 인파 사진을 보고 여기 사람 머리가 몇 개인지 카운트 하는 것.. 아 이건 딥러닝 AI까지는 아니라 그냥 컴퓨터 비전이려나.. 이런 기술이 개발되면 일상생활에 도움이 될 것 같다.

(5) 그리고 식당· 카페의 무인 키오스크가 아예 커맨드라인 콘솔이 도입될 게 아니라면 진짜 사람 말을 빨랑빨랑 알아들었으면 좋겠다. 지금 터치스크린 인터페이스는 너무 느리고 답답한 반면, 단순 주문 접수는 지금 정도의 NLP로도 그렇게 어렵지 않을 테니 말이다. 확실히 AI 덕분에 단순 안내 데스크나 전화 상담 직원은 많이 없어질 것 같다.

다만, AI는 저렇게 창의성이 필요한 분야, 참고· 보조용 도구로서 강세이다. 법적 책임까지 수반되는 분야에 진입하는 건 많이 더디지 싶다. 그래서 의료 법조 쪽은 그냥 자문· 상담부터 시작할 것으로 보이며, 자동차의 완전 자율주행은 아직 갈 길이 멀어 보인다.

* 철도는 통제가 너무 잘 된 환경이니 AI 없이 재래식(?) 로직만으로 이미 무인 자동운전이 가능할 지경이다. 차량 번호판 숫자나 QR코드를 인식하는 것과 비슷한 수준이다. (이 정도로 잘 통제된 이미지의 인식은 AI가 아니라 그냥 통상적인 컴퓨터 비전 분야..)
그러니 자동차와 철도의 중간 난이도인 비행기나 선박의 운항에 AI 기반의 자동 운항이 먼저 파고들지 않을까 싶다. 허나, 승객 수백 명이 타는 여객기에 무인까지는 아니어도 부기장이 없어지고 1인 조종이 가능해질지는 과연..?? 저비용 항공사에서 작은 기종부터 1인 조종을 시킬 수는 있겠다.

* 미용· 이발은 굳이 AI화 자동화하자면 못 할 건 없지만.. 굳이 그럴 필요가 없다고 여겨진다. 사람이 직접 가위 들고 사람 머리 깎는 건 가까운 미래에도 변함없을 것 같다. ㄲㄲㄲㄲㄲㄲ

* 빌 게이츠는 무려 25~30년 전부터 제품에다가 자연어를 알아듣는 AI 비서? 에이전트를 넣으려고 애썼던 사람이다.
마소 Bob이라든가 Office 길잡이..;;는 좀 무리한 흑역사였긴 하지만.. 반대로 저 아저씨가 시대를 앞서간 시도를 한 거라고 볼 수도 있다. 그런 귀요미를 겨우 램 16MB, 150MHz짜리 펜티엄 컴터에다 집어넣으려 했으니 욕 먹었던 거지..;; 현실의 기술이 아이디어를 뒷받침하지 못했다.

* 미국 말고 의외로.. 중국이 2010년대 이후부터 머신러닝, 언어모델 쪽 연구를 많이 하는 것 같다. 외국의 최신 논문을 찾아 보면 중국 사람 이름이 엄청 많이 보인다.
그런데 중국은 그런 첨단 AI 기술을 이용해서 인터넷의 불온 컨텐츠를 검열하고 인민들 행동패턴을 감시하는 데도 적극 활용한다는 게 함정....

지난 1990년대 중반까지 기계번역 프로그램이 잠깐 나오다가 유행이 식은 적이 있었다. 일한이라면 모를까 영한은 이거 뭐 도저히 실용적인 결과가 나오지 않았기 때문이다. 하물며 한영은.. 난 지구가 멸망할 때까지 절대 개발되지 못할 거라고 생각했었다.
그런데 인공신경망 기반 AI로 언어 장벽이 이 정도까지 무너지고 낮아진 건 참으로 놀라운 일이다.

물론 무슨 기업간 회의나 대통령 연설, UN 컨퍼런스를 기계번역으로 때워도 되는 건 아니지만, 일상적으로 뭔 말인지 내용 파악하는 용도로는 기계번역이 정말 쓸 만해졌다.
게다가 이게 텍스트를 읽는 것에만 국한되지 않는다. waveform 형태의 말소리를 받아 적은 transcript를 생성하고 그걸 번역까지 하다니.. 유튜브에서 자기 동영상의 음성에서 자막을 아주 정확하게 실시간 생성해 주는 것만 해도 신기하기 그지없다.

암호 해독을 위해 언어학자가 아니라 수학자가 필요한 시대는 이미 20세기 중후반에 찾아왔다. 이제는 기계번역이나 자연어 처리 영역도 언어학자가 아니라 수학자와 데이터 과학자의 차지가 됐다.
2020년대가 되니 인간이 달이나 화성이나 해저에 기지를 만드는 건 전혀 가망이 없고, 그 대신 쌍팔년도 SF에서 거의 상상하지 못했던 스마트폰과 유튜브가 대세가 됐다. 그래서 카폰이라는 게 완전히 사라졌고, 무전기는 군· 경· 소방 같은 특수 직종에서나 쓰이는 물건이 된 거다. 뭐, 언어 자동 통번역기는.. 그 시절에도 상상은 했었고 얼추 실현돼 간다.

머신러닝에서 모델이라는 건 코드와 데이터의 성격을 모두 지니고 경계가 참 애매한 것 같다. =_=;; 물론 순수하게 데이터에 속하는 건 훈련용으로 먹이는 텍스트나 그림들이겠지만 저런 신경망 자체도 머신러닝 라이브러리 코드의 관점에서는 데이터일 것이다.
그리고 훈련시키는 건 뭔가 압축하는 것과 비슷하고, 이를 바탕으로 현실의 문제를 풀이하는 건(추론) 압축을 푸는 것과 비슷해 보인다.

이런 AI는 참 엄청나고 대단하긴 하지만.. 공짜로 평범한 계산량으로 돌아가는 물건이 아니다. AI를 돌리기 위해 동원되는 컴퓨팅 자원을 보면 정말 억소리 난다.
chatGPT가 저렇게 답을 '즉시' 뱉어내기 위해서 지구 반대편에서는 상상을 초월하는 고성능 슈퍼컴이 전기를 있는 대로 잡아먹고 열을 펑펑 내뿜으며 돌아가야 한다. 살인적인 분량의 신경망 연산이 행해지기 때문이다. 저기 서버가 하루 유지 비용이 원화로 몇 억? 몇십 억이니 그런다. 이때 컴퓨터 내부의 신경망 상태는 상상을 초월하게 너무 복잡하기 때문에 훈련이나 추론 과정의 추적이 도저히 불가능할 지경이다.

인간은 오랫동안 절대 불가능하다고 여겨졌던 유인 달 착륙과 귀환을 몇 차례 성공하긴 했다. 그러나 그건 정말 위험하고 어렵고 힘들고 비싸게 가까스로 해낸 것이었다. 민간인의 대중적인 달 여행이라든가 달· 화성 기지로 이어지는 건 지금 관점에서도 가까운 미래엔 요원하다.

그리고 AI의 발달 추세에도 이런 우주 개발과 비슷한 면모가 있는 것 같다. 과거에 불가능하다고 생각했던 자연어 처리가 가능해지기는 했지만.. 그걸 가능케 하는 컴퓨팅 환경이 저 우주 로켓 같은 물건이라는 거다. 물론 컴퓨터 업계도 가만히 앉아서 손가락만 빠는 건 아니니.. 그 연산에 특화된 CPU를 만들어 간다.

30여 년 전, 486이니 펜티엄이니 하던 시절엔 멀티미디어 지원이 컴터 업계의 최대 관심사였던 것 기억하시는가?
크게 (1) 동영상 아니면 (2) 게임용 3D 그래픽 실시간 렌더링이라는 두 분야이다.
하긴 그 시절엔 MPEG 동영상을 감상하기 위해서 전용 카드를 꽂네 마네 했던 것 같다. 요즘은 재생이 아니라 컴터 화면을 실시간으로 녹화하고 인코딩할 때에나 전용 카드가 필요한 듯하다.

나중에는 엄청난 물량을 자랑하는 멀티미디어 연산에 특화된 명령이 CPU에 추가되고, GPU라는 건 그래픽 가속기라는 이름으로 도입되곤 했었다.
그랬는데 이제는 단순 그래픽 처리를 넘어 머신러닝 신경망 연산에 특화된 CPU가 대세이다. 당연히 서버에 접속해서 API를 호출해서 구현된 거라고 생각한 통· 번역이 핸드폰에서 비행기 모드까지 켰는데도 동작한다는 게 정말 신기하다.

저런 컴퓨터에 비해 인간의 두뇌는? 환경에 끼치는 부작용이 없고 당분 몇 스푼만 공급해 주면 한 나절을 거뜬히 돌아간다.
물론 두뇌와 컴퓨터가 서로 비교 가능한 존재는 아니지만 어떤 면에서는 생체라는 게 참 경이롭다. 두뇌와 컴퓨터는 다리와 바퀴가 다른 것만큼이나 다른 건지도 모른다.

그러고 보니 우리나라의 이스트소프트는 맨 처음 1990년대엔 21세기 워드라는 평범한(?) 업무용 프로그램을 만들었다가 알툴즈로 명성 내지 악명을 떨쳤고.. 그러다가 게임이 더 돈 된다고 생각했던지 '카발'이라는 온라인 게임을 만들었고 지금 와서는 AI 기업을 표방하고 있다. (게임과 AI 모두 GPU가 쓰인다는 공통점이..)
각각의 제품들이 어떤 평을 받는지에 대해서는 논란의 여지가 있지만, 어쨌든 시류를 따라 참 다양한 분야를 개척하면서 생존하려고 애쓴다는 것 하나는 확실해 보인다.

Posted by 사무엘

2024/06/22 08:35 2024/06/22 08:35
, , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/2311

1. 완전히 새로운 알고리즘 분야

컴퓨터는 정말 대단한 기계이다.
정보의 최소 단위인 0과 1을 분간하고, 임의의 주소가 가리키는 메모리의 값을 읽거나 쓸 수 있고 프로그램의 실행 지점도 메모리의 값을 따라서 변경 가능하게 했더니(튜링 완전) 그야말로 무궁무진한 양의 정보를 가히 무궁무진한 방식으로 처리가 가능해졌다.

이런 이론적인 근간이 마련된 뒤에 반도체의 집적도가 더 올라가고 메모리와 속도가 더 올라가고 가격이 더 내려가는 건 그냥 시간 문제일 뿐이었다.
그런데.. 단순히 복잡한 계산이나 방대한 검색을 빠르게 해내는 것만으로 컴퓨터가 인간의 고유 영역을 완전히 침범하고 대체했다고 보기는 곤란하다. 그건 그냥 자동차가 인간보다 더 빠르고 중장비가 인간보다 더 힘센 것만큼이나, 기계가 인간의 역할을 일부 보조하고 확장하는 것일 뿐이다.

물론 단순히 동력과 관련된 분야는 말이나 소 같은 동물도 인간보다 약간이나마 더 우위에 있긴 했다. 그에 비해 정보 처리 분야는 자연계에 지금까지 인간의 라이벌 자체가 아예 존재한 적이 없었다는 차이가 있다.
그러나 인간도 속도가 느리고 개인의 능력이 부족할 뿐이지.. 많은 인원을 동원하고 많은 시간만 주어지면 기계적인 정보 처리 정도는 '유한한 시간' 안에 언젠가 다 할 수 있다. 일을 좀 빠르고 정확하게 수행하는 것만 갖고 '창의적이다', '인간을 닮았다'라고 평가해 주지는 않는다.

정렬과 검색에, 다이나믹이니 분할 정복이니 하는 최적해 구하기처럼 고전적인 분야에서 고전적인(?) 방법론을 동원하는 알고리즘은 이미 수십 년 전에 다 연구되어서 깔끔한 결과물이 나왔다. 그런 건 이미 대학교 학부 수준의 전산학에서 다 다뤄지는 지경이 됐으며, 정보 올림피아드라도 준비하는 친구라면 아예 중등교육 수준에서 접하게 됐다.

그런데 현실에서는 그렇게 깔끔하게 떨어지지 않는 더 복잡하고 난해한 문제를 풀어야 한다. 깔끔하게만 접근했다가는 시간 복잡도가 NP-hard급이 되어 도저히 감당할 수 없는 문제를 적당히 타협하여 풀어야 한다.
중· 고등학교의 고전역학 문제에서는 "공기의 저항은 무시한다" 단서가 붙지만, 대학교에 가서는 그런 것까지 다 고려해야 하는 것처럼 말이다.

대수적으로 답을 구할 수 없는 문제에 대해 근사치를 효율적으로 구하기 위해 수치해석이라는 기법이 등장했듯, 전산학에도 각종 휴리스틱과 근사 알고리즘이라는 게 존재한다. 압축 알고리즘으로 치면 무손실이 아닌 손실 분야인 셈이다. 구체적인 건 학부 수준을 넘어 대학원에 소속된 별도의 연구실에서 다룰 정도로 난해하다.

그런데.. 이런 것들은 여전히 사람이 범접하지 못하는 분량의 계산 문제를 최대한 빠르게 효율적으로 푸는 방법에 대한 연구이다. 그런 것 말고 사람은 간단히 하는데 컴퓨터에게는 굉장히 난해해 보이는 일이 있다.
컴퓨터로 하여금 텍스트나 음성 형태의 인간의 자연어를 알아듣고 타 언어로 번역한다거나, 그림으로부터 글자 같은 정보를 알아보게 할 수 없을까?
컴퓨터를 바둑· 장기· 오목 같은 게임의 고수로 키울 수 없을까?

이건 단순히 TSP(순회하는 세일즈맨 문제)를 더 그럴싸한 가성비로 다항식 시간 만에 푸는 것과는 분야가 다르다.
저런 걸 기계가 인간과 비슷한 속도와 정확도로만 해내더라도 굉장한 이득이다. 기계를 부리는 비용은 인간을 고용하는 인건비보다 넘사벽급으로 저렴한 데다, 기계는 인간 같은 감정 개입이 없고 지치지 않고 실수도 전혀 하지 않기 때문이다.

하물며 속도와 정확도가 인간 전문가의 능력을 능가하게 된다면 게임 끝이다. 기계적인 단순 노동력이나 판단력만을 요구하는 일자리는 사라지며, 인간은 기계가 대신할 수 없는 더 창의적이고 전문적인 일자리로 갈아타야 할 것이다.

2. 흑역사

소위 '인공지능'에 대한 연구는 진공관이니 트랜지스터니 하던 무려 1950년대 컴퓨터의 초창기 때부터 천조국의 날고 기는 수학자, 컴퓨터 공학자들에 의해 진행돼 왔다. 특히 세부 분야 중 하나로서 기계번역도 연구됐으며, 1954년에는 조지타운 대학교와 IBM이 공동 연구 개발한 기계번역 솔루션이 실제로 출시되기도 했다.

인류 역사상 최초로 기계번역이란 게 연구된 언어는 러시아어 → 영어이며, 이는 전적으로 냉전 덕분이다. 하긴, 2차 세계 대전 때는 번역이 아니라 암호를 해독하는 기계가 개발되긴 했었다. 적성국가들의 언어 중 일본어는 영어와의 기계번역을 연구하기에는 구조가 너무 이질적이고 어려웠을 것이다.

그래도 인간 번역가가 아닌 컴퓨터가 러시아어 텍스트로부터 영어 텍스트를 허접하게나마 뱉어 내자 학계와 업계는 흥분했다. 이런 식으로 조금만 더 연구하면 컴퓨터가 금방이라도 세계의 언어 장벽을 다 허물어 줄 것 같았다.

그때는 학자들이 자연어에 대해서 뭔가 순진 naive하게 원리 원칙대로 규칙 기반으로, 낭만적으로 접근하던 시절이었다. 인간의 언어도 무슨 프로그래밍 언어처럼 유한한 문법과 생성 규칙만으로 몽땅 다 100% 기술 가능하고 parse tree를 만들고 구문 분석이 가능할 거라고 생각했다. 물론 그 규칙이 간단하지는 않겠지만, 촘스키 같은 천재 언어학자 몇 명을 외계인과 함께 골방에다 갈아 넣고 며칠 열나게 고문하면 다 찾아낼 수 있을 것이고.. 그러면 언어의 기계 분석은 게임 끝이지 않겠냐 말이다.

궁극적으로는 전세계 모든 언어들의 교집합과 합집합 요소를 망라하는 중간(intermediate) 언어도 만들 수 있을 것이라고 생각했다. 세계 각국의 언어들을 그 중간 언어와 번역하는 시스템만 만들면 전세계 사통발달 언어 번역 시스템을 만들 수 있지 않겠는가? 이 정도 생각은 나조차도 한 적이 있다.

그랬으나.. 뚜껑을 열어 보니 영광은 거기서 끝이었다.
기계번역은 빵점 백지 상태에서 4, 50점짜리 답안을 내놓는 것까지는 금방 할 수 있었지만, 거기서 성적을 7, 80점짜리로라도 올려서 실용화 가능한 상품은 오랫동안 연구비를 아무리 투입해 줘도 선뜻 나오지 않았다.
인간의 언어라는 게 절대로 그렇게 호락호락 만만하지 않고 매우 불규칙하고 복잡한 구조라는 게 연구하면 연구할수록 드러났기 때문이다. 지금까지 사용한 연구 방법론 자체가 약발이 다하고 한계에 다다랐다.

이 때문에 1970년대에는 돈줄을 쥔 높으신 분들이 "인공지능"이란 건 밥값 못 하는 먹튀 사기 허상(hoax)일 뿐이라고 매우 비관적이고 보수적으로 생각하게 됐다. 컴퓨터는 그냥 계산기일 뿐, 그 돈으로 그냥 인간 번역가나 더 양성하고 말지..
이 단어 자체가 학계의 흑역사 급으로 금기시되어 버렸다. 인공지능이란 게 키워드로 들어간 논문은 저널에서 믿고 걸러냈으며, 관련 연구들의 연구비 지원도 모조리 끊길 정도였다.

이 현상을 학계에서는 제1차 AI 겨울(혹한기, 암흑기, 쇼크, 흑역사 등등...)이라고 부른다. 과거의 무슨 오일 쇼크 내지 게임 업계 아타리 쇼크처럼 말이다.
그렇게 고비를 겪었다가 더 발달된 연구 방법론으로 활로가 발견되고, 그러다가 또 2차 겨울을 극복한 뒤에야 요 근래는 인공지능의 중흥기가 찾아왔다고 여겨진다.

3. 문제는 데이터

지금은 기계번역이건, 게임 AI이건, 패턴인식이건 무엇이건.. 인공지능의 주재료는 규칙이 아니라 데이터이다.
기계번역 시스템을 개발하는데 언어학 문법 지식이 동원되지 않으며, 보드 게임 AI를 만드는데 통상적인 게임 규칙 기반의 알고리즘이 동원되지 않는다. 이상한 노릇이 아닐 수 없다.

그러는 게 아니라 요즘 인공지능이라는 것은 아이디어는 매우 간단하다. 기출문제와 정답을 무수히 많이, 인간이 상상할 수도 없을 정도로 많이 주입시켜 준 뒤, 이로부터 컴퓨터가 규칙성을 찾아내고 새로운 문제가 주어졌을 때 정답을 추론하게 하는 방법을 쓴다. 해결하고자 하는 문제를 기술하고 정답의 조건을 명시하고 알고리즘을 구현하는 걸 인간이 일일이 하는 게 아니라.. 그 자체를 컴퓨터가 알아서 하게 하는 것이다.

이것이 '기계학습', 그 이름도 유명한 machine learning이다. 이것이 이전에 인공지능을 구현하는 방법론이던 '전문가 시스템'을 대체했다. 이런 무지막지한 방법론이 적용 가능할 정도로 요즘 컴퓨터의 속도와 메모리가 매우 크게 향상된 덕분이다.

인간의 입장에서 기계학습을 시키는 방식은 지도(supervised learning) 또는 비지도 학습으로 나뉜다.
그리고 기계의 입장에서 학습(?)을 실제로 수행하는 방법으로는 인공 신경망, 앙상블, 확률(은닉 마르코프 모델), 경사/기울기 하강법 같은 여러 테크닉이 있는데, 기울기 하강법은 복잡한 선형 방정식을 푸는 심플렉스와 비슷하다는 느낌도 든다.

인공 신경망은 생물의 신경망이 동작하는 원리에서 착안하여 만들어진 기계학습 모델이라고는 하지만 당연히 실제 인간 뇌의 작동 방식에 비할 바는 못 된다.
MLP니 CNN이니 RNN이니 하는 신경망 용어들이 존재하며, 그리고 이 인공 신경망을 어떻게 하면 잘 갖고 놀 수 있을까 고민하는 연구 분야를 '딥 러닝'(심층학습)이라고 한다. 마치 네트워크 계층의 다양한 기술 용어만큼이나 AI에도 계층별로 다양한 기술 용어가 존재한다.

게임 AI라면 단순히 뭔가를 인식하고 분류만 하면 장땡인 게 아니라 뭔가 극한의 최적해를 찾아가야 할 텐데.. 이런 걸 학습시키는 건 딥 러닝의 영역이다. 알파고처럼 말이다. 그런데 알파고 하나가 지구상의 최고의 인간 바둑 기사를 이긴 것은 물론이고, 다른 재래식 알고리즘으로 십수 년간 개발되어 온 기존 바둑 AI들까지도 다 쳐발랐다니 무서운 일이 아닐 수 없다. 뭐, 개인용 PC 한 대만으로 그렇게 동작하는 건 아니긴 하지만 말이다.

오늘날 연구되고 있는 인공지능은 무작정 인간과 동급으로 생각하고 창조하는 기계는 당연히 아니고, 컴퓨터의 막강한 메모리와 계산 능력으로 지금까지 주어진 데이터를 토대로 새로운 상황에 대처하는 답안을 꽤 그럴싸하게 제시하는 '약한 인공지능'일 뿐이다.

쉽게 말해 "서당 개 삼 년이면 풍월 읊는다"처럼 말이다.
추리소설를 한 1000편쯤 읽고 나니 다른 새로운 추리 퀴즈에도 설정이 뻔히 보이고 답이 보인다.
드라마를 1000편쯤 보고 나니 비슷비슷한 드라마들은 스토리 전개가 어찌 될지 '안 봐도 비디오'처럼 된다. 그런 것 말이다.

그런데 저게 말처럼 쉬운 일인 건 아니다.
학습 대상인 무수한 텍스트· 이미지· 음성 데이터 내지 각종 게임 복기 데이터를 어떤 형태로 수치화해서 벡터 형태로 표현할 것인가?
그리고 '학습'이라는 걸 하는 동안 해당 AI 엔진의 내부에서는 구체적으로 무슨 계산 작업이 행해지는가?
컴파일러만 해도 결과물로 OBJ 파일이라는 게 생기는데, 그 내부적인 학습 상태는 어떤 형태로 표현되며, 이것만 따로 저장하고 불러오는 방법이 존재하는가? 본인은 AI알못이다 보니 전혀 모르겠다. ㅡ,.ㅡ;;

수천, 수만, 아니 그 이상 셀 수 없이 많은 숫자들로 이뤄진 벡터 I가 또 수없이 많이 있다고 치자. 이 숫자들은 현실 세계를 표현하는 미세한 자질을 표현한다.
그런데 어떤 블랙박스 함수 f가 있어서 f(I_1..n)에 대한 결과가 O_1..m라는 벡터 집합으로 나왔다고 한다.

컴퓨터는 이 I와 O 사이에서 규칙성을 찾아서 I에 대해 O와 최대한 비슷한 결과를 산출하는 함수 f를 구한다. 그러면 이제 임의의 다른 아무 input에 대해서도 수긍할 만한 출력 결과를 얻을 수 있을 것이다.
패턴 인식? 기계번역? 유사 작곡이나 창작? 현실에서 해결하려는 문제가 무엇이건 machine learning이 하는 일은 본질적으로 저걸로 요약된다. 내가 AI 쪽으로 아는 건 이게 전부이다.

지금은 TensorFlow 같은 범용적인 기계학습 엔진/라이브러리까지도 구글 같은 괴물 기업에 의해 오픈소스로 몽땅 풀려 있으며, 이걸 파이썬 같은 간편한 스크립트 언어로 곧장 돌려볼 수도 있는 세상이 됐다.
그런 라이브러리를 직접 개발하고 유지보수 하는 것까지는 바라지도 않는다. 방대한 현실 데이터를 수집해서 저기에다 적절하게 집어넣고, 이로부터 고객이 원하는 유의미한 추세나 분석 결과를 얻는 것만 해도 뭔가 프로그래밍 코딩과는 별개로 아무나 할 수 없는 전문 영역의 일이 돼 있다.

오늘날 AI 엔진의 연구를 위해서는 근간 이론이라 할 수 있는 선형대수학, 편미분, 확률 통계는 무조건 먹고 들어가야 된다. 엔진 코드를 직접 다루지 않고 쓰기만 하는 사람이라도 엔진이 어떤 원리로 돌아가는지 정도는 알아야 가장 적절한 방법론/알고리즘을 선택할 수 있을 테니 저런 것들을 맛보기 수준으로라도 알아야 할 것이다.

과거에 정보 사냥 대회가 있었던 것처럼 이제는 주어진 데이터로부터 새로운 문제를 잘 푸는 기계학습 모델을 설계하는 것이 경진대회의 아이템 내지 학교와 직장의 과제가 될 것으로 보인다. 컴퓨터가 할 수 있는 일이 더 늘어난다면 사람만이 할 수 있는 일은 그보다 더 수준 높고 추상적인 쪽으로 이동할 수밖에 없으니 말이다.

아무리 그래도 그렇지 자연어의 문법과 어휘 자체를 전혀 모르는 상태에서 데이터 학습만으로 댓글이 선플인지 악플인지를 기계가 분간할 수 있는 걸까? 그래도 클레멘타인 영화에 늘어선 댓글이 선플인지 악플인지 판단하려면 그에 대한 특별한 학습-_-;;이 필요할 것 같다.

그리고 변화무쌍 복잡한 필기체의 인식이 아니라, 그냥 자동차 번호판의 정향화된 숫자 내지 겨우 QR 코드의 인식 정도는.. '영상 처리 기술'의 영역이지, 저 정도의 거창하게 기계학습이니 뭐니 하는 인공지능의 영역은 아니다. 그건 구분해서 생각할 필요가 있다.

오래 전부터도 각종 전산학 알고리즘 용어를 검색할 때 종종 걸려 나오긴 했는데.. 국내 개인 사이트 중에 AIStudy라는 곳이 있다. 나모 웹에디터가 있던 시절부터 존재했던 정말 옛날 사이트이다. 그런데 운영자가 내 생각보다 굉장히 어린 친구이다. 정말 대단할 따름이다.
당연히 과학고-카이스트 라인이려나 생각했는데 그렇지는 않고 일반고-서울대 테크를 타 있다. 앞날에 건승을 빌어 본다.

Posted by 사무엘

2019/07/06 08:33 2019/07/06 08:33
, , , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1637


블로그 이미지

그런즉 이제 애호박, 단호박, 늙은호박 이 셋은 항상 있으나, 그 중에 제일은 늙은호박이니라.

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2024/11   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

Site Stats

Total hits:
2955806
Today:
176
Yesterday:
2539