대학원생이 알려주는 친절한 딥러닝 (4) - 다층 퍼셉트론

2021. 5. 11. 11:44Data Analysis/Deep Learning

안녕하세요.

데이터 분석하는 새내기 대학원생, 석사 1학기 고니입니다.

 

지난 시간에는 인공신경망의 초기 연구 단계에서 제안되었던 퍼셉트론에 대한 이야기를 나누어보았습니다. 더 나아가 이야기의 말미에는 퍼셉트론이 불러온 인공지능의 1차 겨울에 대해 언급했었는데 다들 기억나시나요?

 

잠시 지난 이야기로 돌아가 볼까요? 1957년, 로젠블래트에 의해 그 이름도 유명한 “퍼셉트론”이 세상에 등장했습니다. 퍼셉트론은 하나의 직선을 기준으로 분류를 진행하는 선형 분류기였죠? 이에 마빈 민스키 박사가 XOR 논리 연산을 예시로 들며 퍼셉트론이 가지고 있는 한계점을 지적했습니다. 그리고 이는 결국 퍼셉트론의 몰락과 함께 인공지능의 1차 겨울을 불러왔습니다.

 

이번 시간에는 이러한 인공지능의 빙하기를 깨고 부활의 신호탄을 쏜 다층 퍼셉트론에 대한 이야기를 나누어보려고 합니다. 다층 퍼셉트론이 어떻게 기존의 퍼셉트론이 가지고 있던 한계점을 극복할 수 있었는지 함께 살펴볼까요?

 

# 다층 퍼셉트론(MultiLayer Perceptron, MLP)의 등장

비록 인공지능의 1차 겨울이 찾아왔지만 그럼에도 끝까지 포기하지 않고 묵묵히 자신의 연구를 이어가던 사람들도 있었습니다. 그중에서 결국 인공지능의 빙하기를 깨고 부활의 신호탄을 쏘아 올리는 데 성공한 사람이 있었으니 바로, 영국의 제프리 힌턴입니다.

 

제프리 힌턴


제프리 힌턴은 다층 퍼셉트론을 통해 XOR 문제를 해결할 수 있다고 주장했습니다. 선형 분류기인 퍼셉트론은 XOR 분류를 수행할 수 없지만, 하나의 퍼셉트론에 또 다른 퍼셉트론을 이어 붙인 다층 퍼셉트론은 이를 해결할 수 있습니다. 기존에 없던 전혀 새로운 것이 아닙니다. 그저 우리가 원래 알고 있는 퍼셉트론을 단순히 이어 붙였을 뿐인데 문제가 순식간에 해결되었습니다. 정말 놀랍지 않나요?


기존의 단층 퍼셉트론과 다층 퍼셉트론의 차이는 단층 퍼셉트론에는 입력층과 출력층만이 존재했지만, 다층 퍼셉트론에는 입력층과 출력층 사이에 숨겨진 층이 추가되었다는 것입니다. 이 입력층과 출력층 사이에 추가된 층을 바로 「대학원생이 알려주는 친절한 딥러닝 (1) - 딥러닝이란」에서 언급했던 은닉층(Hidden Layer)이라고 부릅니다.

 

단층 퍼셉트론의 구조
다층 퍼셉트론의 구조

 

# 다층 퍼셉트론과 XOR 논리 연산

그렇다면 과연 어떻게 다층 퍼셉트론이 XOR 논리 연산 문제를 해결할 수 있는지 차근차근 살펴봅시다. 입력층과 출력층 사이에 층을 추가했을 뿐인데 어떻게 이런 일이 가능할까요? 아래의 그림처럼 Input Layer에서 Hidden Layer로 갈 때 NAND 연산과 OR 연산을 각각 수행하고, 이렇게 NAND 연산과 OR 연산을 통해 계산된 Hidden Layer의 두 결과에 대해 AND 연산을 수행하면 최종적으로 Output Layer에는 XOR 연산의 결과가 출력됩니다.

 

다층 퍼셉트론의 XOR 논리 연산


이것을 진리표를 통해 살펴보면 훨씬 이해하기 쉽습니다.

Input Layer의 X1과 X2에 NAND 연산과 진행하면 Hidden Layer의 H1에 아래의 왼쪽 그림과 같은 값이 저장됩니다. 마찬가지로 동일하게 OR 연산도 진행하면 Hidden Layer의 H2에는 아래의 오른쪽 그림과 같은 값이 저장됩니다.

 

X1과 X2의 NAND 연산과 OR 연산


이제 H1과 H2에 AND 연산을 진행하는 것입니다.

H1과 H2의 AND 연산


자, 이제 지금까지 살펴본 연산 과정을 전체적으로 한 번 살펴볼까요?


이제 한눈에 잘 보이시나요? Input Layer의 X1과 X2의 XOR 연산 결과가 Output Layer의 Y에 출력되었음을 확인할 수 있습니다. 단층 퍼셉트론에서는 불가능했던 XOR 연산이 입력층과 출력층 사이에 은닉층을 추가함으로써 이제는 수행 가능해졌습니다. 즉, 이제는 인공신경망을 통해 선형 영역을 넘어 비선형 영역까지도 표현할 수 있어졌습니다.

 

이러한 은닉층의 개수는 1개일 수도 있고 2개 이상일 수도 있습니다. 은닉층이 많아지면 많아질수록 즉, 신경망이 더욱 깊어지면 깊어질수록 XOR 연산보다도 더욱 복잡한 연산도 수행할 수 있습니다. 그러나 층이 깊어지면 깊어질수록 훈련시켜야 할 파라미터의 개수가 급증하게 되었고, 이렇게 많은 파라미터들을 적절하게 학습시키는 것은 매우 어려운 일이었습니다. 그래서 인공신경망의 핵심 중 하나인 역전파(Backpropagation)라는 방법이 등장하게 됩니다.

 

제 글에 대해 추가로 궁금하신 점이나 지적해주실 부분이 있으시다면 언제든지 댓글 부탁드립니다! 다음 시간에는 역전파(Backpropagation)를 다룰 예정이었으나, 본격적으로 신경망 이론을 다루기에 앞서 활성화 함수에 대한 이야기를 우선 나누어보려고 합니다. 역전파에 대한 이야기는 활성화 함수 다음에 나누어보도록 하겠습니다!