본문 바로가기
IT & Technology

딥러닝(Deep Learning) 개념과 등장 배경에 대하여

by 이야기숲스무고개 2024. 2. 12.

딥러닝의 개념

딥러닝(Deep Learning)이란, 인간 뇌의 학습 처리 과정을 모방한 머신러닝의 한 종류로 사람의 사고방식을 컴퓨터에게 가르치는 것을 의미한다. 다시 말해, 데이터를 군집화하거나 분류하는데 사용되는 방법론으로써 하나의 데이터를 입력해주면 컴퓨터가 스스로 학습하면서 비슷한 데이터들의 패턴을 찾아내어 분류하는 방식을 의미한다. 또한, 데이터를 분류하는 기계학습 알고리즘들은 현재에도 많이 활용되고 있으며, 대표적으로는 의사결정나무, 베이지안망, 서포트벡터머신(SVM), 인공신경망 알고리즘을 들 수 있다. 

 

이 중에서도 딥러닝은 인공신경망(ANN) 알고리즘을 기반으로 입력 계층(Input Layer)과 출력 계층(Output Layer) 사이에 복수의 은닉 계층(Hidden Layer)이 존재하는 심층 신경망(Deep Neural Network) 이론이 등장하면서 현재의 딥러닝 알고리즘이 탄생하였다.

딥러닝의 등장 배경

차세대 기술들의 핵심으로 부상하고 있는 딥러닝 알고리즘은 흔히 신경망 혹은 뉴럴네트워크라고 불리는 다층 퍼셉트론을 기본 모델로 한 학습 알고리즘의 일종으로 스스로 다양한 입력에 내재한 패턴을 찾아내 계층 구조를 갖는 속성 체계로 구축하고 이를 이용하여 우수한 성능을 발휘하고 있는 인공지능 기법이다. 따라서 본 단락에서는 이러한 딥러닝은 등장 배경에 대해서 간단하게 알아보고자 한다.

① 단층 퍼셉트론과 기호 기반의 인공지능 연구의 거듭된 실패

 

1957년 코넬 항공 연구소의 프랑크 로젠블라트는 신경세포의 동작 특성을 모델링하여 간단한 단층 퍼셉트론 모델을 제안하였다. 아래 그림과 같이 구성된 단층 퍼셉트론은 여러 입력 값을 받아 처리한 후 0 혹은 1을 출력하는 단순한 선형분류기이다. 이 모델에서 출력 층에 위치한 뉴런 유닛은 입력 층의 각 노드에서 주어지는 입력 값들을 미리 정해진 가중치와 곱한 후 곱해진 값들의 총합이 미리 정해진 임계치(보통 0)보다 크면 1을, 그렇지 않으면 0을 출력한다.


퍼셉트론 모델에서 가중치 값들을 잘 설정하면 필요한 여러 가지 기능을 수행하게 만들 수 있다. 여기에 추가적으로 여러 가지 입력 값들에 대한 실제 출력 값과 원하는 출력 값의 차이를 반영해 가중치를 조절하는 과정을 반복할 경우 모델의 동작 특성을 원하는 방향에 가깝게 변화시킬 수 있음이 밝혀졌는데 이 과정이 바로 학습이다. 하지만 이러한 학습을 통해 항상 모델이 원하는 동작 특성을 갖게 되지는 못했고 민스키가 단층 퍼셉트론으로는 기본적 논리 연산인 XOR 연산이 불가능함을 수학적 증명과 함께 지적하면서 단층 퍼셉트론 연구는 이후 10여 년간 긴 침묵에 빠져들고 말았다.

 

이러한 퍼셉트론 연구는 굉장히 오래전부터 등장하였지만, 인공지능 분야에서도 변방의 존재였을 뿐 두 차례의 인공지능 붐에서 주류는 기호에 기반을 둔 논리적 접근 방식들이었다. 이 접근방식은 인간 지능을 대뇌피질에서 이루어지는 개념과 언어 중심의 이성적 사고 작용으로 보고 이를 모방하려 했으나 인간의 판단에는 대뇌피질의 사고 작용에 의한 합리적 추론이나 경험적 판단도 있지만 이성적으로 설명이 어려운 ‘감’에 따른 직관적 판단도 있고 낯선 상황에서는 직관적 판단이 오히려 더 큰 역할을 하기 때문에 기호에 기반을 둔 인공지능 연구도 실패하는 결과를 낳게 되었다.

② 딥러닝의 등장


기호에 기반을 둔 논리적 접근 방식들이 정체 상태에 빠져 있는 사이 퍼셉트론 분야에서 서서히 변화가 일어나기 시작했다. 우선 민스키가 제기한 XOR 문제는 비록 단층 퍼셉트론으로는 해결이 불가능했지만, 입력층과 출력층 사이에 은닉층을 추가해 3층의 퍼셉트론을 만들고 가중치를 조절하면 쉽게 해결이 가능하다고 알려져 있었다. 따라서 인간의 뇌처럼 뉴런 유닛을 3층 혹은 그 이상의 다층 퍼셉트론으로 구성하고 학습시키면 여러 가지 문제를 해결할 수 것이다 기대되고 있었다. 

 

하지만 실제로 다층 퍼셉트론을 학습시키는 방법을 찾는 것은 쉽지 않았다. 출력단의 결과에 따라 가중치를 조절하는 일은 출력층에서 멀어질수록 방법 및 효과도 미약했기 때문이다. 이러한 상황을 해결할 수 있는 방법은 비지도 학습 과 오토인코더였다. 퍼셉트론의 출력을 원하는 출력 과 비교해 가면서 가중치를 조절하는 학습 방법을 지도 학습, 원하는 출력 정보 없
이 입력 자체 만으로 학습하여 스스로 패턴을 찾는 것을 비지도 학습이 라고 한다. 많은 연구 끝에 다층 퍼셉트론의 성능을 높이려면 최종 출력층에서는 지도 학습이 필요하지 만 은닉층은 비지도 학습으로 훈련시키는 것이 좋다는 것이 확인되었다. 또한 입력 자체를 목표 출력으로 삼는 3층의 퍼셉트론인 오토인코더 를 사용하여 비지도학습의 가중치를 조절한다. 

 

오토인코더의 숨은 비법은 은닉층 노드수를 입출력층 노드수보다 적게 만드는 것이다. 적절한 가중치를 통해 입력층 정보가 은닉층에 표현되고 은닉층 정보를 이용해 입력과 같거나 유사한 출력을 재현할 수 있다면 은닉층 정보는 입력층 정보를 추상화해 더 적은 비트수로 표현해 낸 것이며 나름대로 어떤 패턴을 발견해 내재화한 것이다.

 

이제 오토인코더에서 출력층을 걷어내고 입력층과 은닉층만 남긴 후 은닉층을 새로운 입력층으로 삼아 새로운 오토인코더를 구성하는 방식으로 은칙층을 늘려 나갈수 있다. 이때 높은 단계의 은닉층은 아래 단계들에 비해 더욱 고도로 추상화된 패턴 정보를 갖게 된다. 기본적으로 딥러닝은 이런 과정을 반복해 퍼셉트론을 구성하고 학습 시키는 방법이며 알파고의 경우 다음 수 예측을 위해 13층의 퍼셉트론을 사용하고 있다고 한다. 딥러닝의 큰 강점은 우수한 성능과 활용의 유연성이다.

 

은닉층 비지도 학습을 통해 형성된 패턴은 출력층 지도 학습에서 놀라운 성능을 발휘하는 밑천이 된다. 잘 형성된 은닉층 패턴들이 있으면 출력층 지도 학습을 여러 방법으로 달리 함으로써 다양한 용도에 활용하는 것이 가능하다. 하지만 은닉층 비지도 학습에 형성된 패턴은 그 내용을 정확히 파악하기 어려워 딥러닝의 최대 약점이기도 하다. 우수한 성능에 환호하면서도 왜 그런 성능을 보이는지 설명하기 어렵고 수작업에 의한 미세 튜닝도 불가능하다. 

 

학습 과정에 많은 계산 자원과 데이터가 필요하며 재현이 어렵다는 점 또한 문제이다. 딥러닝의 운용비용 또한 아직 너무 비싸다. 알파고가 바둑 한 판을 두는 데 소모한 에너지가 이세돌의 300배에 이른다는 추정이 있다.

- 딥러닝의 개념도 -

 

728x90