728x90
반응형

 현재 컴퓨터를 사용하는 모든 분야에서 가장 핫한 분야를 한 가지 고르라고 한다면, 장담컨대 "인공지능 > 머신러닝 > 딥러닝"을 꼽을 수 있을 것이다. 알파고 이후로 모든 매체에서는 인공지능, 머신러닝, 딥러닝이라는 단어를 외치고 있으며, 이 것이 중요하다는 것은 알겠는데 구체적으로 어떻게 중요한지, 그리고 이 것이 구체적으로 무엇인지를 제대로 설명해주는 곳은 많지가 않다.

 이번 포스트에서는 "인공지능 > 머신러닝 > 딥러닝"으로 이어지는 단어들에 대해 설명하고, 앞으로의 학습 방향에 대해 이야기해보도록 하겠다.

인공지능의 포함 관계

 

 

1. 인공지능(AI)이란?

 인공지능이라는 단어를 들으면 막연하게 "터미네이터 같은 인간과 유사한 생김새를 갖고 있으며, 인간보다 뛰어난 능력을 가진 존재"라는 생각이 들 것이다. 인공지능은 크게 General AI(일반적인 AI)와 Narrow AI(좁은 AI) 두 가지로 나뉘는데, 이를 설명해보면, 대충 감이 올 것이다.

General AI

  • 영화에 나오는 인공지능으로 인간처럼 사고를 하며, 상황에 맞는 다양한 활동을 하는 인공지능을 말한다.
  • 예를 들자면 자신의 다리로 계단이던 길이던 횡단보도던 알아서 돌아다니고, 필요에 따라 판단하여 택시나 버스를 타고, 에너지가 부족하다 싶으면 알아서 에너지도 충전하고, 회사에 출근해서 눈치를 살피는 그런 인간과도 같은 존재를 가리킨다.
  • 이런 복합적인 기능을 자유자재로 동시에 수행하는 것은 아직까진 우리 상상 속에만 존재하며, 영화나 드라마에서만 나오는 존재다.

Narrow AI

  • 말 그대로 좁은 영역에서의 인공지능을 말하며, 특정한 행동에 대해서만 특화 돼 있는 인공지능이다. 
  • 가장 유명한 인공지능인 알파고는 바둑에 특화된 인공지능으로, 학습을 위해 바둑 기보들을 수집하고, 학습된 내용을 바탕으로 스스로 경쟁하여 바둑을 학습해, 바둑이라는 게임에서 승리할 수 있도록 만든 것이다.
  • 학교, 뉴스, 4차 산업 혁명에 해당하는 인공지능이 바로 Narrow AI이다.
  • 우리가 앞으로 학습할 인공지능이 이 곳에 해당한다.

 

 

 

 

2. 머신러닝(Machine Learning)이란?

 머신러닝은 위에서 이야기한 Narrow AI에 속하는데, 말 그대로 기계를 학습시킨다는 말이다.

 갓 태어난 아이는 성장을 하며 말을 배우고, 친구를 사귀는 법을 배우며, 국어, 영어, 수학 같은 학문을 배운다. 나아가 음악을 들었을 때, 이 음악이 어떤 음악이었는지 그 제목을 떠올리기도 하고, 그림을 보고 그림의 제목과 화가의 이름을 맞추기도 한다.

 우리가 처음으로 말을 배웠을 땐, 부모님이 하는 말을 계속 들어왔고, 부모님들은 사물에 사물 이름을 적은 메모장을 붙여놓는 방법 등을 통해 우리를 가르쳤다. 친구를 사귀는 법은 다양한 사람을 만나가며, 어떻게 하면 그들과 유대감을 쌓을 수 있는지 경험으로 익혔다. 국어, 영어, 수학 같은 학문은 계속 책을 보며, 문제를 푸는 방법과 사고하는 방법을 익혔다. 음악이나 그림을 판단하는 방법도 다양한 음악이나 그림을 접하면서 그것들을 구분하는 능력을 쌓았다.

 위 예시에서 우리는 오로지 데이터만을 가지고 지금의 복잡한 작업을 수월하게 할 수 있게 된 것이다. 컴퓨터를 이용한 기계학습 역시 이와 유사하게 이루어진다. 기본적인 머신러닝 알고리즘이 존재하고, 그 알고리즘에 데이터를 부어넣으면, 그 데이터가 가지고 있는 패턴을 찾아내, 그 패턴대로 분류하게 되는 것이 바로 머신러닝이다.

 

 

 

 

3. 딥러닝(Deep Learning)이란?

 1943년 논리학자 윌터 피츠(Walter Pitts)와 신경외과의 워렌 맥컬럭(Warren Mc Cullonch)은 "A Logical Calculus of Ideas Immanent in Nervous Activity"라는 논문에서 딥러닝의 기반이 되는 인공신경망이라는 개념을 등장시켰고, 인간의 신경세포를 모방한 퍼셉트론을 등장시켰다.

 퍼셉트론을 이용한 인공지능 연구능 처음엔 굉장한 인기를 끌었으나, 굵직 굵직한 사건이 터져 몇 번이고 사장될 위기에 처했었다. 처음엔 XOR 게이트로 인해 퍼셉트론은 선형 분류밖에 할 수 없다는 한계점이 등장했고, 이를 다층 퍼셉트론(MLP)라는 개념을 등장시켜 선형 분류의 한계점을 해결하였으나, MLP를 학습시킬 방법이 없다는 한계점이 또 등장하였다. 이는 오류역전파(Backpropagation of errors)라는 기법으로 해결하였으나, 층이 늘어날수록 기울기가 소실되는 문제가 또 등장하고, 은닉층 활성화 함수로 Sigmoid 대신 ReLU를 사용하여 해결하는 등 수많은 과정을 거쳐 지금의 딥러닝이 탄생하게 되었다.

 딥러닝이라는 이름이 생긴 이유도 기존의 다층 퍼셉트론(MLP)에 대한 부정적인 시선을 피하기 위해 딥러닝이라는 새로운 이름을 붙인 것이며, 다층 퍼셉트론(MLP)의 은닉층을 아주 많이 쌓기 때문에 딥(Deep)해진다. 즉, Layer가 깊어진다라는 의미에서 딥러닝이라는 이름이 붙은 것이다.

 딥러닝 역시 머신러닝의 한 갈래에 속하지만, 머신러닝에는 퍼셉트론을 포함하여 수많은 이론들이 존재하므로, 머신러닝과 딥러닝을 분리해서 생각하는 것이 좋다.

 

 

 해당 카테고리에서는 머신러닝에 대해서 학습할 계획이며, 딥러닝에 대해서는 Deep Learning 카테고리에서 따로 학습할 예정이다.

728x90
반응형
728x90
반응형

기계학습(Machine Learning)이란?

사진 출처: 워너 브라더스 코리아

호아킨 피닉스 주연의 조커(Joker, 2019)란 영화를 본 적이 있는가?

이 영화에서 흥미로운 부분은 영화 밖 관객과 영화 안 관객이 조커에게 갖는 인식이 다르다는 것이다.

 훗날 조커가 될 아서 플렉은 정신 질환과 장애, 불안정한 일자리, 건강이 좋지 않은 홀어머니를 모시고 사는 편치 않은 삶을 살고 있지만, 다른 이들을 행복하게 만드는 사람이 되기 위해 노력하는 삶을 지내고 있다.

 지하철에서 만난 어린아이를 웃기기 위해 얼굴로 장난을 치거나, 웃긴 개그들을 정리해놓은 개그 노트를 만들고, 개그맨이라는 꿈을 향해 어떻게든 노력하며, 망상 속이긴 했지만 행복한 삶을 꿈꾸는 그런 사람이다.

 하지만, 사회는 아서 플렉에게 그리 호의적이지 않았고, 광대 분장을 하고 입간판을 들고 광고를 하는 그는 강도질을 당하거나, 건장한 백인 남성들에게 둘러싸여 위협을 받거나, 그의 잘못이 없음에도 불구하고 일방적으로 그를 해고해버리는 등, 아서 플렉을 둘러싼 사회는 그를 하루하루 꿈으로부터 밀어내고 있다.

 영화가 절정에 도달아 아서 플렉이 결국 조커로 각성하여, 추가 살인을 저지르고 폭동의 심볼이 되었을 때, 관객들은 사회의 부조리에 희생당하고 결국 사회에 폭발적인 분노를 표출한 조커에게 감정 이입하여 조커로부터 카타르시스를 느끼게 되며, 영화 안의 관객들은 조커라는 괴물에게 공포를 느끼게 된다.

 

 

 

 자, 이번엔 빅데이터 분석가의 관점에서 위 내용을 바라보도록 하자, 만약 살인범인 아서 플렉에 대해 영화 내부의 인물이, 그가 어째서 살인범이 되게 되었는지에 대해 분석해본다면 어떤 결과가 나올까?

 영화 안에 있는 인물들이 아서 플렉에 대해 얻을 수 있는 정보는 다음과 같다. "흡연자, 편모가정, 빈곤층, 정신 장애 보유, 신체 기형 보유, 일용직 노동자" 이러한 특징을 가진 사람들과 그렇지 않은 사람들을 비교해보니, "이런 특징을 가진 사람들이 그렇지 않은 사람보다 범죄를 저지를 확률이 높다! 그러니 이런 특성을 가지고 있는 사람들을 감시해야 한다!"라는 결론을 내릴 수 있다.

 영화 밖 관객인 당신은 위 결론에 대해 동의할 수 있는가? "아서 플렉을 괴물로 만든 것은, 그에게 친절하게 굴지 않은, 그를 둘러싼 사회지 않느냐!!"라는 생각을 하며, 반발을 할 수도 있을 것이다.

 우리가 접하는 대부분의 데이터는 어떠한 사건의 본질, 그 현상 자체에 대한 것이 아닌, 연구자의 의도, 관점, 생각, 가설이라는 주관이 섞여있는 상태에서 생성이 된다. 그러다 보니, 우리는 실제 현상으로부터 상당히 거리가 떨어져 있을지도 모르는 데이터를, 실체라고 오판할 수 있으며, 본질에 다가가고자 하는 시도인 분석이, 도리어 본질로부터 멀어지는 행동이 될 수도 있다.

 

 

 

어떻게 하면 위 문제를 해결할 수 있을 것인가?

 사람의 인식은, 어떠한 대상에 대하여, 자신의 지식, 경험 등을 기반으로, 대상을 분류하는 과정을 통해 이루어지며, 우리는 인식 능력이 좋은 사람을 "통찰력 있는 사람", "시야가 넓은 사람"이라고 종종 이야기한다.

 하지만, 사람이 가질 수 있는 지식, 경험은 매우 한정적이고, 그 양 역시 많지 않으며, 그 대상에 대해 받아들이는 정보 역시 온전하다고 할 수 없다. 장님에게 코끼리를 설명하라고 하면, 다리를 만진 장님은 코끼리에 대해서 "코끼리는 기둥이다!"라고 할 것이고, 코끼리의 꼬리를 만진 장님은 "코끼리는 밧줄이다!"라고 할 것이며, 코끼리의 코를 만진 장님은 "코끼리는 두꺼운 뱀이다!"라고 할 것인데, 눈이 보이는 우리 역시도 한눈에 보이지 않는 어떠한 대상에 대해, 심지어 눈에 보인다고 할지라도, 우리가 정의 내리고자 하는 어떠한 현상의 경계, 본질을 인식할 수 없다.

 예를 들어, 당신이 청년 실업의 본질을 알고 싶다면, 과연 그 청년 실업이라는 현상의 경계는 어디서부터 어디까지이겠는가? 그리고 당신이 비교적 정확한 경계를 찾아낸다고 할지라도, 그 경계가 불변하겠는가?

 

 

 

 자, 사람의 인식이 가진 한계가 위와 같다고 하면, 기계 즉, 컴퓨터에게 실제 현상에 관련된 것인지 아닌지는 모르겠지만 발생한 모든 데이터를 주고 그 데이터들을 분류해보라고 하면 어떨까?

 사람 한 명이 처리할 수 있는 데이터의 한계가 있고, 여럿이서 데이터를 공동으로 처리하는 경우, 의사소통의 문제 등으로 인해, 현상을 이해하는데 문제가 생길 수 있다면, 어마어마하게 좋은 컴퓨터에게 어마어마한 양의 데이터(빅 데이터)를 주고, 그 어마어마한 양의 데이터를 어떤 규칙에 따라 학습시키고, 데이터들을 분류해 나가다 보면, 조커와 같은 살인자 집단이 갖는 공통된 패턴을 찾아낼 수 있고, 보다 본질에 대한 명확한 이해를 할 수 있지 않을까?

 위 내용들을 단순화시켜 말하자면, 무엇인지 모르는 본질이 숨어있을 엄청나게 거대한 빅 데이터를, 컴퓨터에게 주고, 빅 데이터를 학습시켜서 컴퓨터가 그 안 속에 숨어있는 어떠한 패턴을 찾아내게 하는 것. 이 일련의 활동이 기계 학습(Machine Learning)이며, 우리는 데이터 자체에서 패턴을 찾아낼 수 있다.

 우리는 이 기계 학습을 통해서, 우리가 지금까지 알지 못했던 빅 데이터 속에 숨겨져 있는 어떠한 패턴, 이론, 변수 등을 찾아내어, 지금까지의 이론을 기반으로 하여 시작하는 연구에서, 실제 데이터를 통해서 이론을 찾아내는 연구로 현상에 대해 접근하는 방법을 바꿔서 다가갈 수 있다.

 이 것이 우리가 기계학습을 공부해야 하는 이유이며, 기계학습으로 해낼 수 있는 가능성이 바로 이것이라 말할 수 있다.

 

 

 

 자, 지금까지 기계 학습(Machine learning)이 무엇인지에 대해 이야기해보았다. 위키피디아나 책에서 나온 정의는 잘 와 닿지가 않아, 기계학습에 대한 필자의 생각을 정리해본 내용이다. 보다 자세한 내용은 위키피디아나 책을 찾아보길 바라며, 이제 천천히 기계학습에 대해 본격적으로 접근해보도록 하자.

 본 블로그에서 기계학습 부분은 파이썬을 이용해서 실습할 예정이므로, 다음 포스트에서는 파이썬 기계학습의 대명사인 텐서플로우(Tensorflow) 설치 방법에 대해 학습해보도록 하겠다.

728x90
반응형

+ Recent posts