(사진=셔터스톡)
(사진=셔터스톡)

머신러닝의 한 분야인 딥러닝은 인공신경망(ANN, Artificial Neural Network)을 기반으로 층을 늘려온 다층 인공신경망(Multi-Layer Neural Network)이다. 다층 신경망은 심층 신경망(DNN, Deep Neural Network)으로도 불리는데, 몇 개의 은닉층을 갖고 있어야 심층 신경망으로 부르는지 명확한 기준은 없다. 

심층 신경망인 딥러닝에는 CNN으로 불리는 컨볼루션 신경망, RNN으로 불리는 순환 신경망, GAN으로 불리는 생성적 대립 신경망이 일반적으로 많이 알려져 있다. 그러나 그 외에도 DBN, DQN, LSTM, GRU, 오토인코더(Autoencoder) 등 다양한 딥러닝 모델들이 개발됐고, 지금도 연구자들에 의해 계속 개발되고 있다. 이번 회에서는 딥러닝의 기반이 되어온 인공신경망의 발전 과정을 간략히 되짚어 보고, 대표적인 몇가지 딥러닝 모델에 대해 알아본다. 

인공신경망의 첫 모델은 1943년 맥컬럭과 피츠가 발표한 MCP(McCulloch-Pitts)였다. 이를 바탕으로 1957년에는 로젠블래트가 퍼셉트론(Perceptron)이라는 단층 신경망을 구현했다. 비슷한 시기에 SRI에서는 미노스, 스탠포드대학교에서 ADALINE이라는 단층 신경망이 개발됐다. 

1968년 우크라이나에서는 이바크넨코가 다층 순방향 신경망인 GMDH를 발표하고, 1971년에는 8개의 층으로 구성된 심층 신경망을 구성했다. 1975년 일본의 후쿠시마는 코그니트론이라는 다층 신경망을 제안하고, 1979년에 네오코그니트론(Neo-Cognitron)을 발표했는데, 이는 최초의 컨볼루션 신경망이었다. 

1982년에 홉필드는 순환 신경망의 초기 모델인 홉필드 네트워크(Hopfield Network)를 발표하고, 이를 기반으로 힌튼과 세즈노스키가 1985년에 볼츠만 머신(Boltzmann Machine)을 제안하며 다층 신경망의 학습 가능성을 입증했다. 1986년 스몰렌스키가 고안한 볼츠만 머신의 변형인 RBM(Restricted Boltzmann Machine)은 그 자체로는 심층 신경망은 아니었지만, 딥러닝 시대를 열어준 DBN의 기본 구성요소가 됐다.

이때까지 대부분 신경망은 학습이 입력층에서 출력층으로 전달되는 순방향 신경망(FeedForward Network)이었는데, 오류 역전파의 개발로 출력층에서 입력층 방향으로 거꾸로 계산하면서 가중치를 업데이트해 나가는 방식이 사용되기 시작했다. 다만 이때까지의 신경망들은 다층 또는 심층으로 구성됐다고 해도, 딥러닝이라고 하지는 않았다. 

1988년에 얀 르쿤이 역전파 이론과 컨볼루션 신경망을 결합해 우편 분류를 자동으로 하고 수표를 인식하는 시스템을 만들었는데, 이것은 컨볼루션 신경망이 실제 현실에서 사용된 첫 사례였다. 1997년에는 독일의 쉬미트후버와 호흐라이터가 기울기 소실을 식별하고 LSTM을 발표했는데, 이는 딥러닝에서 컨볼루션 신경망과 함께 많이 사용된 양대 신경망인 순환 신경망의 가장 중요한 기술이 됐다. 딥러닝이라는 용어는 1986년에 처음 등장했지만, 2006년 힌튼의 DBN을 계기로 본격적으로 딥러닝이라 불리는 신경망의 시대가 열리게 됐다.

이후에도 다양한 딥러닝 모델이 개발됐지만, 최근까지 딥러닝의 양대 산맥은 컨볼루션 신경망과 순환 신경망이었다. 이번 회에는 네오코그니트론으로 첫 모델이 개발되고 얀 르쿤에 의해 처음 실제 사용된 컨볼루션 신경망과 LSTM, GRU 등을 포함하는 순환 신경망에 대해 조금 더 알아본다. 

DQN과 GAN, 그리고 기계번역에서 순환 신경망을 기반으로 시퀀스(Sequence) 모델, 어텐션(Attention) 모델, 트랜스포머(Transformer) 구조가 개발되며 언어 처리 모델에 적용돼 '챗GPT'로 발전해 온 과정은 연재를 통해 설명한다. 딥러닝의 이런 다양한 모델들은 단층 신경망을 기본으로 조합을 어떻게 하는가 그리고 추가적인 어떤 기법을 포함하는가에 따라 개발됐다.

신경망의 기본 구조는 데이터를 받는 입력층, 입력 데이터에 대해 학습하는 은닉층, 그리고 학습 결과를 내주는 출력층으로 구성된다. 각 층은 앞 층에서 넘어오는 데이터를 처리하기 위한 유닛이나 노드로 이뤄져 있으며, 각 노드는 입력 데이터를 연산하고 그 결과를 다음 층으로 전달할 것인지 말 것인지를 활성 함수를 통해 결정한다. 

이렇게 입력층, 출력층과 하나의 은닉층으로만 구성된 퍼셉트론 같은 경우를 단층 신경망이라고 하고, 은닉층이 2개 이상이 되면 다층신경망, 그리고 그 층의 수가 많아져서 신경망의 깊이가 깊어지면, 심층 신경망이라고 한다. 그 중, 각 층의 모든 노드가 다음 층의 모든 노드와 다 연결된 경우를 ‘완전연결층(Fully Connected Layer)’ 또는 ‘밀집층(Dense Layer)’이라고 하며, 이렇게 구성된 신경망을 ‘완전연결 신경망’이라고 한다.

컨볼루션 신경망(Convolutional Neural Network)은 약자인 CNN으로 통하며, ‘합성곱 신경망’이나 ‘회선 신경망’, ‘컨볼루션 네트워크’ 등으로 불린다. 인간의 시각 신경계 구조에서 힌트를 얻어 개발됐는데, 이미지 인식과 패턴 인식 분야에서 유용성을 인정받은 뒤 다른 분야에서도 응용되고 있다. 

기본적으로 입력층 이후 합성곱층(Convolution Layer)과 풀링층(Pooling Layer)이 교차로 배치되다, 출력층 바로 전에 완전연결층이 배치되는 구조를 가진다. 입력 데이터의 특징을 추출하는 합성곱층과 특성의 차원을 줄이는 풀링층을 반복해서 쌓아 이런 작업을 반복하면, 더 넓은 영역에서의 특성을 추출할 수 있는데, 완전연결층을 통해 인식 결과를 출력할 수 있게 한다. 이런 기본 구조를 바탕으로 여러 방법의 재배치를 통해 2010년대 말까지 다양한 신경망 모델이 등장했다.

컨볼루션 신경망은 같은 깊이의 층을 갖고 있을 때 완전연결 신경망에 비해 층간 결합이 적고 학습대상 파라미터의 수가 적다. 따라서 학습이 쉽게 이뤄지고 과적합의 가능성이 낮으며 일반화 능력이 우수하다는 특징이 있다. 

딥러닝의 중흥기를 이끌어 낸 컨볼루션 신경망은 원래 이미지 인식에 주로 활용됐다. 그런데, 입력 데이터의 특징을 추출한다는 의미에서 이미지가 아닌 데이터에도 적용 가능하며, 자연어처리나 시계열 데이터처리에도 단순 연쇄의 특징 추출 또는 시각화 후 특징 추출 등의 방법으로 활용된다.

(사진=IBM)
(사진=IBM)

RNN이라고 불리는 순환 신경망(Recurrent Neural Network)은 ‘재귀 신경망’이나 ‘회귀 신경망’이라고도 한다. 완전연결 신경망이나 컨볼루션 신경망은 역전파가 있지만 기본적으로 데이터의 흐름과 학습이 입력에서 출력 쪽으로 한방향으로만 흐르는 순방향 신경망이다. 그런데 순환 신경망은 출력을 다음 층으로 보내기도 하지만, 입력 쪽으로 피드백돼 다음 연산에 다시 사용된다는 특징이 있다. 그래서 셀(Cell)이라고 하는 노드의 출력이 다시 입력으로 들어오는 순환 구조가 존재하며, 이 순환 구조를 이용해 과거 학습의 가중치를 현재 학습에 반영할 수 있게 만든 심층 신경망이다. 

이런 구조는 다른 신경망에서는 다루기 어려운, 데이터의 전후 관계를 다룰 수 있기 때문에 순차 데이터(Sequence Data) 학습에 이용된다. 순차 데이터란 데이터 간의 관계에 있어서 출현 순서가 의미를 가지는 데이터 집합으로, 숫자, 텍스트, 기호 등을 포함한다. 시간의 흐름에 따라 변화하는 데이터인 시계열 데이터(Time Series Data)나 배치 순서에 의미가 있는 문장, DNA 등이 순차 데이터의 한 종류다. 

예를 들어 일기 예보에서 이전의 일자별 기상이 미래의 일기를 예측하는 데 영향을 미치거나, 주가 예측, 판매 예측처럼 시간의 변화에 따라 영향을 받는 데이터나 글이나 대화와 같이 단어와 문장의 순서에 따라서 의미가 달라질 수 있는 데이터가 순차 데이터에 해당한다.

그런데 기존의 순환 신경망에는 입력 데이터가 길어지면 학습 능력이 떨어지는 단점이 있었다. 입력 데이터와 출력 데이터 사이가 멀어질수록 연관 관계가 줄어드는 ‘장기 의존성(Long-Term Dependency) 문제’가 발생하는 것이다.

조경현 교수 (사진=KAIST)
조경현 교수 (사진=KAIST)

이 문제를 해결하고 장기와 단기 경향을 모두 분석할 수 있도록 제안된 순환 신경망의 변형이 1997년에 개발된 LSTM(Long Short Term Memory)이다. LSTM은 순환 신경망의 일종이다. 하나의 순환 모듈이 하나의 층으로 구성된 기본 순환 신경망과 달리, 하나의 순환 모듈이 네개의 층으로 구성되어 있으며 작동 방식도 복잡한 편이다. 또 모든 LSTM 모델이 같은 구조를 가지는 것도 아니다. 순환 신경망의 성과는 대부분 LSTM으로 이뤄낸 것으로, LSTM은 순환 신경망의 대표다.

LSTM과 비슷한 역할을 하지만 더 간단한 구조로 이루어져 있어, 계산상으로 효율적인 순환 신경망 모델로 ‘GRU(Gated Recurrent Unit, 게이트 순환 유닛)’가 있다. GRU는 기존 LSTM의 가중치 계산을 줄였지만, LSTM 못지않은 성능을 발휘하고 특정 문제에서는 LSTM보다 더 나은 성능을 보였다.

KAIST 컴퓨터 과학과를 졸업했고, 뉴욕대학교 종신교수로 임명된 조경현 교수가 2014년 요수하 벤지오에게 박사후 과정을 들을 때 발표한 논문에서 제안된 순환 신경망으로, 신경망 기계 번역(Neural Machine Translation, NMT)에 사용됐던 핵심 기술이기도 하다. 

문병성 싸이텍 이사 moonux@gmail.com

관련기사
저작권자 © AI타임스 무단전재 및 재배포, AI학습 및 활용 금지