-
-
[전자책] 비전공자도 이해할 수 있는 AI 지식 (10만부 기념 개정판) - 챗GPT부터 유튜브 추천, 파파고 번역과 내비게이션까지 일상을 움직이는 인공지능 이해하기
박상길 / 비즈니스북스 / 2024년 10월
평점 :
제1장. 인공지능 | 위대한 인공지능, 깨어나다
프로그래밍이란 규칙과 데이터를 입력해 정답을 출력하는 과정을 말합니다. 초기에는 인공지능 또한 이 범주를 벗어나지 못했습니다. 인공지능처럼 작동하기 위해서는 if-then 규칙이라 부르는 수많은 규칙을 사람이 일일이 입력해야 했죠. 기계는 이렇게 인간이 입력한 일만 했습니다. 사람이 모든 규칙을 일일이 입력해야 했지만 그럼에도 불구하고 규칙 기반은 제법 훌륭하게 작동했습니다. 이 때문에 기계번역을 비롯한 수많은 응용 프로그램도 초창기에는 대부분 규칙 기반으로 구현됐습니다. 그리고 곧 괜찮은 성과를 내리라는 장밋빛 희망으로 가득했죠. 그러나 규칙으로 인공지능을 만들어내겠다는 시도는 이내 한계에 부딪히고 맙니다. 이렇게 인공지능이 암흑기에 빠져든 데는 if-then 규칙의 한계와도 무관하지 않습니다. 초기에는 이 방식이 얼핏 잘 통하는 것처럼 보였지만 사람이 일일이 규칙을 입력하는 방식은 한계가 분명했기 때문이죠. 규칙에서 벗어나는 경우에는 제대로 된 추론도 하지 못했습니다. 18-9)
인공 신경망의 초기 모델은 퍼셉트론Perceptron입니다. 퍼셉트론은 1958년 당시 코넬 항공 연구소에 근무하던 프랭크 로젠블랫Frank Rosenblatt이 해군의 지원을 받아 고안해냈습니다. 인간 두뇌는 뉴런이 서로 연결된 상태로 전기신호를 내보내며 정보를 전달한다는 데 착안해, 그와 비슷한 형태로 인공 뉴런이 연결된 구조의 인공 신경망을 구현해낸 것입니다. 1980년대 들어 머신러닝Machine Learning, 우리말로 ‘기계학습’이라고 부르는 알고리즘을 활용하면서 인공지능 분야는 다시 성과를 내기 시작합니다. 머신러닝이란 말 그대로 기계Machine가 스스로 학습하는Learning 방식입니다. 이제 더 이상 사람이 규칙을 입력하지 않습니다. 그 대신 컴퓨터가 데이터에서 스스로 규칙을 찾아냅니다. 더구나 사람이 찾아내지 못하는 규칙도 컴퓨터가 학습을 거쳐 찾아낼 수 있게 되었죠. 변형에 따른 무수한 변칙까지도 데이터를 이용해 모두 찾아낼 수 있게 되면서 규칙에서 벗어난 결과도 추론할 수 있게 됐습니다. 17, 20)
딥러닝은 머신러닝의 일종으로, 머신러닝과 비슷한 방식으로 작동합니다. 딥러닝은 인간 두뇌의 작동 구조를 본떠 만든 인공 신경망의 새로운 이름입니다. 인간의 두뇌는 무수히 많은 뉴런으로 구성되어 있죠. 이를 물리적인 형태로 만들어낸다면 엄청나게 많은 다이얼이 달린 거대한 수학 구조물과 비슷합니다. 각각의 다이얼은 원하는 출력값이 되도록 가중치를 조절하는 역할을 합니다. 입력 데이터를 넣고 다이얼을 조절하면서 결과물을 확인한 후, 다시 조금씩 다이얼을 돌려 원하는 결과와 최대한 비슷하게 나오도록 조절하면 됩니다. 처음에는 다이얼 값을 무작위로 설정하지만 학습을 진행하면서 점점 모든 다이얼이 정답에 가까워지도록 바뀌어갑니다. 모든 데이터가 정답에 가장 가까운 상태를 찾아 더 이상 다이얼을 조절할 필요가 없다면 비로소 학습이 끝나죠. 데이터가 많을수록 훨씬 더 정교하게 조절할 수 있음은 물론, 다이얼이 많을수록 훨씬 더 풍부하게 표현할 수 있는 모델이 되겠죠. 24-5)
제2장. 알파고 | 인간을 능가하는 기계의 등장
1940년대 말, 핵무기 개발 프로젝트를 수행 중이던 스타니스와프 울람Stanisław Ulam, 1909~1984 박사는 ‘중성자 확산 같은 복잡한 계산 문제는 차라리 여러 번의 무작위 컴퓨터 실험으로 결과를 관찰하는 편이 훨씬 더 실용적이지 않을까?’라는 생각을 하게 됐고, 비밀을 유지해야 하는 핵무기 개발 프로젝트의 특성상 이 방법에 적절한 암호명이 필요했습니다. 그때 마침 울람 박사는 도박을 좋아하던 자신의 삼촌이 몬테카를로에서 도박을 하기 위해 친척들의 돈을 빌려갔다는 사실을 떠올려 ‘몬테카를로’라는 이름을 부여했던 것이죠. 몬테카를로 트리 탐색을 도입한 이후 바둑 인공지능 프로그램의 실력은 급상승해 6단의 수준까지 도달했습니다. 하지만 여전히 프로기사에게는 4점 이상 접히는 기력에 불과했습니다. 알파고는 여기에 딥러닝을 적용해 실력을 획기적으로 향상시킵니다. 두 종류의 인공 신경망을 만들어내는데, 정책망Policy Network과 가치망Value Network이라는 이름의 신경망입니다. 43-4)
먼저 정책망을 살펴봅시다. 정책망은 사람이 만든 기보棋譜를 이용해 학습합니다. 정책망은 약 16만 회의 게임에서 총 3,000만 수를 가져와 학습했습니다. 각각의 상황에 따라 정책망 3가지를 만들었습니다. 첫째 망은 바로 앞서 살펴본 사람의 기보를 이용해 학습한 정책망(이하 기보학습 정책망)입니다. 둘째 망은 롤아웃 정책망입니다. 롤아웃 정책망은 기보학습 정책망과 비슷하지만 훨씬 작고 가벼운 망입니다. 훨씬 작게 만들었기 때문에 첫 번째 망보다 약 1,500배 정도 빨리 수를 둘 수 있습니다. 즉 첫째 망이 한 번 착점할 시간에 롤아웃 정책망은 1,500번을 착점할 수 있는 거죠. 당연히 성능은 떨어집니다. 첫째 망도 정확도가 57%로 높은 편이 아닌데, 롤아웃 정책망은 고작 24%에 불과합니다. 하지만 계산 속도가 빠르기 때문에 탐색을 빠르게 진행할 때 많은 도움이 됩니다. 이제 마지막으로 남은 망은 바로 알파고의 핵심인 스스로 대국하며 강화학습을 수행한 정책망(이하 강화학습 정책망)입니다. 44-5)
또 다른 종류의 망은 바로 가치망입니다. 가치망은 현재 국면에서 승패 여부를 예측하는 망입니다. 확률로 표현해서 50%가 넘는다면 승리할 가능성이 높은 국면이고, 50%가 넘지 않는다면 패배할 가능성이 높은 국면이죠. 과연 알파고는 어떻게 족집게 도사처럼 바둑판을 딱 보고 누가 승리할지 알아낼 수 있었을까요? 알파고는 여러 정책망 중에서 가장 실력이 좋았던 강화학습 정책망끼리의 대국을 활용했습니다. 서로 3,000만 번의 대국을 두게 하고, 각 경기에서 한 장면씩 3,000만 장면을 추출해 해당 국면 이후에 누가 이겼는지를 학습했습니다. 이처럼 승리할 가능성이 높은지, 패배할 가능성이 높은지를 확률로 표현한 것이 바로 가치망입니다. 알파고는 고수의 기보로 지도 학습을 진행한 다음, 어디에 돌을 내려놓을지 판단하는 정책망을 만듭니다. 그리고 정책망을 이용해 스스로 대국을 두어 강화학습을 진행한 다음, 승리할 확률이 얼마나 되는지 알아내는 가치망을 만들어냅니다. 46-7)
꼼꼼하게 탐색해나가는 알파고도 이세돌과의 네 번째 대국에서는 이세돌이 둔 ‘신의 한 수’인 78수를 막아내진 못했습니다. 그렇다면 알파고는 왜 신의 한 수를 허용하고 말았을까요? 알파고의 작동 원리를 다시 한번 되새겨봅시다. 알파고의 몬테카를로 트리 탐색은 유망한 수를 중심으로 꼼꼼하게 탐색해나간다고 했습니다. 그러니까 확률이 높은 쪽을 향해 더 많이 더 깊게 탐색해나가고 가장 신뢰가 높은 지점에 착수를 하는 원리죠. 하지만 이세돌이 둔 신의 한 수 지점에 착수할 확률을 알파고는 1만 분의 1로 매우 낮게 예측했다고 합니다. 알파고는 설마 그 지점에 둘 줄은 몰랐기에, 충분히 탐색하지도 않았습니다. 당연히 그 지점이 묘수인지 아닌지조차 알아내지 못하죠. 애초에 탐색을 충분히 하지 않았기 때문에 78수 다음에 대국이 어떻게 흘러갈지를 알파고는 전혀 알아차리지 못합니다. 여기서부터는 더 이상 승률이 높은 지점을 찾아내지 못하고 엉뚱한 수, 이른바 떡수를 남발하면서 급격히 무너졌죠. 51-2)
제3장. 자율주행 | 테슬라가 꿈꾸는 기계
최근의 자동차는 전자공학에 더 가깝습니다. 이른바 움직이는 컴퓨터라고 해도 과언이 아닐 정도죠. 자동차 기술이 발전하면서 지금의 자율주행차는 더 이상 물리적으로 제어할 필요가 없습니다. 이제 자율주행차는 소프트웨어의 힘에 의지해 움직입니다. 자율주행차는 베이즈 정리Bayes’ Theorem라는 유명한 공식을 기반으로 운행을 해나갑니다. 베이즈 정리란 18세기 영국의 목사 토머스 베이즈Thomas Bayes, 1701~1761가 증명한, 확률에 관한 공식을 말합니다. 베이즈 정리는 사전 확률과 사후 확률의 관계를 나타내는 단순한 수학적 정리에 불과해 보입니다. 하지만 베이즈 정리는 수학 정리 그 이상의 의미를 갖고 있습니다. 수학적으로는 매우 간단한 형식에 불과하지만 철학적으로 본다면 놀라운 의미를 내포하고 있죠. 베이즈 정리는 우리의 고정관념을 뒤흔듭니다. 확률이라는 것은 믿음에 불과(?)할 뿐이며, 세상에는 절대 원칙이란 존재하지 않으므로, 무엇이든 조심스럽게 관찰하며 의심해야 한다고 얘기합니다. 61-2)
자율주행차는 항상 불안해합니다. 자율주행차가 받아들이는 것은 무엇 하나 확실하지 않은 신호들뿐이죠. 자율주행차는 이런 악조건 속에서도 합리적으로 판단해 안전한 경로로 주행해야 합니다. 이때 자율주행차의 상황 판단은 수학 문제와 같이 단 하나의 규칙으로 깔끔하게 해결되지 않습니다. 주행 중 도로를 살펴보며 가야 할 구간과 가지 말아야 할 구간을 끊임없이 판단해야 합니다. 안전한 구간이라면 안전하다는 신호를 계속해서 업데이트하고, 위험 요소를 발견할 경우 위험하다는 신호를 지속적으로 업데이트하는 식이죠. 가령 자동차가 위험하다고 확신하는 구간에서 특정 센서가 안전하다는 신호를 보낼지라도 이미 상당히 위험하다는 믿음을 갖고 있기 때문에 위험할 확률은 좀처럼 낮아지지 않습니다. 하지만 지속적으로 안전하다는 신호가 계속해서 유입된다면 다시 위험 확률은 낮아집니다. 이처럼 자율주행차는 여러 가지 신호를 받아 믿음을 지속적으로 업데이트하면서 운전해나갑니다. 64-5)
자율주행차는 GPS 외에도 각 센서의 약점을 보완해줄 다양한 센서를 병행해서 활용합니다. 먼저 레이더RAdio Detection And Ranging, Radar와 라이다LIght Detection And Ranging, LiDAR가 있습니다. 레이더가 전자파를 발사해 반사파를 측정한다면 라이다는 레이저 빛을 발사해 반사되어 돌아오는 것을 측정합니다. 그래서 이름이 빛Light과 레이더Radar의 합성어인 라이다LiDAR죠. 전자파를 이용하는 레이더는 장거리 측정이 가능하고, 물체 내부까지도 감지할 수 있습니다. 날씨의 영향도 거의 받지 않죠. 하지만 물체의 거리나 방향, 모양이나 구조는 제대로 파악하기가 어렵습니다. 반면, 빛을 이용하는 라이다는 정확하게 물체를 인식하고 밀도 있게 표현해낼 수 있지만 거친 날씨에 영향을 받고, 장거리 측정은 정확도가 현저히 떨어집니다. 라이다의 범위를 넘어서는 구간을 파악하는 방법은 의외로 쉽게 찾을 수 있었습니다. 인간처럼 바라보면 되는 거였죠. 바로 카메라였습니다. 65-8)
# 점차 카메라가 레이더와 라이다의 기능까지 흡수해서 구현하고 있다.
제4장. 검색엔진 | 구글이 세상을 검색하는 법
초기 인터넷 광고는 신문 광고와 다를 바 없었습니다. 신문 판매 부수에 따라 광고 단가를 매기는 것처럼 사이트에 배너를 노출하고 노출 횟수에 따라 가격을 책정했습니다. 광고에 대한 사용자의 피드백은 고려 대상이 아니었죠. 그러다 검색엔진이 시장의 흐름을 주도하면서 본격적으로 검색광고를 도입합니다. 이제 항상 동일한 광고가 노출되는 게 아닌 쿼리에 적합한 광고를 매번 다르게 보여주는 타깃 마케팅을 진행하고, 사용자 피드백을 기반으로 광고료를 산정하는 CPC 방식Cost Per Click을 도입합니다. 예를 들어 대도시에 근무하는 30대 사무직 남성이 ‘셔츠’를 검색하면 ‘폴로’, ‘빈폴’ 같은 유명 브랜드를 노출하고, 나아가 온라인 구매로 이어질 수 있도록 유도합니다. 여기에 더해 검색광고는 경매 방식으로 판매했습니다. 예를 들어 폴로의 광고주가 ‘셔츠’라는 쿼리에 대해 클릭당 1,000원을 제시하고 빈폴의 광고주는 클릭당 1,200원을 제시했다면, 고객들은 단가가 더 높은 빈폴의 광고를 먼저 접합니다. 84-5)
구글은 엄청난 수익뿐 아니라 엄청난 문서를 색인하고 있는 것으로도 유명합니다. 검색엔진이 인터넷에 있는 문서를 수집하여 검색에 적합하도록 보관하고 있는 것을 색인Index이라고 합니다. 아마 2020년 이후에는 300조 개가 훨씬 넘는 문서를 색인하고 있을 것으로 추정됩니다. 이렇게 많은 문서를 대체 어디에 보관하고 있을까요? 구글은 엄청난 양의 문서를 고가의 컴퓨터 몇 대에 저장하는 게 아니라 일반 PC처럼 저렴한 컴퓨터 수백, 수천 대에 나눠서 저장하는 방식을 택했습니다. 이를 위해 구글 파일 시스템Google File System, GFS이라는 효율적인 분산 파일 시스템을 만들어냈고 덕분에 아무리 큰 파일도 여러 대의 서버에 나누어 저렴한 비용으로 저장할 수 있게 됐죠. 이 방식은 또한 초기 빅데이터 플랫폼의 원형이 되어 이후에 본격적인 빅데이터 플랫폼이 등장하고, 나아가 인공지능의 시대가 열리는 계기가 됩니다. 사실상 지금의 빅데이터와 인공지능 분야는 구글이 기반을 닦았다고 할 수 있습니다. 85-6)
수학계에 에르되시 수Erdős Number라는 게 있습니다. 전 세계를 돌며 평생을 수학 연구에만 몰두해온 에르되시 팔Erdős Pál, 1913~1996은 평생 1,500여 편의 논문을 쓴 것으로도 유명한데, 논문 대부분을 다른 학자들과 공동으로 집필했습니다. ‘에르되시 수’란 에르되시와 몇 단계에 걸쳐 네트워크로 연결되어 있는지를 나타내는 수입니다. 그와 직접 공동 논문을 쓴 학자는 모두 512명입니다. 이 512명이 에르되시 수 1이죠. 그리고 이 512명과 함께 공동 논문을 쓴 사람은 에르되시 수 2입니다. 1998년 스탠퍼드에서 박사 과정 중이던 세르게이 브린과 래리 페이지는 문서의 품질을 평가하는 획기적인 알고리즘을 고안합니다. 유명한 사이트가 많이 가리킬수록 문서의 점수가 올라가는 알고리즘으로, 좋은 논문은 인용 횟수가 많다는 아이디어에서 출발했죠. 여기에 에르되시 수가 낮을수록 권위가 높아진 것처럼 권위 있는 사이트에 가중치를 높였습니다. 이 알고리즘의 이름이 바로 페이지 랭크Page Rank입니다. 95-7)
제5장. 스마트 스피커 | 시리는 쓸모 있는 비서가 될 수 있을까
스피커는 스스로 말을 알아듣거나 말을 하지 못합니다. 이게 무슨 얘기일까요? 스피커 자체는 껍데기라는 말이죠. 실제로 사람의 말을 알아듣는 과정은 음성을 녹음하여 서버로 보내 분석하는 과정이고, 사람에게 말을 하는 기능은 녹음된 음성을 서버에서 받아와 재생하는 것입니다. 스피커는 사실상 마이크가 달린 일종의 블루투스 스피커에 불과하죠. 그렇다면 음성을 어떻게 서버로 전송할까요? SKT의 NUGU라면 “아리야”, 카카오미니라면 “헤이 카카오”라고 부르면 스피커가 “네?”하고 반응하면서 깨어나죠. 이 과정을 웨이크업Wake-Up이라고 합니다. 이때부터 사용자가 질문하거나 요청하면 이를 녹음하여 서버로 전송합니다. 참, 스피커는 껍데기라고 했지만 딱 한 가지 특이한 기능이 내장되어 있습니다. 바로 “헤이 카카오” 같은 웨이크업 단어를 알아듣기 위한 음성인식 엔진이죠. 추가 기능 없이 딱 웨이크업 단어만 알아들을 수 있는 매우 조그만 음성인식 엔진이 스피커에 내장되어 있습니다. 118)
100번의 발화 중 99번을 제대로 알아듣는다면 똑똑한 스피커라고 말할 수 있겠죠. 하지만 반대로 100번의 문장 중 99번만 정확하게 생성해낸다면 마찬가지로 똑똑한 스피커일까요? 만약 잘못 생성한 1번의 문장이 “인간은 모두 죽어야 해!”라는 문장이라면요? 이런 문제 때문에 ‘생성’ 영역에서는 아직까지 딥러닝의 활용이 조심스럽습니다. 물론 최근에 챗GPT는 이를 다른 방식으로 제어하고 있지만 챗GPT조차도 응답을 완벽하게 통제할 수 있는 건 아니죠. 게다가 스마트 스피커는 챗GPT와는 조금 다릅니다. 무엇보다 문제해결용 대화시스템Task-Oriented Dialogue System이라는 차이가 있습니다. 목적이 분명한 대화만을 주로 한다는 얘기죠. 날씨를 묻거나 레스토랑을 예약하기 위한 대화는 목적이 뚜렷합니다. 따라서 스마트 스피커는 자유로운 대화보다는 목적에 맞는 대화에 방점을 맞추죠. 이 때문에 자유롭게 대화를 생성하지 않고 정해진 템플릿에 정보를 채워서 문장을 생성하는 방법을 주로 사용합니다. 130-1)
제6장. 기계번역 | 외국어를 몰라도 파파고만 있다면
신경망 기반 기계번역 Neural Machine Translation은 문장 전체를 마치 하나의 단어처럼 통째로 번역해서 훨씬 더 자연스러운 번역이 가능하게 했습니다. 인공 신경망이라는 거대한 모델과 이를 견인할 수 있는 방대한 데이터를 확보하면서 이것이 가능해졌습니다. 신경망이 문장을 통째로 번역하는 과정은 마치 오렌지 주스를 농축한 후 물을 섞어 희석하는 과정과 닮았습니다. 먼저, 문장을 통째로 압축해 숫자로 표현한 벡터(방향과 크기를 나타내는 값)를 만들어 냅니다. 오렌지 주스를 농축하는 과정이죠. 그리고 이 값을 번역할 언어로 옮긴 다음 풀어서 번역문을 만들어 냅니다. 각각의 숫자에서 가장 확률이 높은 번역문을 찾아내는 거죠. 물을 섞어 다시 주스로 만드는 과정입니다. 이렇게 번역문을 만들어 내면 더 이상 규칙 기반처럼 단어와 단어 간의 관계, 순서, 구조 등을 파악할 필요가 없습니다. 또한 통계 기반처럼 단어나 구문을 확률로 번역해 조합하고 이 문장을 자연스럽게 만들기 위해 애쓸 필요도 없습니다. 145-6)
어텐션Attention은 더 중요한 단어를 강조하는 원리입니다. 기존에는 입력 문장의 길이에 상관없이 압축한 문장을 항상 일정한 길이의 벡터에 한 번만 담아냈습니다. 하지만 어텐션은 번역문의 단어를 생성할 때마다 출력 문장의 길이에 맞춰 압축 벡터를 생성합니다. 이렇게 하면 번역문이 길어질수록 벡터도 함께 길어지기 때문에 더 긴 문장을 번역하는 데도 문제가 없겠죠. 이전에는 어떤 분량이든 1줄로 요약했지만 어텐션은 5분을 발표할 때는 5줄, 10분을 발표할 때는 10줄로 요약합니다. 무엇보다 어텐션의 핵심은 중요한 단어에 별도로 가중치를 부여할 수 있다는 점입니다. 이전에는 아무런 표시 없이 문장 전체를 통째로 압축했기 때문에 번역할 때 어떤 단어를 염두에 둬야 하는지 알 수 없어 번역의 질이 떨어졌죠. 하지만 어텐션은 압축할 때 매번 다르게 중요한 부분을 적재적소에 표시해둘 수 있습니다. 어텐션을 핵심 알고리즘으로 삼은 트랜스포머 모델은 사실상 모든 기계번역 모델을 대체했습니다. 148-50)
제7장. 챗봇 | 챗GPT, 1분 안에 보고서 작성해 줘
17세기 이전까지 수학은 크게 기하학과 대수학으로 나뉘었습니다. 원의 넓이 같은 도형의 성질을 다루는 수학이 기하학Geometry이고, 2차 방정식 같이 문자와 수를 다루는 수학이 대수학Algebra이죠. 이전까지는 둘을 서로 다른 영역으로 취급했습니다. 그러던 어느 날, 르네 데카르트René Descartes, 1596~1650는 침대에 누워 있다가 천장에 붙어 있는 파리를 보고 재미있는 생각을 떠올렸죠. ‘어떻게 하면 파리가 천장의 어느 위치에 붙었는지 정확하게 표현할 수 있을까?’ 그리고 데카르트는 좌표Coordinates라는 개념을 고안합니다. 이는 서로 다른 분야로 여겨지던 기하학과 대수학의 개념을 하나로 합쳐낸 혁신적인 발상이었습니다. 데카르트는 좌표의 개념을 《방법서설》Discours de la Méthode에 공개합니다. 좌표의 발명은 이후 수학사에 지대한 영향을 끼치죠. 우스갯소리이지만 인터넷 시대인 지금도 좌표라는 개념은 일상에서 유용하게 쓰입니다. “그 유튜브 동영상 좌표 좀 알려줘”와 같은 식으로 말이죠. 163-4)
미국의 수학자 클로드 섀넌Claude Shannon, 1916~2001은 MIT의 대학원생 시절 이진법을 이용해 모든 계산을 할 수 있는 디지털 논리회로의 개념을 고안합니다. 이 논문은 20세기 가장 위대한 석사 논문이라는 찬사를 받았고, 이후 섀넌은 디지털의 아버지로 추앙받습니다. 그의 논문은 이후 정보 이론이라는 새로운 학문을 탄생시켰고 마침내 세상은 정보통신의 시대로 접어듭니다. 섀넌 덕분에 컴퓨터는 0과 1, 단 2개의 숫자로 모든 계산을 해낼 수 있게 되었고, 정보의 개념을 수학적으로 정의할 수 있게 되었죠. 그리고 우리는 이 단위를 비트Bit라고 부릅니다. 이제 정리해 봅시다. •데카르트의 좌표 덕분에 기하학을 방정식과 숫자로 표현할 수 있게 되었다. •섀넌의 디지털 논리회로와 정보 이론 덕분에 컴퓨터는 모든 정보와 숫자를 계산할 수 있게 되었다. 실제로 현대 수학에서는 좌표를 이용해 추상적인 기하학을 수로 표현하는 것을 매우 중요하게 여깁니다. 컴퓨터에 계산을 맡길 수 있기 때문이죠. 165)
단어를 숫자로 표현한다는 것은 단어가 갖는 의미에서 각각의 특징을 추출해 수치화하는 과정입니다. 그래서 단어의 의미가 비슷하다는 것을 숫자로 표현한 값이 얼마나 가까운지로 판별할 수 있게 되는 거죠. 이처럼 숫자로 표현하는 것을 자연어 처리 분야에서는 언어를 벡터로 표현한다고 말합니다. 벡터는 공학에서 방향과 크기를 나타내는 값인데 마치 기하학을 좌표로 명료하게 표현하는 것과 비슷합니다. 이처럼 단어의 의미를 벡터로 표현하면 단어가 유사한 정도를 구체적인 수치로 나타낼 수 있으므로 유사도뿐 아니라 다양한 과제에 응용하기 편리합니다. 무엇보다 모든 것이 숫자이기 때문에 계산이 쉽죠. 컴퓨터는 추상적인 무언가를 논리적이지 않은 방식으로는 계산할 수 없습니다. 하지만 구체적인 숫자를 계산하는 일은 컴퓨터가 가장 잘하는 일이죠. 그뿐 아니라 데이터가 많을수록 계산은 더욱 정교해집니다. 게다가 이 과정을 자동으로 처리할 수 있다면 엄청난 이점이 생기겠죠. 165-6)
제8장. 내비게이션 | 티맵은 어떻게 가장 빠른 길을 알까
강남역의 교통 체증을 예측하는 가장 간단한 방법은 조건에 따라 분기하는 모델인 의사결정나무Decision Tree를 만드는 겁니다. 우리가 어릴 때 하던 스무고개 놀이와 비슷합니다. 스무고개 놀이란 말 그대로 예 혹은 아니오로 답할 수 있는 질문을 스무 번 제시하여 정답을 알아맞히는 놀이입니다. 질문의 횟수는 적을수록 좋습니다. 그렇다면 가급적 정답을 빨리 맞힐 수 있는 질문을 제시해야겠죠. 의사결정나무를 구축할 때는 복잡도인 엔트로피Entropy를 낮추는 형태로 진행합니다. 복잡도는 다르게 표현하면 불확실성Uncertainty의 정도라 할 수 있는데요. 즉 엔트로피를 낮춰 덜 복잡하게 하고, 덜 불확실하게 하여 가급적 정답을 빨리 맞히는 것이 의사결정나무의 구축 원리입니다. 그러나 지나치게 엄격한 의사결정나무 모델은 단 한 번의 오류에도 너무 취약합니다. 게다가 예상 밖의 변화에도 민감하게 반응하므로 온갖 오류가 넘치는 현실의 데이터로는 정확도를 높이기 어렵습니다. 207-10)
버클리대학교의 통계학자 레오 브라이만Leo Breiman, 1928~2005은 2001년에 오류에 견고한 새로운 모델을 제안합니다. 데이터와 특징에 제한을 두고 샘플을 추출한 다음, 여러 개의 의사결정나무를 만들어 각각의 결과를 두고 투표해 최종 결과를 정하는 방식이죠. 이렇게 만들어낸 각각의 의사결정나무는 당연히 단일 의사결정나무에 비해 성능이 훨씬 더 떨어집니다. 데이터와 특징을 제한했으니까요. 그러나 이런 의사결정나무가 1개가 아니라 10개, 100개가 되면 엄청난 위력을 발휘합니다. 데이터의 오류 등으로 일부 의사결정나무가 잘못된 결과를 내리더라도 나머지 나무들이 올바른 결과를 낼 수 있기 때문에 전체적으로는 오차에 매우 견고해집니다. 무엇보다 이 방식은 대중의 지혜를 발휘합니다. 이 모델의 이름은 랜덤 포레스트Random Forest입니다. 나무를 만들기 전에 데이터를 무작위로Random 추출하고, 나무가 여러 개 모여 숲Forest을 이룬다는 의미죠. 모델의 원리에 잘 어울리는 멋진 이름입니다. 210-1)
통계학에 잔차Residual라는 개념이 있습니다. 오차Error와 비슷한 개념인데, 잔차는 전체에 대한 오차가 아니라 샘플의 오차라는 차이점이 있죠. 오차보다는 훨씬 더 작은 개념으로, 잔차를 줄여나가면 모델을 훨씬 더 정교하게 개선할 수 있기 때문에 통계학에서 여러 모델을 만드는 데 중요하게 쓰이죠. 잔차의 개념을 의사결정나무에도 동일하게 활용할 수 있습니다. 각각의 나무들은 이전과 달리 독립적이지 않으며 오히려 이전의 나무에 크게 영향을 받습니다. 먼저 의사결정나무를 하나 만듭니다. 그리고 이 나무에서 오류가 발생하면 실수를 바로 잡는 새로운 나무를 만듭니다. 이 과정을 오류를 최소화할 때까지 계속해서 반복합니다. 잔차를 계속해서 줄여나가는 거죠. 잔차의 기울기Gradient를 줄여나간다고 하여 그레이디언트 부스팅Gradient Boosting이라고 합니다. 이처럼 정형화된 데이터를 예측하는 일에서는 여전히 전통적인 머신러닝 모델이 딥러닝보다 좋은 성과를 내고 있습니다. 212-3)
제9장. 추천 알고리즘 | 알 수 없는 유튜브 알고리즘이 여기로 이끌다
데이터 과학 분야에서 오랫동안 전설처럼 회자되는 얘기가 있습니다. 1990년대 미국의 한 슈퍼마켓 체인에서 맥주와 기저귀 간에 강한 상관관계가 있다는 사실을 발견한 겁니다. 전혀 관련이 없어 보이는 두 제품에 대체 어떤 상관관계가 있을까요? 알고 보니 수많은 남편들이 퇴근길에 아내의 심부름으로 마트에 들러 기저귀를 사면서 맥주도 함께 구매했기 때문이었습니다. 이 사실을 발견한 이후에는 기저귀 근처에 맥주를 진열하기 시작했고 매출을 더 높일 수 있었습니다. 이처럼 고객의 구매 내역을 분석하는 방식을 장바구니 분석Market Basket Analysis이라고 합니다. 꽤 잘 어울리는 이름이죠. 상품 간의 연관성을 분석했다고 하여 연관성 분석이라고도 합니다. 이는 데이터 마이닝Data Mining이라는 학문의 기반이 됩니다. 1993년 당시 IBM에 근무하던 라케시 아그라왈Rakesh Agrawal 박사의 논문은 본격적인 데이터 마이닝 학문의 시작을 알렸습니다. 추천 시스템의 역사가 시작된 거죠. 223)
고객들은 무엇보다 새로운 영상을 좋아합니다. 하지만 새로울수록 정보가 부족하기 때문에 추천은 더 어려워지는 역설적인 상황에 놓입니다. 추천 시스템은 이 문제를 해결해야 하죠. 그래서 뜻밖의 발견Serendipity이 중요합니다. 멋진 영어 단어만큼이나 설레는 표현이기도 하죠. 여기에는 2가지 조건이 충족되어야 합니다. 지금까지 본 적 없는 것이어야 하지만, 희한하게도 마음에 드는 것이어야 하죠. 다시 말해 나에게 편하고 익숙한 구역 바깥에 있어야 하지만 또 아예 엉뚱하지는 않아야 합니다. 참, 어렵죠. 하지만 많은 사람들이 “알 수 없는 알고리즘이 여기로 이끌었다”라고 자주 감탄하는 것은 그래도 이 2가지 조건을 잘 만족하고 있다는 거겠죠? 친구가 나에게 뜻밖의 영화를 소개해줬는데 너무 만족스러워 하루 종일 즐겁던 기억이 있지 않나요? 추천 시스템의 목표가 바로 이것입니다. 우리가 ‘뜻밖의 발견’으로 설렐 수 있게 앞으로도 추천 시스템은 ‘알 수 없는 알고리즘’을 꾸준히 만들 것입니다. 236-7)