나는 당신이 딥러닝 공부를 시작했으면 좋겠습니다.
1. 인공지능의 시대
바야흐로 인공지능의 시대입니다. 2016년 알파고의 등장은 전 세계를 떠들썩하게 만들었죠. 이때까지만 해도 바둑은 오직 인간의 영역으로 여겨졌습니다. 그도 그럴 것이 바둑에는 무한가지에 가까운 경우의 수가 존재하기 때문이죠. 이러한 이유로 바둑보다 상대적으로 경우의 수가 적은 체스는 컴퓨터로 정복했지만 바둑은 불가능하다 여겨졌습니다. 때문에 바둑으로 사람을 이긴 알파고의 등장은 충격적이었죠. 특정 분야에서 컴퓨터가 인간을 능가할 수 있다는 가능성을 보여준 첫 사례였습니다.
요즈음 가장 유명한 인공지능은 단연 ChatGPT입니다. ChatGPT는 openAI에서 제작한 대화형 인공지능입니다. 말 그대로 사람과 대화를 할 수 있는 인공지능이죠. 지금까지 대화형 인공지능은 일상적인 대화를 하는 수준에 불과했습니다. 하지만 ChatGPT의 성능은 상상을 초월합니다. 단순한 대화를 넘어 에세이, 논문도 스스로 작성할 수 있는 수준입니다. 이렇게 작성하는 에세이나 논문의 수준 또한 최고 수준입니다. 읽는 사람도 이 글이 사람이 쓴 것인지 컴퓨터가 쓴 것인지 분간하지 못할 정도입니다.
알파고에 이어 ChatGPT의 등장은 우리에게 많은 시사점을 던지고 있습니다. 지금까지 인간만이 할 수 있는 영역이라 여겼던 부분 또한 컴퓨터가 더 잘할 수 있음을 보이고 있기 때문이죠.
문제는 인공지능의 발달 수준이 점점 더 가속이 붙고 있다는 것입니다. 지난 5년간 인공지능은 그전 5년 동안 이루었던 성취의 몇 배 이상을 이루어 냈습니다. 이는 다양한 이유가 있습니다. 가장 큰 이유는 점점 더 많은 기업에서 인공지능을 연구하고 있기 때문입니다. 그 말은 점점 더 많은 돈이 인공지능 연구에 투자되고 있다는 의미죠. 이에 따라 점점 더 많은 사람들이 인공지능 분야에 들어오고 있습니다. 이에 맞춰 그래픽 카드 등의 하드웨어 성능 또한 기하급수적으로 증가하고 있죠. 스스로 학습하고 성장하는 인공지능의 등장도 머지않아 보입니다.
역사를 되돌아보면 각 시대별 주도권은 언제나 해당 시대의 핵심 기술을 선점한자의 것이었습니다. 수렵채집 시대에는 사냥을 잘하는 자가 시대를 주도했죠. 농업시대에는 농지를 선점한자가 지주가 되어 지배계급으로 군림했습니다. 산업시대에는 기계, 전기 기술을 확보한자가 막대한 부를 거머쥘 수 있었죠. 이제는 인공지능의 시대입니다. 현시대에 인공지능을 아는 자와 모르는 자의 관계는 수렵채집 시대에 사냥할 줄 아는 자와 모르는 자의 관계와 같을 것입니다.
2. 나는 당신이 딥러닝 공부를 시작했으면 좋겠습니다.
저는 이 글을 읽는 당신이 딥러닝 공부를 시작했으면 좋겠습니다. 비전공자여도 괜찮습니다. 평생을 전공 관련 업무만 하며 사는 사람이 몇 명이나 있을까요? 딥러닝은 결코 어렵지 않습니다. 하나씩 차근차근 고민해가다 보면 충분히 깊게 파내려 갈 수 있습니다.
문제는 공부 방법이라고 생각합니다. 보통은 어디에 사용하는 건지도 모른 채 아주 많은 이론을 먼저 공부하죠. 학생 시절을 생각해 볼까요? 초등학생부터 고등학생 때까지 참 많은 수학 내용을 배우죠. 1차 방정식 이론을 배워서는 소금물 농도를 구했습니다. 2차 방정식 이론을 배워서는 최댓값 최솟값을 구하는 데에 응용했죠. 확률과 통계 이론을 배워서는 주사위 눈이 나올 확률을 계산해 봤습니다. 행렬을 배워서는 의미도 모르는 행렬곱 계산을 했죠. 미적분을 배워서는 곡면체의 부피를 구했습니다.
이런 방법으로는 끝까지 공부하기 어렵습니다. 궁금하지도 않고 재미도 없으니까요. 딥러닝 공부도 마찬가지라고 생각합니다. 처음 딥러닝 공부를 시작할때의 기억이 지금도 생생합니다. 일단 엄청난 책 두께에 압도되었습니다. 목차를 펼쳐보고는 끝도 없이 펼쳐지는 이론에 절망했죠. 딥러닝을 제대로 알기 위해서는 다양한 이론을 깊게 이해할 필요가 있습니다. 그래서 대부분의 딥러닝 과정에서는 미적분, 선형대수, 확률, 통계 등등을 다루죠. 하지만 이런 순서로는 금방 지루해집니다. 지루함은 뜨겁던 열정을 금방 차갑게 식혀버리죠. 딥러닝 근처도 못 가보고 포기하기 십상입니다.
정반대의 공부 방법이 필요합니다. 일단 인공지능 모델을 만들어보는 겁니다. 이 과정에서 자연스럽게 질문이 꼬리에 꼬리를 물 것입니다. 그럼 질문에 하나씩 답을 찾아가면서 자연스럽게 이론을 학습하게 되죠. 단순히 주어진 지식을 암기하는 방법은 진정한 내 지식이 아니기에 응용할 수 없습니다. 하지만 스스로 탐구하며 깨달은 지식은 진정한 내 지식이기에 응용할 수 있죠. 그렇게 조금씩 파고 들어가다 보면 진정 깊은 곳까지 파 내려갈 수 있다고 생각합니다.
3. 딥러닝 이야기의 구성
이러한 이유로 이번 시리즈글에서는 비전공자를 위한 딥러닝 이야기를 연재해 봤습니다. 독자를 비전공자로 전제했기에 가급적 사칙연산을 넘어가는 수식은 사용하지 않았습니다. 독자를 딥러닝에 관심 갖고 공부하고자 하는 분으로 전제했기에 너무 깊은 내용까지는 다루지 않았습니다. 이번 시리즈글을 통해 인공지능, 딥러닝이 무엇인지 대략적으로 이해할 수 있으면 좋겠습니다. 더 나아가 딥러닝을 제대로 공부해보고 싶다는 생각이 들었으면 좋겠습니다.
이번 시리즈글은 컴퓨터를 사용하여 강아지와 고양이 이미지를 분류하는 이야기입니다. 이는 인공지능에서 이미지 분류(Image Classification)이라고 불리는 문제입니다. 인공지능 초창기부터 많은 방법이 시도 되었던 문제이죠. 이미지 분류 콘테스트 중 전 세계에서 가장 유명한 이미지넷(ImageNet) 콘테스트가 있었습니다. 1000만 개가 넘는 이미지를 1000개 종류로 구분하는 인공지능 성능을 겨루는 대회이죠. 사람이 직접 대회에 참가한다면 대략 95% 정도의 정확도를 보이는 난이도의 문제입니다. 이 대회에서 2016년 사람의 점수를 넘어선 인공지능 모델이 등장했습니다.
위 그림은 매해 최고 성능을 낸 모델의 이미지넷 성능(에러율)을 나타낸 그래프입니다. 2012년부터 성능이 급격하게 올라간 모습을 볼 수 있습니다. 2012년 대회에서 우승한 AlexNet은 최초로 딥러닝 방법을 사용한 모델입니다. 이후부터는 모든 팀이 딥러닝 방법을 사용했죠. 지금은 사람보다 월등하게 높은 성능을 내는 모델들이 나오고 있습니다.
물론 인공지능이 할 수 있는 일은 단순히 이미지를 분류하는 것 말고도 많습니다. 예를 들어 이미지를 픽셀별로 구분할 수도 있습니다. 이를 Image Segmentation이라고 합니다.
또는 물체의 위치를 박스 형태로 찾을 수도 있죠. 이를 물체 탐지 (Object Detection)이라고 합니다.
하지만 이러한 능력들은 응용에 불과합니다. 딥러닝의 시초는 이미지 분류였죠. 딥러닝은 이미지 분류로부터 발전하여 점차 하나씩 응용하며 기능을 넓혀갔습니다. 언제나 기초가 튼튼하면 응용은 쉬운 법이죠. 이러한 이유로 이번 시리즈글에서는 이미지 분류를 위한 딥러닝 모델을 구성하는 이야기를 전개합니다.
전체 글의 구성은 다음과 같습니다.
1. 전문가 시스템
먼저 전문가 시스템 방법으로 강아지와 고양이를 구분하는 방법을 생각해 봅니다. 전문가 시스템은 문제를 풀기 위한 모든 조건을 사람이 찾아 컴퓨터에 입력하는 방법입니다. 인공지능 초창기 대세를 이루었던 방법이었죠. 전문가 시스템의 장점과 한계를 살펴봅니다.
2. 컴퓨터의 이미지 인식 방법
다음으로 머신러닝 방법으로 들어가기 전 컴퓨터와 사람의 이미지 인식 방법의 차이를 살펴봅니다.
이를 통해 전문가 시스템의 한계를 명확히 이해해 봅니다. 또한 컴퓨터와 동일한 방식으로 이미지를 처리하기 위해 공간상의 점으로 이미지를 이해하는 방법을 살펴봅니다.
3. 머신러닝
다음으로 머신러닝에 대해 살펴봅니다. 머신러닝은 전문가 시스템의 한계를 극복하기 위해 제안된 인공지능 방법입니다. 전문가 시스템과는 정반대의 철학을 갖고 있죠. 머신러닝의 철학과 다양한 머신러닝 방법을 사용하여 강아지와 고양이를 구분하는 방법을 살펴봅니다.
4. 딥러닝
이번 시리즈글의 주제인 딥러닝은 머신러닝의 방법들 중 하나입니다. 머신러닝 방법 중 하나인 인공신경망의 업그레이드 버전이라고 할 수 있죠. 인공신경망은 구불구불한 경계선을 사용하여 복잡한 데이터를 설명하려는 방법입니다.
하지만 하나의 경계선만으로는 복잡한 데이터를 완벽하게 설명하기 어렵죠. 그래서 여러 개의 경계선을 사용하는 방법이 딥러닝입니다.
5. 딥러닝의 학습 방법
이러한 딥러닝 모델은 학습을 통해 성능을 향상합니다. 이때 학습이란 데이터셋을 더 잘 설명하는 경계선을 찾아가는 과정이죠.
딥러닝 학습을 이해하기 위한 핵심 개념인 경사하강법, 역전파에 대해 살펴봅니다.
6. 인공지능 vs 머신러닝 vs 딥러닝
지금까지 인공지능에 대해 넓고 얕게 살펴봤습니다. 핵심 개념들을 정리해 봅니다. 인공지능, 전문가 시스템, 머신러닝, 인공신경망, 딥러닝의 명확한 정의와 서로의 관계를 살펴봅니다.
4. 참고자료
- Application of Deep Learning in Dentistry and Implantology – Scientific Figure on ResearchGate. Available from: https://www.researchgate.net/figure/Algorithms-that-won-the-ImageNet-Large-Scale-Visual-Recognition-Challenge-ILSVRC-in_fig2_346091812 [accessed 23 Sep, 2022]
- Towards a Meaningful 3D Map Using a 3D Lidar and a Camera – Scientific Figure on ResearchGate. Available from: https://www.researchgate.net/figure/Example-of-2D-semantic-segmentation-Top-input-image-Bottom-prediction_fig3_326875064 [accessed 23 Sep, 2022]
- https://en.wikipedia.org/wiki/Object_detection
- https://www.techm.kr/news/articleView.html?idxno=4642
글을 이해하기 쉽게 잘 작성하시네요. 글의 삽화도 인상적이였습니다. ^^
재미있게 읽어주셔서 감사합니다 ^^