본문 바로가기
AI - Deep Learning

딥 러닝이란 무엇인가? 한 글로 끝내기

by 모두의 케빈 2022. 11. 2.

안녕하세요. 모두의 케빈입니다.

오늘은 딥러닝에 대한 모든 것을 쭉 훑어보는 시간을 가져보고자 합니다.

 

■ 딥러닝의 정의

 

딥 러닝: 여러 비선형 변환 기법의 조합을 통해 높은 수준의 추상화를 시도하는 알고리즘 (출처: 나무 위키)

 

나무 위키에 딥 러닝을 검색하면 딥 러닝을 여러 비선형 변환 기법의 조합을 통해 높은 수준의 추상화를 시도하는 알고리즘이라고 정의합니다. 개인적으로 딥 러닝에 대해 정말 잘 설명하고 있는 문장이라고 생각합니다.

딥 러닝은 머신 러닝 분야의 한 분야입니다. 머신 러닝 중에서도 특정 분야에 특화되어 있는 알고리즘이라고 생각하시면 편합니다.

딥 러닝의 대표적인 알고리즘으로는 이미지 처리에 특화된 CNN(Convolutional Neural Network, 합성곱 신경망)과 시계열 데이터 처리에 용이한 RNN(Recurrent Neural Network, 순환 신경망), 강화 학습(Reinforcement Learning) 계열의 알고리즘 등이 있습니다.

위의 나무 위키 정의를 완전히 이해하셨다면, 딥 러닝에 대해 어느 정도 이해하고 있으시다고 생각합니다. 만약, 위 설명이 잘 와닿지 않는다면 딥 러닝을 보다 구조적으로, 그리고 개념적으로 완벽히 이해할 필요가 있습니다.

 

■ 딥 러닝의 이해: 구조와 개념적인 접근

 

<그림 1> 딥 러닝(Deep Learning)의 구조도

 

활성화 함수: 비선형 기법의 조합

 

첫 번째로 "여러 비선형 기법의 조합"에 대해 생각해보겠습니다. 딥 러닝에 대해 조금이라도 공부를 해보셨다면, 활성 함수라는 용어를 들어보셨을 겁니다. "여러 비선형 기법의 조합"은 활성 함수의 조합을 의미합니다. 모델 설계자는 신경망의 성능을 끌어올리기 위해 다양한 활성화 함수를 사용할 수 있습니다. 모든 Layer의 노드가 동일한 활성화 함수를 가질 필요는 없으며, 활성화 함수를 선정하는 것 역시 모델의 하이퍼 파라미터(튜닝의 대상)입니다.

"비선형 기법"이라고 명시된 이유는 심층 신경망에서 활성 함수는 대부분 비선형 활성 함수를 사용하기 때문인데요. 그 이유는 앞선 글에서 자세히 설명했으므로 생략하도록 하겠습니다. (활성화 함수: 정의와 종류, 비선형 함수를 사용해야 하는 이유)

 

딥 러닝은 궁극적으로 거대한 회귀 모델과 같다.

 

나무 위키의 정의와는 별개로 딥 러닝과 친숙해지기 위해 한 단계 더 들어가 보겠습니다. 혹시 "딥 러닝은 궁극적으로 거대한 회귀 모델과 같다"는 말을 들어보셨나요?

딥 러닝은 오차를 최소화(비록 오차를 의미하는 척도는 다양하지만 개념은 동일합니다.)하도록 가중치(Weights) 등의 파라미터를 갱신합니다. 이 개념이 회귀 분석의 정의와 상당히 유사합니다.

전통적인 통계적 분석 방법 중에 회귀 분석이라는 방법론이 있습니다. 인과 관계가 상정된 모델을 구현하는 방법론인데요. 수학적으로는 데이터를 가장 잘 표현하는, 실측값과 예측값 사이의 평균 오차 제곱(MSE, Mean Squared Error)이 가장 작은 선형 또는 비선형 함수를 찾는 과정입니다. 딥 러닝의 동작 원리와 회귀 분석의 동작 원리가 상당히 유사하지 않나요? 그래서 딥 러닝이 거대한 회귀 모델과 같다는 이야기가 나오나 봅니다. 물론, 여기서 끝이 아닙니다.

더 미시적으로 살펴보겠습니다. 특정 노드와 연결된 이전 Layer의 가중치들이 갱신되었다고 가정해보겠습니다. 인공 신경망에서 가중치가 갱신된다는 것은 노드의 입장에서 들어오는 입력값이 바뀌는 것을 의미합니다. 노드의 입력값은 이전 Layer의 출력 값과 가중치의 Summation이니까요.

그리고 학습이 되어가며 가중치가 계속 바뀌어 가는데, 이 과정은 마치 가중치로 이루어진 회귀 방정식(w1x1 + w2x2 + ...)의 최적화 과정이라고 볼 수 있습니다. 그리고 인공 신경망에는 무수히 많은 가중치들이 있으므로, 신경망이라는 거대한 모델은 무수히 많은 회귀식으로 이루어졌다고 볼 수 있겠네요.

개인적으로 딥 러닝을 공부하시기 전에 회귀에 대해서 만큼은 훑고 넘어가시는 것을 추천드립니다. 딥 러닝에 실제로 활용되는 시그 모이드, 로짓, 소프트 맥스 함수에 대한 개념이 회귀와 관련이 있기 때문입니다. 물론, 분량 때문에 이 글에서는 다루지 않습니다. 링크를 참고해주세요. (딥 러닝을 위한 회귀 분석의 이해: Logit, Sigmoid, Softmax)

 

개념적인 접근: 높은 수준의 추상화를 시도하는 알고리즘, 계층적 표현 학습

 

다음으로 "높은 수준의 추상화"에 대해 알아보겠습니다. 이는 표현 학습의 개념으로 이해하시면 편합니다. 표현 학습은 가설 공간(hypothesis space) 내에서 좋은 표현(representation)을 검색하는 과정입니다. 머신 러닝은 이 표현 학습을 기반으로 동작합니다.

그렇다면 좋은 표현이란 무엇일까요. 2차원에서 보면 겹쳐 보이는 점이 3차원에서는 분리될 수 있다면, 데이터에 높이(z축)를 추가하는 과정이 좋은 표현을 찾는 과정이라고 할 수 있습니다.

예시를 살펴보겠습니다. 사람의 얼굴을 인식하는 복잡한 과제를 인공 신경망이 수행해야 한다고 가정하겠습니다. 심층 신경망은 복잡한 과제(사람 얼굴 인식)를 작은 업무의 조합(사람 얼굴 특징, 좋은 표현 찾기)으로 구분하고 이를 각 Layer가 분할하여 담당합니다. 이러한 기법을 앙상블(ensemble)이라고 합니다.

<그림 1>의 오른쪽을 보시면 이러한 과정이 시각적으로 잘 표현되어 있습니다. 오른쪽 제일 아래의 작은 네모칸에는 점과 선들이 그려져 있습니다. 이는 신경망 모델이 찾아낸 사람 얼굴의 가장 단순한 표현입니다. 첫 Layer는 가장 단순한 표현을 찾고, 과제의 남은 부분을 다음 Layer로 전달합니다.

한 칸 위로 가보겠습니다. 오른쪽 중간에 있는 작은 네모칸들에는 사람 얼굴의 특징들(눈, 코, 입)이 그려져 있습니다. 이전 Layer에서 전달받은 결과 값을 조합하여 보다 선명한 표현을 학습합니다. 그리고 최종 Layer로 결과 값을 전달합니다.

오른쪽 제일 위쪽의 작은 네모 칸에는 전체적인 사람의 얼굴이 나타나 있습니다. 드디어 신경망 모델은 사람 얼굴 인식이라는 과제를 수행할 수 있게 된 것입니다.

이미지는 2차원 또는 3차원 행렬 형태로 이루어져 있는데, 최초의 입력 이미지는 모델 입장에서는 무의미한 숫자로 이루어진 행렬이었을 겁니다. 모델은 이 입력 데이터를 이리저리 조합하고 연산하여 사람의 특징을 찾아냅니다. 이처럼 상상하기 어려운 고차원의 데이터를 가공하여 특징을 찾는 과정이 바로 높은 수준에서의 추상화라고 할 수 있습니다. 

이렇게 보면, 나무 위키의 딥 러닝 정의가 정말 환상적으로 잘 정의되었구나 라는 생각이 다시 한번 드네요.

 

■ 딥 러닝의 역사

 

딥 러닝은 어느 순간 뚝딱 하고 나온 분야가 아닙니다. 긴 시간 동안, 무수히 많은 노하우가 축적되어 탄생한 분야입니다. 그렇다면 딥 러닝이 왜 현시대에서 꽃 피울 수 있었던 것인지를 아는 것도 공부의 중요 포인트라고 할 수 있습니다.

딥 러닝이 새로운 시대의 학문으로 자리매김할 수 있었던 이유는 크게 두 가지입니다. 첫 번째는 인공 신경망의 알고리즘적인 단점이 해결되었다는 점입니다. 기존 인공 신경망의 단점 중 하나이면서 2차 AI Winter를 초래했던 기울기 소실 문제 (Vanishing Gradient Problem)를 해결할 수 있는 다양한 기법(ReLu 등)의 등장으로, 인공 신경망은 망을 보다 더 깊게 쌓을 수 있는 심층 신경망의 세계로 나아가게 됩니다.

두 번째는 하드웨어의 발전입니다. Hidden Layer가 많아질수록, 학습해야 하는 파라미터의 수는 기하급수적으로 증가합니다. 천만의 단위는 아주 우습게 넘어가니, 신경망 학습을 위한 연산량을 하드웨어가 뒷받침할 수 있어야만 했습니다. 실제로 최근 논문의 심층 신경망 모델들은 연구소에서 억 대의 비용과 수개월의 시간을 투자해야만 학습할 수 있는 경우가 꽤 많습니다. 그렇기 때문에 모델의 학습을 지원해줄 수 있는 하드웨어(GPU 등) 분야의 발전은 딥 러닝에게 날개를 달아준 셈입니다. 자세한 딥 러닝의 역사는 링크에 정리해두었으니, 참고해주세요. (인공지능(AI) 배경지식: 용어의 유래부터 현재의 딥러닝(DNN)까지)

 

오늘은 지금까지 딥 러닝에 대해 전체적으로 살펴봤습니다.

궁금하신 점이 있다면, 댓글로 남겨주세요. 

긴 글 읽어주셔서 감사합니다. :)

 

 

 

댓글