머신러닝과 딥러닝의 포함 관계
빅데이터와 인공지능이라는 단어가 우리 삶에 친근하게 다가와 이제는 관련한 세부 용어들 역시 많은 사람들의 귀에 익숙하다. 그 대표적인 단어가 기계학습 혹은 머신러닝, 그리고 딥러닝이다. 아무래도 말들이 비슷하게 생겼다 보니 인공지능을 공부한 경험이 없는 사람들은 머신러닝과 딥러닝이 구체적으로 무엇인지 그리고 이 둘 간의 차이가 무엇인지에 대해 많이 질문을 하곤 한다.
머신러닝이랑 딥러닝이 뭐가 다른 거야?
사실 빅데이터와 인공지능을 공부하는 사람들이라 할지라도 머신러닝과 딥러닝의 차이점을 물어보면 바로 답을 하지 못하는 경우가 많다. 다른 사람들은 이 질문에 어떻게 대답하나 궁금해서 인터넷 검색을 해보면 필요 없는 말로 이 둘의 차이를 설명하는 글이 대다수이다. 사실 이 둘의 구체적 차이점을 세세하게 짚어내려면 어려운 용어가 반드시 수반되긴 해야 한다. 지금부터 이를 고려하여 질문에 가능한 명료하게 답을 해보려 한다.
머신러닝이라는 개념 안에 딥러닝이 포함된 거야!
머신러닝과 딥러닝의 차이점을 알기 위해 가장 먼저 짚고 넘어가야 할 점은 이 둘은 완전히 독립적으로 다른 개념이 아니라는 것이다. 기본적으로 딥러닝은 머신러닝이라는 넓은 개념 속에 포함되어 있는 단어이다. 머신러닝, 딥러닝에 더해 인공지능까지의 관계를 표현해보면 다음과 같은 유명한 형태의 다이어그램을 만나볼 수 있다.
먼저 인공지능은 머신러닝과 딥러닝을 모두 포함하는 개념이다. 딥러닝을 포함한 머신러닝은 사람의 지능을 구현하기 위해 만들어진 하나의 방법론이다. 하나의 방법론이기 때문에 머신러닝을 제외하더라도 인공지능에는 또 다른 영역이 있다. 단적인 예로, 1950년대와 1980년대에도 인공지능을 구현하기 위한 노력이 있었으나 이는 머신러닝이라고 표현하지는 않는다.
그리고 또 한 번 다시 강조하자면 딥러닝은 머신러닝에 속하는 용어이다(정확한 머신러닝의 개념은 또 다른 글에서 설명할 예정이다). 한 가지 안타까운 건 인공지능을 처음 접하고 배우는 사람들이 딥러닝과 머신러닝이 완전히 다른 개념이라고 이해하는 경우가 많으며, 이 둘이 포함관계임을 안다고 하더라도 딥러닝과 머신러닝 중 어떤 것이 더 큰 개념인지 알지 못하는 경우도 있다. 마치 6.25 전쟁을 남침 전쟁인지 북침 전쟁인지 여전히 헷갈려하는 사람이 많은 것처럼. 사실 이 둘의 관계는 딥러닝(Deep Learning)이라는 말의 풀네임을 한 번 알면 완전히 이해할 수 있다.
Deep Learning = Deep Neural Network Machine Learning
딥러닝은 위와 같이 Deep Neural Network Machine Learning의 줄임말이다. 여기서 중간에 Neural Netowork Machine이 빠져서 흔히들 딥러닝이라고 부른다. 이 단어는 다시 Deep / Neural Network / Machine Learning의 세 부분으로 나누어진다. 이를 해석하면 딥러닝이란 뉴럴 네트워크를 깊게 쌓아 만든 머신러닝 알고리즘의 일종이다. 즉, 머신러닝에는 수많은 알고리즘이 존재하는데 그중에서 딥 뉴럴 네트워크 알고리즘을 이용하는 경우에 이를 딥러닝이라고 따로 칭하여 부른다(상대적으로 우리에게 친숙한 단어인 선형 회귀 역시 머신러닝 알고리즘 중 하나로 이용된다).
Neural Network에 대해 아주 간단하게만 살펴보면 한글로 번역했을 때 신경망 정도로 표현된다. 생물학 시간에 배운 Neuron의 구조를 모방하여 학습을 진행하는 방법이다. 인간과 같은 지능을 인위적으로 만들어내는 인공지능의 구현 방법으로 뉴런의 구조를 모방하다니, 생각해보면 신기하면서도 이름을 참 잘 지었다. 그런데 왜 머신러닝에는 많고 많은 알고리즘이 있다고 했는데 굳이 뉴럴 네트워크에게만 딥러닝이라는 새로운 칭호를 붙였을까? 아마도 이는 딥러닝이 보여주고 있는 무지막지한 영향력 때문이다.
딥러닝으로 구현되는 인공지능은 너무나도 정확하고 강력하다.
사실 딥러닝을 제외한 다른 머신러닝 알고리즘들 역시 아직 많이 연구되고 활용되고 있지만 딥러닝으로 구현되는 인공지능이 상대적으로 너무 정확하다. 간단히 요약해 말하면, 딥러닝은 다른 머신러닝 알고리즘에 비해 매우 복잡한 연산 과정을 통해 학습을 진행하고 이를 바탕으로 굉장히 높은 정확성을 자랑한다. 물론 매우 복잡한 연산 과정을 가지고 있기 때문에 이용에 제약이 있는 경우가 많아 전통적인 머신러닝 방법도 여전히 많이 이용되고 있기는 하다.
이 때문에 딥러닝은 기존 머신러닝 알고리즘이 해내지 못했던 많은 일들을 해내고 있다. 우리가 쉽게 생각할 수 있는 엑셀과 같은 형식의 정형 데이터를 다루는 분야에 더해 비정형 데이터로 불리는 텍스트 데이터, 이미지 데이터를 처리하고 이용하는데 활용성을 엄청나게 높여주었다. 딥러닝이 아닌 다른 머신러닝 알고리즘으로도 텍스트, 이미지 데이터를 분석하는 게 불가능하진 않지만 그 분석 결과가 너무나 부정확한 경향이 있다. 결국 다른 머신러닝 알고리즘이 한계를 보였던 부분에 딥러닝이 탁월한 성능을 보여주고 있기 때문에 현재는 딥러닝과 머신러닝이 아예 별개의 영역인 것처럼 불리는 경우가 종종 생기는 것이다.
특히 방금 언급하였듯이 텍스트 데이터와 이미지 데이터 처리에 있어 딥러닝의 활용성이 매우 높기 때문에 보통 AI를 하는 사람이라고 하면 딥러닝 기술을 이용하여 텍스트 데이터나 이미지 데이터 중 하나를 전문적으로 다루는 사람을 의미하는 경우가 많다. 이 때문에 결론적으로 딥러닝과 머신러닝은 별개의 개념이고 딥러닝 = AI라는 이상한 종착지에 도달하여 해당 용어를 사용하는 경우도 흔히 발견할 수 있다(워낙 많은 사람들이 이렇게 사용하니까 잘못된 개념일지라도 남들의 대화를 이해하기 위해 이 개념도 알아두면 좋다).
이런 현상으로 인해 최근 AI 연구는 사실상 딥러닝이 선두에 서서 이끌어 가고 있다. 과장을 조금 보태 말하자면 최근 AI 연구는 딥러닝의 연구가 전부이다. 실제로 이세돌을 이긴 알파고, 기계 번역기, 예술 작품을 창작하는 인공지능 등 우리에게 익숙한 모든 인공지능은 딥러닝 기술이 그 밑바탕에 존재하고 있다.
이 때문에 오로지 인공지능에만 관심이 지대한 주변인이 있다면 나는 딥러닝을 열심히 공부하라고 조언을 할 것이다. 하지만 그럼에도 인공지능이라는 프레임워크에서 조금만 벗어나 다시 빅데이터라는 분야를 생각해보면 여전히 딥러닝을 제외한 머신러닝 역시 매우 중요한 역할을 하고 있다. 이 내용에 관해서는 빅데이터와 인공지능이라는 커다란 두 가지 축을 가지고 또 다른 글을 작성할 예정인데 그때 다시 이야기해보도록 하겠다. 결론적으로 딥러닝과 머신러닝은 포함 관계이지만 이 둘을 다른 개념이라고 생각했을 때 다음과 같은 말로 구분을 지어볼 수 있겠다.
AI 분야를 멱살 잡고 이끌어가는 딥러닝,
여전히 빅데이터 분석에 빠질 수 없는 머신러닝
이렇게 결론을 짓고 보면 사실 엄청난 역설이 발생한다. 딥러닝은 머신러닝에 포함되는 용어이지만 이 둘을 분리시켜 딥러닝/딥러닝을 제외한 머신러닝으로 구분하여 그 활용성을 자세히 이해할 필요가 있다. 또 머신러닝 자체가 AI 분야에 포함이 되는 단어이지만 AI 분야는 머신러닝 안의 딥러닝이 멱살을 잡고 이끌어가고 있으며, 딥러닝은 빅데이터를 바탕으로 구현되는 것이지만 일반적 용어의 빅데이터 분석에는 여전히 머신러닝이 주요하게 자리 잡고 있다. 이 복잡 미묘하면서도 역설적인 두 단어의 관계를 이해할 수 있다면 빅데이터/인공지능을 한 단계 높은 차원에서 파악할 수 있을 것이다.