Leeds Coding

인공지능 / 머신러닝 / 딥러닝 도대체 무슨 차이? 본문

머신러닝&딥러닝

인공지능 / 머신러닝 / 딥러닝 도대체 무슨 차이?

Leeds Coding 2023. 1. 22. 23:08


요즘은 인공지능을 활용한 서비스나 제품이 정말로 많아졌다. 동시에 이런 인공지능 서비스를 만들기위해 사용하는 머신러닝, 딥러닝에 대해서도 언급이 많아졌다. 국내에서는 2016년 이세돌과 알파고의 경기에서 알파고가 승리한 이후, 국내의 기업들이나 일반 사람들도 인공지능(AI)에 대한 관심도가 급격히 올라갔다.

사실 인공지능이라는 분야는 오래전부터 연구가 되어오던 분야이다. 사람의 두뇌를 모방한 형태의 인공신경망의 기초가 되는 논문은 1940년대에 출판되었다. 컴퓨터의 아버지라고 불리는 앨런 튜링(Alan Turing)은 1950년에 인공지능을 평가하는 방법인 Turing Test를 제안했었다. 이 테스트는 대화하는 대상이 컴퓨터인지 사람인지 모른 상태로 대화를 할 때 대화한 컴퓨터가 사람이었다고 착각을 한다면, 컴퓨터가 사람처럼 생각한다고 볼 수 있지 않을까 라는 아이디어를 제안했다. 이렇게 사실 인공지능에 대한 연구는 1940-50년대부터 학계에서는 꾸준히 진행이되어 왔다. 오래 전부터 연구되어 오던 인공지능이 2010년대 이전까지는 크게 주목받지 못한 것은, 그전까지는 사람에 준하거나 사람을 능가하는 수준의 성능을 인공지능을 잘 보여주지 못했기 때문으로 생각된다.

2010년대 이후 인공지능이 발달한 것은 그동안 쌓아온 인공지능 분야의 연구들이 있었던 것과, 하드웨어의 성능이 향상된 것과 관련이 있다. 위 이세돌을 이겼던 알파고에서 사용한 딥러닝 방식의 경우는 좋은 컴퓨팅 성능이 없이는 사용하기가 힘들었다. 과거에는 한 번 학습을 시키거나 사용하려면 너무 많은 시간이 걸려서 최근이 되기 전까지는 잘 주목을 받지 못하기도 했다.

간단히 인공지능과 관련된 배경을 설명했는데, 이제 인공지능, 머신러닝, 딥러닝 각각 개념에 대해 이야기를 해보겠다. 특별히 이 분야 전문가가 아니더라도, 인공지능 분야에 대한 이해도를 요구하는 곳들이 많아지고 있다. 요즘은 꼭 개발자가 아니더라도 인공지능 결과물을 활용하거나 인공지능/머신러닝을 적용하는 직군들이 많아지고 있다(기획, 마케팅 등).직관적으로 설명을 하자면 인공지능이 가장 큰 개념이고 그 안에 머신러닝이 있고, 머신러닝 안에 딥러닝이 포함되어 있다고 설명할 수 있다.

1. 인공지능 (Artificial Intelligence)


가장 큰 개념인 인공지능은 컴퓨터가 사람처럼 지적인 업무를 수행하게 하는 모든 것을 의미한다. 인공지능은 데이터를 기반으로 학습을 하는 머신러닝과 Expert System 등을 모두 포함한다. 머신러닝과 Expert Sytem은 둘 다 다양한 문제를 해결할 수 있고 장단점이 있다. 머신러닝과 Expert System의 가장 큰 차이점은 머신러닝은 규칙을 사람이 직접 정해주는 것이 아니라, 데이터를 통해 컴퓨터가 스스로 주어진 테스크를 잘 수행할 수 있도록 학습한다는 점이고, Expert System은 그런 규칙을 각 도메인의 전문가가 정의해서 컴퓨터에 주입한다는 점이다. 머신러닝의 장점은 수많은 규칙을 사람이 일일이 지정해줄 필요가 없다는 점인데, 단점이라고 하면 해결하려는 문제와 관련된 많은 데이터가 있어야 한다는 점이다. 그리고 머신러닝 방식은 보통 왜 그렇게 했는지 설명하기가 어렵고 대부분 확률적인 설명만 가능하다. 반대로 Expert System은 많은 데이터가 없이도 구축이 가능한 반면 이런 규칙을 사람이 일일이 다 지정해줘야 한다는 단점이 있다. 인터넷이 발달하면서 수많은 데이터가 쌓이게 되고 컴퓨터 성능이 좋아지면서 머신러닝을 활용하기 좋은 환경이 되었다. 그런 점 때문에 요즘은 머신러닝이 많은 각광을 받고 있다.

2. 머신러닝(Machine Learning)


머신러닝은 데이터만 있으면 기계가 스스로 학습할 수 있는 방식을 의미한다. 이 머신러닝 방식 안에 딥러닝이라는 방식도 있는 것이다. 그런데 간혹 머신러닝 관련 프로젝트를 했었고 관련 공부를 하셨다고 하는 분들 중에서, 머신러닝은 안 해봤고 딥러닝만 해봤다고 이야기하는 것을 들을 때가 있다. 사실 딥러닝을 해봤으면 머신러닝을 해본 것이기 때문에 그런 표현은 엄밀하게는 맞지 않는 표현이다. 머신러닝 방법들 중에서 딥러닝 방식만 프로젝트에 적용해본 경우라면, ‘전통적인’ 머신러닝은 해보지 않았다고 이야기하는 것이 적절하다. 전통적인 머신러닝에는 기본적인 방식인 선형회귀부터 의사결정나무(Decision Tree), 랜덤 포레스트(Random Forest), Support Vector Machine, 나이브 베이브 등이 있다. 그리고 딥러닝은 머신러닝 방식들 중에서도 사람의 신경망을 모사한 인공신경망의 형태를 갖는 것을 의미한다.

딥러닝과 전통적인 머신러닝 모두 머신러닝 방식으로서 다양한 문제를 해결할 수 있는데, 대표적으로 분류 문제와 회귀 문제(수치 예측) 등을 해결할 수 있다. 이미지를 보고 강아지인지 고양이인지 분류하는 것은 분류 문제의 예이고, 다음 날 기온을 예측하는 것은 회귀문제라고 볼 수 있다. 머신러닝 기법들은 학습시키는 방식에 따라서 지도학습, 비지도학습, 강화학습으로 구분된다. 지도학습은 정답이 있는 데이터를 활용해서 학습시키는 방식이고, 비지도학습은 정답이 없는 데이터 안에서 패턴을 찾는 방식이고, 강화학습은 보상이 최대가 되는 방향으로 결정하도록 학습시키는 방식이다.

3. 딥러닝 (Deep Learning)


딥러닝은 사람의 뇌의 신경망을 컴퓨터로 표현한 인공신경망을 기반으로 했다. 딥러닝은 Deep Learning이라고 하는데, 인공신경망을 깊게 쌓은 형태를 의미한다. 연구자들은 신경망을 구성할 때 Layer를 쌓아서 연산을 하게 했는데, 이런 Layer를 깊게 쌓았을 때 높은 성능이 나오는 것을 확인했다. 이런 딥러닝의 기본적인 형태로는 Fully Connected Layer를 여러 겹 연결한 형태인 Multilayer Perceptron (MLP), CNN, RNN 등이 있다. CNN은 Convolutional Neural Network로 주로 이미지 처리에 활용되고, RNN (Recurrent Neural Network)은 시계열 데이터나 자연어 데이터처럼 순서가 있는 데이터에 주로 활용이 된다. RNN의 단점을 해결한 형태로 LSTM(Long short-term memory)이 있고, 요즘 자연어처리에서는 Transformers 형태가 RNN이나 LSTM보다 많이 사용되고 있는 추세이다. BERT, GPT 계열 모델들은 모두 Transformers를 기반으로 한다.