[IT 샐러드] 쉽게 이해하는 인공지능(AI) 기본 개념 5가지
요즘 전세계적으로 "인공지능"보다 몸값이 높은 용어가 있을까요? 인공지능을 중심으로 산업계, 교육계, 심지어 정계까지 개편되는 모습을 보며, 이제 더 이상 대세라는 표현으로는 인공지능을 표현하기에 충분치 않아 보입니다.
저는 IT 기업에서 인공지능 솔루션 영업을 담당하며, 인공지능에 관심있는 다양한 고객들을 만나고 있습니다.
다양한 산업군/부서의 고객들과 이야기를 하다 보면, 업을 막론하고 본 기술에 대한 이해가 극과 극을 달리는 것에 깜짝 놀라곤 합니다.
1) 인공지능에 대해 잘 알지 못하고 흔히 말하는 "인공지능은 만능이다"라는 환상을 가지고 있는 분들과,
2) 인공지능에 대해 열성적으로 공부하고 기술의 현재 수준과 한계에 대해서도 이해하고 있는 분들로 보통 나뉘지요.
사실 전자는 '환상깨기'부터가 영업의 첫 미션이 되고, 후자는 영업 결과와는 별도로, 언제나 새로운 배울거리와 자극을 줍니다.
이번 글은 전자의 "보통 사람"들을 위한 글입니다. 커리어, 업무 등의 이유로 인공지능을 공부해야 하는 상황이나, 아직 기본적인 이해가 부족한 분들을 위해 인공지능의 기초 개념을 가능한 쉽게 설명하고자 합니다. 보고 더 알고 싶은 분야는 따로 심층적으로 공부해보기를 권합니다.
1. 인공지능 정의부터
"인공적으로 만들어진 지능을 가지는 실체, 또는 그것을 만들고자 함으로써 지능 자체를 연구하는 분야"
(출처: 인공지능 학회지)
인공지능은 간단히 이야기하면, 인간이 지닌 지능의 원리를 찾고 이를 인공적으로 만들어 내는 것입니다. 비행기의 경우, 새의 날개짓(연구목표)을 통해 "양력"의 개념(구현원리)를 찾고 이를 공학적으로 재현하는 방법(연구대상)을 연구하였 듯, 인공지능 역시 인간의 "지능"(연구목표)이라 불리우는 학습, 추론, 언어 이해 능력 등에 대한 원리(구현원리)를 찾고, 이를 컴퓨터에서 프로그래밍으로 구현해내는 것(연구대상)을 뜻합니다.
재미있는 연관 용어로, "AI Effect (인공지능 효과)"라는 것도 있습니다.
1956년 인공지능이라는 용어가 첫 탄생한 이래, 인공지능은 상당히 오랜 기간 연구되며 우리 일상의 다양한 곳에 적용되어 왔지만, 우리는 여전히 미래 기술로서 '인공지능'을 인식하고 있죠. 왜 일까요?
이는 인공지능이 "Intelligent한(지적인)" 무언가를 연구하는 것이기에, 그 원리를 발견해버리면 더이상 "지능 (Intelligence)이 아니다"라고 생각하게 되기 때문입니다.
즉, 인공지능에 대한 연구는 현재까지 발견된 것은 제쳐두고, "우리가 아직 발견하지 못한 지능의 비결"을 이정표 삼아 끊임없이 새롭게 개척되고 있습니다. 그렇기 때문에 인공지능은 늘 미래 지향적 기술로 남게 되며, 이를 "AI Effect" 라 부릅니다.
2. 인공 "언어" 지능을 연구하는 자연어 처리
자연어 처리(Natural Language Processing, NLP)란 인공지능의 하위 분야로, 인간의 다양한 지능 중 "언어이해 능력"을 구현하기 위한 기술입니다. 즉, 컴퓨터가 인간처럼 언어를 이해하고 인간과 소통할 수 있도록 만드는 것이죠.
여기서 자연어라 함은, 우리에게 친숙한 한국어, 영어 등 일상적 의사소통을 위한 언어를 말합니다. 규칙이 딱딱 떨어지는 C언어, 파이썬 등 프로그래밍 언어와 달리, 오랜 시간동안 '자연'스럽게 관습적으로 형성된 언어라 100이면 100 떨어지는 규칙도 없고 정형화하기도 어렵죠. 이렇게, 컴퓨터가 이해할 수 없는 "자연어"를 컴퓨터가 이해할 수 있도록 "처리"하는 작업이 자연어 처리이고, 이를 위해 주로 "머신러닝" 기법이 동원됩니다.
자연어 처리가 활용되는 분야는 구글의 검색엔진부터 언어 번역, 문서 분류, 챗봇 등 다양합니다. 특히, 한동안 붐이었던 챗봇은 전국민에게 인공지능이 구현된 모습을 확실히 각인시켰던 서비스이기도 하죠. 이제는 "헤이 카카오", "지니야~" 등으로 대표되는 음성봇, 그리고 가장 최근에는 실제 인간의 형상으로 인간과 대화하는 "디지털 휴먼"이 그 뒤를 이어 새롭게 주목받고 있습니다. 2018년, IBM이 공개한 Project Debater의 경우에는, 단순한 질의응답을 뛰어 넘어 AI가 직접 공개 토론에 참여하기도 하였는데요. 방대한 양의 지식을 바탕으로 문장을 생성하고 직접 논지를 전개하는 능력까지 선보였습니다. 이 모든 기술의 바탕에는 기계에게 인간의 언어지능을 만들어 주는 자연어 처리가 있다 할 수 있습니다.
3. 스스로 학습, 머신러닝 (기계학습)
번역 작업을 생각해봅시다. 우리는 모국어인 한국어 조차, 모든 문법과 언어구조를 모를 뿐더러 딱 떨어지는 번역 규칙을 정하기도 어렵다는 것을 잘 알고 있습니다. "바람 잘 날 없다.", "바람 쐬러 가자.", "바람 피운다." 이 세 가지 문장에서 '바람'은 모두 명사형으로 쓰였지만, 'wind'로 번역되지는 않죠. 저명한 언어학자라도 언어에서 존재하는 모든 규칙과 예외 사항등을 로봇에게 가르치는 것은 너무 시간도 오래 걸리고 어려운 작업일 것입니다.
머신러닝은 이런 규칙을 하나하나 파헤치는 불가능한 짓을 하지 말고, 단지 기존의 경험을 통해 기계가 스스로 통계적, 확률적으로 판단을 내릴 수 있도록 하는 것입니다. 번역 작업에 대입해보자면, 기존에 번역했던 번역 결과물 중 확률적으로 가장 '많이 나온 답'을 내놓게 하는 것이죠. 전에 A와 같은 문장이 주로 B로 번역되었으니, A'도 B로 번역하자! 라고 결론을 내는 것입니다.
따라서 기존의 경험, 즉 데이터를 통한 학습이 꼭 필요합니다. 컴퓨터는 머신러닝을 통해 대량의 데이터를 처리하면서 경험을 쌓습니다. 경험을 바탕으로 데이터에 대한 나름의 기준(머신러닝 모델)을 잡게 되고, 이 모델을 바탕으로 기존에 보지 못했던 새로운 입력 데이터가 들어와도 스스로 척척 판단내릴 수 있게 됩니다. 언어 규칙들은 몰라도 되죠. 그럼 이제, 어떻게 "학습"시킬 수 있는 지, 세 가지 방법론에 대해 이어가 보겠습니다.
4. 지도학습 vs 비지도 학습 vs 강화학습
다음은 기계를 학습시키는 3가지 방법론입니다. 1) 지도학습에서 3) 강화학습으로 갈수록, 수준이 더 높아진다거나 하는 문제는 아니며, 각각 활용되는 영역과 해결할 수 있는 문제 유형이 다르다고 보면 됩니다.
1) 지도학습 (Supervised Learning): 기계에게 문제와 답을 모두 알려주며 공부시키는 것입니다. 인간이 선생님으로서 개입하여, 입력값과 출력값 데이터 세트를 미리 준비하고, 입력값이 들어왔을 때 올바른 출력값을 알려주며 기계를 직접 훈련시키는 것이죠. 이러한 작업을 라벨링(labeling)이라 합니다. 주로 비교적 빠른 답을 낼 수 있는 예측과 분류 등 단순 작업에 활용됩니다.
2) 비지도학습 (UnSupervised Learning): 기계에게 문제만 알려주고 답을 가르쳐 주지 않으며 공부시키는 것입니다. 답을 모르는 데 어떻게 공부하냐? 문제 속에서 답을 스스로 찾아 답을 예측하게 하죠. 즉, 원래 "답이 없는" 문제에 주로 활용됩니다. 기계가 알아서 데이터 내의 구조를 파악하여 패턴이나 룰을 추출할 수 있게 하는 것입니다. 인간의 라벨링 작업 없이 데이터 분포만으로 그 패턴을 인식하는 학습 방법으로, 데이터 내의 경향성을 파악해야하는 연관 규칙이나 군집 유형의 문제에 적합합니다.
3) 강화학습 (Reinforcement Learning): "답은 현장에 있다"는 모 기업 총수의 말처럼, 아무것도 모른 채로 일단 실전에 뛰어들고 시행착오를 통해 학습하게 하는 것입니다. 입력값에 대해 정답은 알려주지 않고, 최종 결과에 대한 긍정/부정의 보상을 통해 알고리즘을 개선해 나갑니다. 이세돌을 이긴 구글 알파고에 적용된 기술로, 수많은 대전을 실습하게 하며 미래에 얻어질 보상값의 평균을 최대로 할 수 있는 결정(수를 둠)을 하게 하는 것입니다. 한 수에 모든 것이 결정되는 것이 아니라 상대방(환경)과의 상호작용 속에서 답을 찾아가야 하는 바둑처럼, 답이 나중에 나오는 복잡한 문제에 적합합니다. 보상 과정까지 시간이 소요되기 때문에, 문제에서 답을 이끌어 내는 데 까지 시간차가 있는 것이 한계입니다.
5. 딥러닝과 인공 신경망 (뉴럴 네트워크)
인공 신경망 (뉴럴 네트워크, Artificial Neural network)이란, 머신러닝의 방법론 중 하나로 인간의 뇌 신경 회로의 작동방식을 따라하여 판단을 내리는 것입니다. 최초의 개념은 1950년대에 제안되었지만, 한동안 외면받다가 2000년대 이후 인공지능 구현의 주연으로 재부상하게 되었습니다. 다시 주목받게 된 배경에는 1) 빅데이터의 출현으로 정확도를 교정할 데이터 양의 급증, 2) 고성능 GPU 서버의 등장으로 연산 속도 증가, 3) 딥러닝 기법 등 알고리즘 고도화가 있습니다.
신경망의 원리는 인간이 새로운 지식을 학습하는 메커니즘을 따라한 것입니다. 인간의 뇌는 뉴런 (신경 세포)의 네트워크로 구성되어 있고, 각 뉴런은 시냅스를 통해 서로 전기 자극을 전달합니다. 여기엔 임계값이라는 개념이 있는데, 자극이 일정 임계값을 넘지 못하면 전기 신호가 생기지 않아 그 값이 0이 되고, 생기면 1이 되어 정보를 전달합니다. 뉴럴 네트워크는 이러한 생체 뉴런의 정보전달 방식을 수학적 알고리즘으로 모사했습니다.
다만, 이러한 신경망 방식의 가장 큰 한계는 바로 최적화가 어렵다는 것이었습니다. 수만 개의 뉴런들이 수백만 개의 선(network)에 의해 연결되어 있고, 이 선들에 적당한 가중치(weight)을 부여하는 최적화 작업이 너무 복잡했습니다. 수백만 건의 데이터를 입력하고, 서로 답변 맞춤을 하며 틀릴 때마다 가중치 값을 적절히 수정하는 과정을 되풀이해야 했는데, 이 과정에 너무 많은 시간이 소요되었죠.
딥 러닝이 인공신경망이 지닌 이러한 문제를 해결했습니다. "비지도 학습"을 통해 훈련할 데이터를 전처리하였고, 이렇게 전처리한 데이터를 더 "Deep"하게 여러 층 쌓아올려 인공신경망 최적화를 수행했습니다. (심층 신경망, Deep Neural Networks) 그 결과, 기존 머신러닝의 성능을 뛰어넘는 놀라운 정확도를 일궈낼 수 있었습니다.
즉, 딥 러닝은 인공신경망(Artificial Neural Networks) 알고리즘을 개선하여 기존의 한계를 극복한 것이라 할 수 있습니다. 딥 러닝의 등장으로 순환신경망(RNN, Recurrent Neural Network), 합성 인공신경망 (CNN, Convolution Neural Networks)등 후속 모델들이 속속 등장하며, 인공지능 분야의 획기적인 발전을 이끌어 냈습니다. 딥 러닝은 컴퓨터 비전, 이미지 인식, 음성 인식, 추천 시스템, 위에서 언급한 자연어 처리 등, 다양한 문제에서 적용되어 AI의 가능성을 확장하고 있습니다.
[참고 서적] 인공지능과 딥러닝