다층 신경망 및 학습 인자

다층 신경망 (Multilayer Neural Network)

📖 출처: 《신경망 컴퓨터》 : 저자 오창석 교수 (충북대학교), 내하출판사, 1996, Page 208~217

1. 기능 및 구조 · 2. MADALINE · 3. BP 알고리즘

※ 본 저서(《신경망 컴퓨터》)의 제1절(기능 및 구조), 제2절(MADALINE), 제3절(BP 알고리즘)은 다층 퍼셉트론(MLP)의 다층 계층 구조와 오차 역전파 알고리즘의 유도 과정을 다루고 있으며, 이어지는 **제4절 학습 인자 (Learning Parameter)**에서는 신경망의 실제 학습 수렴 속도와 성공 여부를 좌우하는 초기 가중치 설정, 망 구조(은닉층/노드 수), 학습률 및 입력 패턴 표현 기법을 심층적으로 다룹니다.

4. 학습 인자

다층 신경망의 학습은 단층 신경망의 경우와는 달리 일반적으로 상당히 긴 학습 시간이 요구되며, 심지어 어떤 경우에는 학습이 이루어지지 않을 수도 있다. 따라서, 다층 신경망을 빠르고 올바르게 학습시키기 위해서는 초기 연결강도, 신경망의 구조(입력층, 은닉층, 출력층의 뉴런수, 은닉층의 갯수), 학습율, 학습패턴 등 여러 요인을 고려하여야 한다. 본 절에서는 BP 알고리즘을 이용한 다층 신경망의 학습에 영향을 미치는 학습 인자 (Learning Parameter) 에 대하여 알아 본다.  

4.1  초기 연결강도

BP 알고리즘을 이용한 학습에 있어서 가장 중요한 문제는 초기 연결강도를 적절히 선택하는 것이다.

초기 연결강도를 잘못 설정하면 응용 목적에 적합하게 학습이 완전히 이루어지지 않은 상태에서도 자칫 오차의 국부 최소점 (local minima) 에 빠져서 더 이상 학습이 진행될 수 없게 된다.

 

그림 1  오차의 국부 최소점

예를 들어 그림 1 에서 초기 연결강도를 A 점 또는 B 점에 설정하였다면 학습이 진행되면서 점차 오차가 감소되고, 결국 오차가 최소가 되는 최적의 연결 강도 에 도달하여 학습이 정상적으로 종료된다.

그러나, 만약 초기 연결강도를 C 점에 설정하였다면 학습이 진행되면서 오차의 국부 최소점에 도달하여 연결강도가 으로 고정되고, 더 이상 학습을 진행하여도 이 국부 최소점을 벗어나지 못하게 되므로 잘못된 결과를 초래할 수 있다. 마찬가지로 초기 연결강도를 D 점에 설정하여도 오차의 국부 최소점에 도달하여 연결강도가 로 고정됨으로써 더 이상 학습이 진행되지 않게 된다.

또한, 연결강도를 갱신할 때 활성화 함수의 미분을 사용하므로 미분값이  0 이 되지 않도록 초기 연결강도를 설정하여야 한다.

한편, 초기 연결강도의 값은 너무 크지 않아야 하지만 그렇다고 너무 작은 값을 설정하면 학습이 진행될 때 연결강도의 변화량이 매우 적게 되어 학습시간이 오래 걸리게 되는 단점이 있으므로 적절한 값을 신중히 선택하여야 한다. 일반적으로 초기 연결강도는 -0.5 ~ +0.5 범위의 값으로 설정하면 무난하다.

초기 연결강도의 설정은 신경망의 학습에 있어서 매우 중요하지만 특정 응용이나 학습 패턴의 특징에 따라서 달라진다. 따라서, 최적의 초기 연결강도에 관한 연구 발표는 그리 많지 않다. 1990 년 D. Nguyen 과 B. Widrow 는 다음과 같은 방법으로 신경망의 학습시간을 단축하였다.

이 초기화 방법에서는 입력층고 은닉층간의 연결강도의 최적 설정에 주안점을 두고 있다. 일반적인 방법과 마찬가지로 은닉층과 출력층간의 연결강도 는 -0.5 ~ +0.5 범위의 값으로 초기화하여 사용한다. 입력층과 은닉층간의 연결강도 도 역시 이 범위의 값으로 일단 초기화하지만 학습을 시작하기 전에 식 (1) 과 같이 변형하여 사용한다.

                                                                                           단,

단, n 과 p 는 각각 입력층과 은닉층의 뉴런수이며, 은닉층에의 바이어스 연결강도는 범위의 값으로 한다.

 

4.2  신경망의 구조

신경망의 구조 자체도 학습시간에 상당한 영향을 미친다. 만약, 입력층의 뉴런수가 n, 은닉층의 뉴런수가 p, 출력층의 뉴런수가 m 이라면 신경망의 전체 연결강도 수는 이 된다. 따라서, 신경망을 구성하고 있는 뉴런 수가 많으면 뉴런간의 연결강도가 급격히 증가되어 학습이 느려진다.

일반적으로 특정 응용에 따라 입출력층의 뉴런수는 직관적으로 산출할 수 있으나 은닉층에 대한 정보는 알 수 없기 때문에 은닉층을 몇 계층으로 할 것인지, 각각의 은닉층에 뉴런은 몇 개를 배치할 것인지 결정하기가 어렵다.

은닉층의 수가 많아지면 당연히 연결강도가 많아져서 신경망의 학습이 매우 느려지게 되는데, 다행스럽게도 특수한 경우를 제외하고는 은닉층을 1 개 또는 2 개로 하여도 거의 대부분의 응용에 적합한 것으로 알려져 있다.

단순히 생각하면 은닉층을 2 개로 하면 1 개로 할 때에 비하여 뉴런수가 많아지므로 신경망의 성능이 개선될 것처럼 여겨지지만, 실제로는 오히려 학습이 되지 않는 경우도 있으며, 비록 학습이 되었다 하더라도 실제 응용시 많은 연산이 소요되므로 처리 또는 반응시간이 느려지는 단점이 있다. 따라서, 다층 신경망을 설계할 때에는 은닉층을 1 개로 하는 것이 무난할 것이다.

또한, 은닉층을 1 개로 하였을 경우 과연 은닉층의 뉴런수를 몇 개로 하는 것이 타당한지를 결정하여야 한다. 그러나, 아직까지 이 문제에 대한 해답은 없는 설정이다. 다만, 1989 년 G. Mirchandini 와 W. Cao 가 제안한 다음과 같은 방법이 타당성있게 받아들여지고 있다.

입력 패턴 공간이 n 차원이고 은닉층의 뉴런수가 p 이면 선형 분리 가능한 영역의 최대수 M 은,

이며, 만약 n ≥ p 라면 식 (2) 는 다음과 같다.

따라서, M 개의 선형 분리 가능한 영역의 문제를 해결하기 위한 은닉층의 뉴런수 p 는 다음과 같이 구할 수 있다.

예를 들어, 그림 2 와 같이 2 차원 입력 패턴 공간에서 선형 분리 가능한 영역이 8 개인 문제를 해결하기 위해서는 은닉층의 뉴런수를 개로 하는 것이 바람직하다.

그림 2  입력 패턴 공간의 선형 분리 영역

한편, 입력층의 뉴런수 n 은 그림 3 에 도시한 바와 같이 입력되는 패턴의 형태에 따라 결정된다.

3 개의 2 차원 학습 패턴 (3 × 3), ㄱ, ㄴ, ㄷ 이 있을 경우, 입력 패턴을 다음과 같은 2 가지 형태로 표현할 수 있다.

1

2

3

 

11

12

13

4

5

6

 

21

22

23

7

8

9

 

31

32

33

(a) n = 9

 

(b) n = 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(c) 입력 패턴

그림 3  입력 패턴의 표현 방법

그림 3 (a) 과 같은 형태로 입력 패턴을 표현하면 학습 패턴쌍 는 다음과 같다.

ㄱ :

ㄴ :

ㄷ :

따라서, 이 경우에는 입력층의 뉴런수가 9 개이며, 출력층의 뉴런수는 3 개이다. 또한, 3 개의 학습 패턴쌍의 필요함을 알 수 있을 뿐 아니라, 식 (3) 에 의해 이므로 은닉층의 뉴런수는 2 개 정도로 하는 것이 좋음을 알 수 있다.

결국, 이 기능을 하기 위한 신경망의 전체 연결강도는 바이어스를 포함하는 경우 (9 + 1) × 2 + (2 + 1) × 3 = 29 개이다.

그러나, 그림 3 (b) 와 같은 형태로 입력 패턴을 표현하면 학습 패턴쌍 은 다음과 같다.

 

ㄱ    ㄴ    ㄷ

ㆍ

ㆍ

ㆍ

ㆍ

ㆍ

ㆍ

따라서, 이 경우에는 입력층의 뉴런수가 2 개이며, 출력층의 뉴런수는 3 개이다. 이 경우에도 마찬가지로 은닉층의 뉴런수는 2 개임을 알 수 있다. 그렇지만, 이 경우에는 9 개의 학습 패턴쌍이 요구된다.

결국, 동일한 기능을 하기 위한 신경망의 전체 연결강도는 바이어스를 포함한다면 (2 + 1) × 2 + (2 + 1) × 3 = 15 개이다.

한편, 출력층의 뉴런수를 결정하는 방법에도 2 가지 형태가 있다. 예를 들어 그림 2 (a) 의 형태로 입력 패턴을 표현한다면, ㄱ, ㄴ, ㄷ 의 3 문자 식별을 위한 신경망의 목표치는 다음과 같이 표현할 수 있다.

ㄱ   :   

ㄴ   :   

ㄷ   :   

따라서, 출력층의 뉴런은 3 개가 요구된다. 그러나, 3 문자 식별을 위해서는 사실상 2 비트가 필요하므로 다음과 같이 부호화 형태로 목표치를 표현한다면 출력층의 뉴런은 2 개만 필요하다.

ㄱ   :   

ㄴ   :   

ㄷ   :   

이들 두 가지 방법에 대하여 연결강도의 수를 비교하여 보자. ㄱ, ㄴ, ㄷ 의 3 문자 식별을 위해서는 입력층과 은닉층의 뉴런수는 두 경우 모두 9 개, 2 개이다. 그렇지만, 첫 번째 방법은 출력층의 뉴런수가 3 개이므로 바이어스를 포함한 전체 연결강도는 (9 + 1) × 2 + (2 + 1) × 3 = 29 개이지만, 두 번째 방법에서는 출력층의 뉴런수가 2 개이므로 전체 연결강도는 (9 + 1) × 2 + (2 + 1) × 2 = 26 개이다.

따라서, 출력층을 부호화 형태로 구성한다면 신경망의 구조도 단순해지며, 연결강도의 수가 감소되므로 신경망의 학습이 더 효과적으로 이루어질 수 있음을 알 수 있다.

 

4.3  학습률 및 학습 패턴

BP 알고리즘을 이용한 신경망의 학습에 있어서 학습률과 학습 패턴도 역시 고려되어야 한다.

학습률 (learning rate) α 는 신경망의 구조 및 응용 목적에 따라서 다르므로 신경망의 학습에 적합한 학습률 α 가 얼마인지를 규정할 수는 없지만 일반적으로 0.001 ~ 10 사이의 값을 사용한다.

급격하고 좁은 오차 최소점을 갖는 응용에서는 큰 값의 α 를 선택하면 빠르게 학습이 진행될 수도 있지만 자칫 잘못하면 오차 최소점에 수렴하지 못하는 경우, 다시 말하면 학습이 안되는 상황도 발생할 수 있다.

반면에 너무 작은 α 를 선택하면 -∇E 즉, 오차가 적어지는 형태로 학습이 이루어져서 최종적으로 오차 최소점에 수렴은 하지만 각 학습 단계에서의 연결강도 변화량이 아주 미세하여 전체 학습시간이 매우 길어지는 단점이 있다.

그러므로, 원하는 응용 목적에 여러 가지 값의 α 를 사용하여 신경망을 학습한 다음 그 결과를 비교하여 최적의 학습률을 선택하는 것이 바람직하다.

한편, 신경망을 원하는 목적대로 학습시키기 위해서는 학습에 필요한 특징적인 학습 패턴 (training pattern) 을 준비하여야 한다. 그러면, 학습 패턴은 몇 개가 적합한가?

E. Baum 과 D. Haussler 의 이론에 의하면 학습시킬 연결강도의 수가 N 이고, 정확도가 α 라면 요구되는 학습 패턴의 수 P 는 다음과 같다.

또한, 동일한 학습 패턴이라 하더라도 이진 형식 또는 양극성 형식의 데이터 표현 방법에 따라 학습에는 상당한 차이가 있다.

일반적으로 양극성 데이터를 사용하면 이진 데이터를 사용하는 경우보다 학습이 빠르게 이루어진다.

L. Fausett 은 XOR 연산을 위한 신경망의 학습에 데이터 표현 방법이 미치는 효과를 다음과 같이 분석하였다. XOR 연산을 위한 신경망은 입력층, 은닉층, 출력층의 뉴런수가 각각 2 개, 4 개, 1 개인 3 계층 구조이며, 학습 방법은 BP 알고리즘을 이용하였다. 학습률은 0.02 로 하였고, 입력층과 은닉층간 연결강도의 초기값 v, 은닉층과 출력층간 연결강도의 초기값 w 는 다음과 같이 -0.5 ~ +0.5 범위의 임의의 값을 선정하였다.

이러한 조건하에서 시뮬레이션한 결과 그림 4 와 같이 양극성 데이터 표현방법이 더 효과적임을 알 수 있다. 또한, 동일한 조건하에서 식 (1) 의 Nguyen-Widrow 방식의 초기 연결강도를 사용한 결과 더 좋은 학습 결과를 얻었다.

데이터 표현

초       기        값

임의값

Nguyen-Widrow

이   진

2891

1935

양극성

387

224

그림 4  데이터 표현 방법에 따른 XOR 연산의 학습 결과

 

5. 개선된 BP 알고리즘

※ 본 저서의 제5절에서는 표준 역전파(Backpropagation)의 수렴 지연 및 국부 최소점(Local Minima) 문제를 극복하기 위한 다양한 확장 기법(모멘텀 항 추가, 적응적 학습률 조정, 탄젠트 시그모이드 활성화 함수 등)을 다루고 있습니다.