신경망 이론과 응용(1) : 김대수, 하이테크 정보, 1992, Page 229~240
우리는 두개의 서로 다른 모델들의 결합이 때때로 매우 훌륭한 결과를 도출해내는 것을 종종 볼 수 있다. 그 중의 하나가 카운터프로퍼게이션 네트워크이다. 이 네트워크는 코호넨의 층과 그로스버그의 층이 함께 결합되어서 개별적으로는 가질 수 없는 장점을 가지게 되었다. 카운터프로퍼게이션 네트워크는 백프로퍼게이션 네트워크보다 훨씬 빨리 결과를 얻을 수 있다. 이 장에서는 카운터프로퍼게이션 네트워크의 배경 및 특성, 네트워크의 구조, 학습 방법 등을 살펴보고 패턴분류 및 데이타 전송 등의 응용에 쓰이는 예들과 장단점들을 고찰한다.
카운터프로퍼게이션 네트워크는 1987년 로버트 헥트-닐센 (Hecht Nielsen) 에 의해 제안된 상당히 최근의 혼합형 모델인데 코호넨 (T. Kohonen) 의 경쟁 네트워크와 그러스버그 (S. Grossberg) 의 아웃스타 (outstar) 구조의 결합으로 이루어져 있다. 카운터프로퍼게이션 네트워크는 두개의 서로 다른 타입의 층들을 사용한다. 중간의 은닉층은 자율적인 학습을 하는 경쟁적인 뉴런들로 이루어진 코호넨의 층을 사용하며, 상위층은 그로스버그의 층으로 이루어져 있는데 은닉층과 완전 연결 (fully connected) 되어 있으나 경쟁하지는 않는다.
카운터프로퍼게이션 네트워크는 패턴매칭, 패턴분류, 통계적인 분석 및 데이타 압축 등에 매우 유용한 모델인데, 가능한 응용분야로는 의학, 항공, 재정학 등의 패턴매칭에 널리 쓰일 수 있다. 카운터프로퍼게이션 네트워크가 패턴매칭 문제에 적용될 때의 제한점은 입력패턴들이 잘 분리된 클래스로 되어 있어야 한다는 점이다. 입력벡터가 불규칙하거나 서로 겹쳐져 있을 경우에는 경쟁층에서 왜곡 현상 (skew) 이 일어나서 잘못된 패턴분류를 하게 된다.
카운터프로퍼게이션 네트워크는 패턴 클래스들간의 경계선을 명확히 하기 위하여 경쟁층에 충분한 갯수의 뉴런을 가져야 한다. 그렇치 않은 경우에는 경쟁층에서 하나의 뉴런이 한개 이상의 클래스에 대하여 반응하게 되어 잘못된 분류를 하게 된다. 따라서 충분한 갯수의 경쟁층 뉴런이 필요하다.
카운터프로퍼게이션 네트워크는 기존 네트워크들의 결합으로 만들어진 성공적인 새로운 구조이다. 따라서 장차의 혼합형 모델의 가능성을 암시하고 있다. 더군다나 카운터프로퍼게이션 네트워크는 한개의 학습 알고리즘만을 사용하지 않고 각 층마다 다른 학습 알고리즘을 사용함으로써 이 학습 알고리즘들은 다른 종류의 네트워크들보다 시간적으로 더욱 빠른 학습을 가능케 한다. 또한 카운터프로퍼게이션 네트워크 모델도 다른 신경망 모델들과 마찬가지로 병렬처리가 가능하기 때문에 전용 하드웨어를 사용함으로써 실행 속도를 크게 줄일 수 있다.
<그림 1> 은 완전한 형태의 카운터프로퍼게이션 네트워크의 위상(topology)을 나타낸다. X, Y 벡타들은 서로 반대 방향으로 입력되며 출력벡터 X', Y' 를 얻는다. 이와같이 서로 반대 방향으로 처리되는 것으로부터 이 카운터프로퍼게이션 네트워크의 이름이 연유되었다고 이 모델의 창안자인 헥트-닐센은 밝히고 있다.
<그림 1> 원래의 카운터프로퍼게이션 네트워크의 구조
원래의 카운터프로퍼게이션 네트워크의
구조는 5 개의 층 (layer) 으로 구성되어 있다. 두개의 입력층 (1, 5), 하나의 은닉층
(3),
그리고 두개의 출력층 (2, 4) 으로 이루어져 있다.
원형의 카운터프로퍼게이션
네트워크의 구조는 양방향에서 대칭적인 구조를 가지기 때문에 혼돈을 일으키기 쉬우므로
좀 더 간단하게 표현하기 위하여 3 개의 층으로 구성된 카운터프로퍼게이션 네트워크를
<그림 2> 와 같이 나타내었다. 첫번째 층은 입력을 위한 입력층이고 두번째
층은 코호넨의 경쟁층이며 세번째 층은 출력을 위한 출력층이다. 각각의 층은 바로
상위의 층과 완전 연결되어 있다.
<그림 2> 3 개층의 카운터프로퍼게이션 네트워크
학습시의 카운터프로퍼게이션 네트워크는 다음과 같이 작동한다. 첫째 입력 패턴이 입력층에 제시된다. 그러면 은닉층에서는 그들의 입력값을 합하여 주어진 입력패턴들에 대해 경쟁하게 되는데 그 결과 단지 하나의 뉴런만이 경쟁에서 승리하게 되고 활성화된다 (activated). 은닉층의 다른 뉴런들은 모두 비활성적으로 된다.
은닉층의 경쟁에서 승리한 뉴런은 입력패턴에 대한 분류 카테고리를 대표하게 된다. 승리 후 그 뉴런의 활동수준은 1이 되고, 은닉층내의 다른 나머지 뉴런들이 활동수준은 0이 된다. 승리 뉴런은 상위층의 패턴을 활성화하고 출력을 내게 된다. 승리하지 못한 뉴런들은 활동값이 0 이므로 출력층 뉴런들의 활동에 영향을 주지는 않는다. 그러나 승리 뉴런은 출력층과 완전 연결되게 되며 각 연결에 대한 연결강도를 가지게 된다. 마지막으로 출력패턴이 출력층에서 나오게 된다. 이 과정은 <그림 3> 에 나타나 있다.
<그림 3> (a) 입력패턴의 제시
<그림 3> (b) 은닉층에서의 승리 뉴런
<그림 3> (c) 승리 뉴런에 의한 출력 패턴
학습시에 두개 층의 연결강도들이
조정된다. 경쟁층에서 주어진 입력에 대하여 승리 뉴런이 정해지고 그것과 연결된
연결강도들만이 조정되며 다른 뉴런들의 연결강도는 변하지 않는다. 경쟁에서 승리한
뉴런이 선택되고 난 후 네트워크의 출력이 계산되며 네트워크의 출력값들이 목표패턴들과
비교되고 두번째 층의 연결강도가 조정된다.
승리 뉴런과 연결된
연결강도는 다음 식에 의해 조정된다.
Wnew = Wold + α(X - Wold) (식 1)
여기에서 Wold 는 기존의 연결강도이고, Wnew 는 새로 조정된 연결강도를 나타낸다. α 는 0 보다 크고 1 이하의 실수값을 가진 학습 계수이고, X 는 입력벡터이다. 이때 승리하지 못한 뉴런들과 연결된 연결강도들은 전혀 조정되지 않는다.
명확히 구분되는 패턴 클러스터를
분류하는 카운터프로퍼게이션 네트워크는 <그림 4> [DAY90] 에서 보는 바와 같이 2
차원
벡터들로 이루어진 패턴들을 분류하는 것이다. 패턴 클래스는 4 개의 서로 다른 점들의
클러스터로 이루어져 있는데 직경이 0.1 인 사각형내에 흩어져 있다. 은닉층은 30
개의
뉴런으로 이루어져 있는데 자율학습을 통하여 데이타를 분류한다. 테스트 데이타의
플롯은 <그림 5> [DAY90] 에 나타나 있다.
최종적인 출력층에서 패턴
클래스는 4 개의 클래스로 나뉘어진다. 주어진 데이타에 대한 카운터프로퍼게이션
네트워크의 출력 결과는 <그림 6> [DAY90] 에 나타나 있으며, 학습상수를 0.1
로 하고
1,000 번을 반복하여 학습했을 때 주어진 데이타를 정확하게 분류했다.
<그림 4> 패턴 클러스터 분류를 위한 카운터프로퍼게이션 네트워크
<그림 5> 테스트 데이터의 플롯 <그림 6> 테스트 데이터의 수행 결과
카운터프로퍼게이션 네트워크는 데이타를 전송하기 전에 데이타를 압축하는데 사용되어서 전송할 비트 (bit) 의 수를 줄이는데 응용될 수 있다. 가령 하나의 영상 (image) 을 전송한다고 하자. 그 영상은 <그림 7> 과 같이 여러개의 부분 영상 (subimage) 으로 나누어진다. 각각의 부분 영상은 화소 (pixel) 들로 이루어져 있으며 화소들로 이루어진 벡터가 된다. 간단히 하기 위하여 여기서는 각 화소의 값을 흰 경우에는 1 이고 검을 경우에는 0이라고 하자. 만약 부분 영상안에 n 개의 화소가 있다면 그것을 전송하는데 n 비트가 필요하게 된다. 만약 약간의 왜곡이 허용될 경우 n 개보다 훨씬 적은 비트 수가 필요하므로 보다 빨리 영상을 전송할 수 있다. 이것은 부분 영상 벡터의 통계적인 분포로 말미암아 가능하다. 벡터 정량화 (vector quantization) 방법은 부분 영상을 표현할 가장 짧은 비트수를 결정한다.
<그림 7> 영상 압축 시스템
카운터프로퍼게이션 네트워크는 벡터 정량화를 수행하는데 쓰일 수 있다. 부분 영상 벡터의 집합은 코호넨층의 입력으로 쓰여지며 단지 하나의 뉴런만이 1 의 값을 가지게 된다. 그로스버그층의 연결강도들은 값이 1 인 코호넨 뉴런의 색인 (index) 에 대한 이진 코드를 생성하게 된다.
예를
들면, 만약 코호넨의 7 번째 뉴런이 1 이고 다른 모든 뉴런들이 모두 0일 경우, 그로스버그의
층은 7 의 이진 코드에 해당하는 00...000111 을 출력하도록 훈련받게 된다. 영상의
전송이 끝나면 앞의 경우와 꼭 같이 훈련받은 카운터프로퍼게이션 네트워크는 이진
코드를 받아서 역함수 (inverse function) 를 이용하여 원래의 부분 영상의 근사값을
재현하게 된다.
이 방법은 음성과 영상의 전송에 응용되어서 10 : 1에서
100 : 1 까지의 비율로 데이타가 압축되었다. 압축 복원된 패턴은 약간의 왜곡 현상이
있었으나 상당히 좋은 품질을 나타내었다.
카운터프로퍼게이션 네트워크의 또 다른 응용 예로는 Dolphin Echolocation 과 영상분류 등을 들 수 있다.
카운터프로퍼게이션 네트워크는 잘 알려져 있는 코호넨의 자기조직화 지도 [KOH84] 와 그러스버그의 아웃스타 알고리즘과의 조합이다. 두개를 조합함으로써 개별적으로는 이룰 수 없는 성질들을 가지게 되는 것이다.
카운터프로퍼게이션 네트워크는 훈련이 매우 빠르기 때문에 적절하게 이용되면 많은 시간을 절약할 수 있다. 카운터프로퍼게이션 네트워크를 백프로퍼게이션과 비교하면 학습 시간을 백배 정도까지 줄일 수 있다. 카운터프로퍼게이션 네트워크는 백프로퍼게이션과 같이 일반적이지는 않지만 오랜 학습 시간이 걸려서는 안될 응용 분야에 매우 유용하다. 따라서 매우 정확함이 요구되지 않으면서도 빠른 시간내에 근사값을 구하려는 시스템들에 매우 유용하다. 또한 함수를 생성하는 능력 등으로 인하여 많은 시스템들에 응용될 수 있다.
카운터프로퍼게이션 네트워크의 단점으로는 어떤 응용 분야에 대해서 충분한 정확성의 보장이 없다는 것을 들 수 있다. 카운터프로퍼게이션 네트워크를 발명한 헥트-닐센은 카운터프로퍼게이션 네트워크의 제한점을 이렇게 설명하고 있다. "카운터프로퍼게이션 네트워크는 대부분의 매칭 (matching) 네트워크의 응용 분야에 있어서 분명히 백프로퍼게이션 모델보다도 우수하지 못하다. 그러나 이 네트워크의 두드러진 장점은 그것이 단순하다는 것과 입력벡터 환경의 우수한 통계적 모델이라는 점이다. 카운터프로퍼게이션 네트워크의 또 다른 단점으로는 이 네트워크의 경쟁층이 때때로 매우 불안정하다는 것이다. 이러한 현상은 패턴 그룹들을 나타낼 충분한 갯수의 은닉층이 없을 때 일어난다. 이런 경우에는 충분한 갯수의 은닉층을 더해주면 안정된 상태로 될 수 있다.
이 장에서는 코호넨 네트워크와 그로스버그 네트워크의 혼합형 결합 모델인 카운터프로퍼게이션 네트워크에 관하여 고찰하였다. 두개의 서로 다른 학습 알고리즘을 사용함으로써 다른 종류의 네트워크들보다 빠른 학습이 가능하며 패턴매칭, 패턴분류 등에 유용한 모델이다.
1 절에서는 머리말을, 2 절에서는 카운터프로퍼게이션 네트워크의 일반적인 특징들을 기술하였으며, 3 절에서는 카운터프로퍼게이션 네트워크의 구조를 고찰하였다. 4 절에서는 학습 방법에 대해 고찰하였으며, 5 절에서는 이 네트워크의 응용과 데이터 압축에의 응용 예를 살펴보았고 6 절에서는 카운터프로퍼게이션 네트워크의 장단점을 기술하였다.
◈ 생각할 점 ◈
1. 카운터프로퍼게이션 네트워크는 패턴 클래스간의 경계선을 명확히 하기 위하여 경쟁층에 충분한 갯수의 뉴런을 가져야 한다. 그 이유는 무엇인가?
2. 카운터프로퍼게이션 네트워크의 장점 및 단점들을 기술하시오.
3. 카운터 프로퍼게이션 네트워크는 한개의 학습 알고리즘만을 사용하지 않고 각 층마다 다른 학습 알고리즘을 사용함으로써 다른 종류의 네트워크들 보다 시간적으로 더욱 빠른 학습을 가능케 한다. 그러나 정확도에 문제가 있다면 네트워크로서의 가치에 문제점이 있다. 이 논제에 대한 견해는?
4. 카운터프로퍼게이션 네트워크는 기존의 네트워크들의 결합으로 만들어진 최초의 성공적인 융합형 모델이다. 가능한 응용 분야들을 기술하시오.