LVQ는 입력 벡터를 가장 유사한 참조 벡터로 군집화하는 인공신경망이다. 비슷한 종류의 군집화 인공신경망인 자기조직화지도 (Self-organizing Map, SOM)와 비슷하게 경쟁학습을 통해 학습을 수행한다. 자기조직화지도와 비슷하게 LVQ 또한 초기 가중치에 의해 군집화 결과가 많은 영향을 받기 때문에 신경망이 불안정하다는 단점을 가지고 있다. 이 글에서는 LVQ, LVQ1 및 LVQ2에 대해 소개한다.
군집화(clustering): 유사한 특성을 갖는 입력 벡터들을 하나의 집단으로 조성하는 방법론으로써 머신러닝 분야의 한 갈래이다.
참조 벡터(reference vector): 경쟁학습을 통해 형성되는 입력 벡터의 그룹으로써, 다른 군집화 인공신경망의 출력층 노드와 같다. 이 글에서는 참조 벡터를 클러스터로 표기한다.
LVQ 알고리즘의 구조는 매우 간단하다. 먼저, 클러스터(참조 벡터)의 수, 학습률과 같은 알고리즘 인자들을 설정하고 각 클러스터의 중심(centroid)을 임의의 값으로 초기화한다. 그다음 유클리드 거리 기반의 경쟁학습을 통해 클러스터의 중심을 수정하면서 학습을 진행한다. 자세한 LVQ의 군집화 알고리즘은 아래와 같다.
1) 클러스터의 수 $M$과 학습률 $\eta$를 설정한다.
2) 클러스터의 중심 ${v}_{ij}$를 0과 1 사이의 임의의 값으로 초기화한다, \(i = 1, 2, 3, ... M\), \(j = 1, 2, 3, ... N\). M은 클러스터의 수, N은 입력 벡터의 크기이다.
3) $k$를 0으로 초기화한다.
4) \({x}_{k}\)를 인공신경망의 입력으로 설정한다.
5) 경쟁학습을 통해 클러스터를 선택한다.
6) 선택된 클러스터의 중심을 수정한다.
7-1) 현재까지 학습한 결과가 종료 조건을 만족하면 알고리즘을 종료한다.
7-2) 종료 조건을 만족하지 않는다면 $k = k + 1$을 수행하고 과정 4부터 다시 알고리즘을 실행한다.
경쟁학습 과정에서 승자 클러스터를 선택하기 위해 이용하는 유클리드 거리는 아래의 [식 1]과 같이 정의한다. 현재 입력 벡터 ${x}_{k}$와 각각의 클러스터에 대해 유클리드 거리를 계산하고, 유클리드 거리가 가장 작은 클러스터를 승자로 선택한다. $N$은 입력 벡터의 크기이고, ${v}_{ij}$는 $i$번째 클러스터 중심의 $j$번째 요소를 의미한다.
다음으로, 승자로 선택된 클러스터의 중심은 아래의 [식 2]와 같이 수정된다. $\eta$는 학습률을 의미한다.
학습률 $\eta$가 고정된 상수라면, 어떠한 상황에서는 인공신경망의 결과가 계속 진동하여 군집화가 제대로 이루어지지 않을 가능성이 존재한다. 반복적인 학습을 통해 인공신경망의 결과가 한 방향으로 수렴하기 위해서는 학습률 $\eta$를 반복을 거듭할 때마다 감소시킬 필요가 있다. 학습률을 감소시키는 방식은 아래의 [식 3]과 같다. \({\eta}_{0}\)는 초기 학습률이고, $t$는 현재 반복 횟수, $T$는 최대 반복 횟수를 의미한다.
LVQ1 알고리즘에서는 입력 벡터와 유사한 클러스터의 중심은 입력 벡터와 더 가깝도록 수정하고, 입력 벡터와 다른 부류의 클러스터 중심은 입력 벡터와 더 멀어지도록 수정한다. 따라서, LVQ1에서는 기존의 LVQ에서 사용하였던 학습연산을 [식 4]와 같이 수정하여 이용한다. $W$는 승자로 선택된 클러스터의 번호이다.
LVQ2는 앞에서 설명한 LVQ1과 같은 구조를 갖는다. LVQ1와 다른 점은 승자로 선택되지 않은 모든 클러스터를 입력 벡터와 멀어지도록 학습하는 것이 아니라, 유클리드 거리가 두 번째로 짧은 클러스터만 입력 벡터와 멀어지도록 학습하는 것이다. 즉, 승자로 선택된 클러스터의 중심 ${v}_{W}$는 [식 5]와 같이 수정되고 유클리드 거리가 두 번째로 짧은 클러스터의 중심 ${v}_{Q}$는 [식 6]과 같이 수정된다.
'지능형시스템_' 카테고리의 다른 글
[머신러닝] - Complex-Valued Neuron (CVN) (1) | 2016.07.08 |
---|---|
[머신러닝] - Overfitting (과적합) (0) | 2016.05.07 |
[지능형시스템] - Artificial Bee Colony(ABC) Algorithm (0) | 2016.04.13 |
[머신 러닝] - 인공신경망 (Artificial Neural Network, ANN)과 역전파 (Backpropagation) Algorithm (12) | 2016.02.21 |
[머신러닝] - 홉필드 네트워크(Hopfield Network) (5) | 2016.01.10 |