인공지능은 현대 과학의 오랜 꿈이다. 2001년이 지난 지 오래지만, 우리는 아직도 '2001년 스페이스 오디세이'의 HAL과 같은 평균 이상 인간의 능력을 갖추고 인간을 대신해 인간의 일을 하는 존재를 꿈꾼다. 컴퓨터 프로그래밍을 처음 접했을 때 컴퓨터가 바둑으로 인간을 이기는 날이 언제 올까 궁금해하며, 나름의 알고리즘을 공상해보곤 했다. 절대 오지 않을 것 같던 그 순간이 어느 날 갑자기 눈앞에 나타났을 때의 그 충격과 흥분이 생생합니다.
제한적인 분야에서 인간을 대신하는 약한 인공지능들은 대부분 인간의 학습과 추론 과정을 흉내 내는 머신 러닝을 이용합니다. 사실 머신 러닝은 우리 생활 속에 이미 깊이 들어와 있습니다. 요즘 컴퓨터들은 인간과 바둑, 체스 같은 게임을 겨루기도 하고, 음성을 인식해서 질문에 답하기도 하고, 외국어 문서를 번역해주기도 하며 심지어는 인간을 대신해 자동차 운전을 하기도 합니다. 이런 최근의 성과들은 딥러닝으로 대표되는 머신 러닝 분야 최신 기술들에 의존하고 있습니다.
모든 머신 러닝은 본질적으로 학습을 통해 직관과 통찰을 얻어내고, 이를 이용해 주어진 상황에 맞는 예측을 추론해내는 과정으로 볼 수 있습니다. 이 책은 이 과정을 대표하는 과거 데이터를 바탕으로 미래의 결과를 예측하는 데이터 예측 분야를 통해 머신 러닝의 기본 원리들을 설명합니다. 머신 러닝 알고리즘들은 인간의 귀납적 학습과 추론 과정을 관찰해 얻은 간단한 발상들을 이용합니다.
이 책은 다양한 발상에 따른 각 알고리즘의 장단점과 적절한 선택 기준들을 설명합니다. 그뿐만 아니라 머신 러닝을 적용할 때 알고리즘 선택보다 더 현실적으로 와 닿는 문제인 데이터 준비,데이터 탐색, 모델 평가 및 적용, 모니터링에 이르는 데이터 예측 프로젝트의 전 과정도 상세히 다루고 있습니다. 머신 러닝 알고리즘이 내포하고 있는 다소 난해한 개념들을 다양한 분야의 적용 예제, 사례 연구를 통해 구체적이고 실제적으로 이해하기 쉽게 설명합니다.
최근 각광 받고 있는 최첨단 머신 러닝 알고리즘을 처음 접하게 되면 아주 난해한 외계인이 던져준 마법 상자 같은 인상을 받기가 쉽습니다. 그러나 머신 러닝의 발전 과정을 살펴보면 마법 같은 알고리즘보다는 문제의 대상을 파악하고 주어진 데이터에 맞는 해법을 찾고 적합한 머신 러닝 모델을 설계하는 전체 과정을 이해하는 것이 더 중요하다는 것을 알게 됩니다. 이 책은 머신 러닝에 대한 이러한 기본기를 구체적으로 단단하게 갖출 수 있게 도와주는 좋은 책입니다. 여기서 쌓은 탄탄한 배경지식들은 이 책이 미처 다루지 못한 비지도 학습, 강화 학습, 딥러닝 등의 최신 개념들을 좀 더 수월하게 익히는 데 큰 도움이 될 것입니다.
어느덧 80년대 영화 <백 투더 퓨처>의 미래 시기인 2015년이 지났고, 애니메이션 <2020년 우주의 원더키디>에서 아이캔이 아버지를 구하러 떠났던 2020년을 맞이하는 시점에서, 먼 미래라면 가능하지 않을까 막연히 생각했던 당시의 상상력을 돌아봅니다. 아직 우리 집 차는 하늘을 날지 못하고, 인류는 태양계를 벗어나 본 적이 없지만, 막연하던 상상이 현실이 된 부분도 많습니다.
벽걸이 TV, 디지털 카메라, 지문 인식 결제, 드론 등은 이미 주변에서 쉽게 접할 수 있습니다. 또한 쉽게 상상하지 못했던 일이 실현되기도 했습니다.
인공지능이 바둑으로 인간을 이기는 날이 왔고, 구글은 무려 53큐비트 양자 컴퓨터를 만들어 양자 우위를 실증했습니다. 수많은 과학자, 공학자의 노력으로 여러 아이디어가 공상의 영역에서 상상을 거쳐 현실로 다가오고 있습니다. 그럼에도 양자 컴퓨터는 여전히 그 기반인 양자역학의 난해함으로 인해 동작 방식을 이해하기 쉽지 않습니다. 양자역학이 우리에게 익숙한 고전역학의 직관을 흔들기 때문에 양자 컴퓨터 역시 새로운 방식의 이해를 요구합니다.
이 책은 구체적 문제 풀이 과정을 통해 양자 컴퓨터의 이론적 기반이 되는 양자역학이 실제 어떤 의미를 갖는지 그리고 양자역학의 특성을 어떻게 활용하면 연산 결과를 얻어낼 수 있는지 알아봅니다. 아무래도 양자역학의 내용을 많이 다루고 있어 수식이 많이 등장합니다. 대신에 과정을 최대한 상세히 설명해서 이해를 높이는 데 주력합니다.
이 책이 양자 컴퓨터와 그 바탕이 되는 양자역학을 이해하는 데 조금이나마 도움이 되기를 바랍니다.
바야흐로 머신 러닝의 시대입니다. 머신 러닝에 기반을 둔 알파고가 바둑으로 '인간' 이세돌을 이긴 시점을 즈음해서 머신 러닝이 여러 분야의 전면에 등장해 우리 생활 속으로 파고들고 있습니다. 컴퓨터가 말을 알아듣고, 외국어를 번역해주고, 운전을 대신 해주는 것이 그다지 신기한 일이 아닌 세상이 되어가고 있습니다. 인간의 학습 과정을 모방한 머신 러닝을 이용하는 인공지능이 거의 모든 분야에서 인간을 따라잡는 순간이 머지않았는지도 모르겠습니다. 아니, 데이터의 생성 속도와 그 양이 한 인간이 수용할 수 없을 정도로 커가는 요즘이라면 머신 러닝이 인간의 직관을 넘어서는 특이점을 곧 마주할지 모르겠다는 생각도 듭니다.
머신 러닝은 본질적으로 인간의 귀납적 학습과 추론 과정을 모방하는 것입니다. 실제 머신 러닝을 구현할 때는 데이터 준비, 모델 평가, 모니터링, 시각화 등의 작업이 학습 알고리즘 구현만큼이나 중요합니다. 텐서플로는 이런 머신 러닝의 전 과정을 쉽게 구현할 수 있게 해주는 라이브러리입니다. 텐서플로는 학습 과정을 계산 그래프로 표현해서 학습을 위한 계산을 병렬 처리할 수 있게 해줍니다. 텐서플로를 이용하면 여러 GPU, 여러 장비를 활용해 학습 속도를 높이는 작업도 간단히 수행할 수 있습니다.
이 책은 개별적으로 실행 가능한 다양한 예제를 이용해서 텐서플로 사용법을 살펴봅니다. 머신 러닝에 익숙한 사람이라면 예제를 통해 텐서플로의 머신 러닝 구현 방식을 쉽게 파악하고 활용할 수 있습니다. 텐서플로를 이용하면 중요하지만 번거로운 학습 알고리즘 구현보다 더 중요한, 원하는 답을 찾아가는 학습 구조 설계에 집중할 수 있습니다. 머신 러닝에 익숙하지 않은 사람이라도 예제를 따라가다 보면 머신 러닝이 활용되는 방식 머신 러닝의 전체적인 구조, 목표와 한계를 빠르게 파악할 수 있습니다. 텐서플로를 이용하면 이렇게 학습한 내용만으로도 다양한 머신 러닝 모델을 구현해볼 수 있으며, 머신 러닝에 대한 좀 더 깊이 있는 학습의 출발점으로 삼을 수도 있습니다.
제임스 와트가 발명한 증기 기관은 여러 기계 장치에 활용되면서 산업 혁명을 이끌어냈습니다. 운송 수단에 증기 기관을 활용하려는 시도는 내연 기관을 비롯한 다양한 기관의 개발로 이어져 인류의 활동 범위를 혁명적으로 넓혔습니다. 어쩌면 지금 우리도 머신 러닝이 이끌어낼지 모르는 어떤 혁명적 시기의 초입에 있는 것일지도 모르겠습니다. 텐서플로와 같은 라이브러리로 대중화된 머신 러닝이 어떤 세상을 만들어낼지 궁금해집니다.