로그인   |  회원가입  |  사이트맵  |  Contact Us
  아이디 저장하기
 
홈 > SAS Tech & Tip > SAS E-Miner 활용하기
[EM] SOM/Kohonen 2017.10.18
박성종 611 0
http://www.mysas.co.kr/SAS_tiptech/j_eminer.asp?b_no=7486&gotopage=1&con=subject&keyword=&cmd=content&bd_no=29&gubun=

 

SOM/Kohonen은 신경회로망의 일종이며, 스스로 학습하여 입력자료에서 의미 있는 패턴이나 특징을 발견하는 자기 조직화 지도(SOM:Self-Organizing Map)입니다. 이 네트워크 첫 번째 층인 입력 층과 두 번째 층인 경쟁층으로 이루어져 있습니다. SOM 학습은 경쟁학습을 기초로 하고 있으며, 입력벡터와 가장 가까운 가중치벡터만이 출력 값을 낼 수 있는 승자독점방식을 사용합니다. 승자와 그의 이웃들만이 그 가중치를 조정할 수 있고, 반복적으로 가중치를 갱신을 하면서 입력벡터와 가까운 출력 값을 냅니다.

 

 

 

SOM/Kohonen 노드의 목적은 비지도 학습 기술인 다양한 Kohonen 네트워크 학습 기술을 수행하는 것입니다. SOM/Kohonen 노드 내에서 적용되는 세 가지 Kohonen 네트워크 기법의 비지도학습 기술은 Kohonen 벡터 양자화(VQ), Kohonen 자기 조직화 맵(SOM) 또는 Nadaraya-Watson 및 로컬 선형 스무딩이 있는 Batch SOM입니다.

SOM/Kohonen 노드에 적용된 세 가지 비지도 학습 기법들은 모든 측정 레벨의 입력 변수를 처리 할 수 있는 유연성이 추가되었습니다. 그러나 만약 네트워크 학습 설계에 여러 가지 범주로 평가되는 입력 변수가 있는 경우 대응하는데 시간이 많이 소요됩니다. 또한 입력변수는 일반적으로 네트워크 학습 중 수렴을 보장하기 위해 표준화 되어 있습니다. 그 이유는 입력 변수의 클러스터 지정이 출력 계층의 클러스터 시드에서 제곱된 거리를 기반으로 하기 때문입니다.

 

 

 

개요

 

Kohonen 학습 기법의 목적은 데이터의 클러스터를 식별하는 것입니다. Kohonen SOM 네트워크 기법은 두 개의 개별 층(입력 층, 출력 층)으로 구성됩니다. , 각 입력 유닛이 각 출력 유닛에 매핑되는데, 각 출력 유닛은 고유한 클러스터를 나타냅니다. Kohonen SOM 학습은 신경망 학습과 유사합니다. 유사한 두 네트워크 학습 설계는 입력 층과 출력 층이 모두 있다는 점입니다. 그러나 Kohonen의 설계는 완전히 다른 토폴로지를 가지는 두 개의 개별 층(입력 층, 출력 층)으로 구성됩니다. Kohonen SOM 설계에서 토폴로지 매핑은 데이터의 차원을 줄이기 위해 바둑판의 사각형과 유사한 출력 유닛이 제곱된 격자로 구성되도록 설계되었습니다. 각 제곱된 격자는 클러스터를 나타냅니다. 따라서 제곱된 격자의 수가 적으면 클러스터의 수가 줄어들어 해석하기가 쉬워집니다. 2차원 제곱 격자의 크기는 행과 열의 수에 의해 결정됩니다. 제곱된 격자의 행 및 열의 수를 올바르게 선택하기 위해서는 시행착오가 필요합니다.

전형적으로 입력 층의 유닛을 출력 층의 유닛에 연결하는 가중치 벡터를 사용하여 입력 층의 각 유닛에 상당한 수의 관측치가 할당되어 있다고 가정하면 큰 맵이 일반적으로 선호됩니다. 그러나 Kohonen 기법에서 출력 층은 여러 유닛으로 구성되어 있으며 각 출력 층 유닛이 SOM 설계의 모든 유닛에 연결되어 있으며 데이터의 차원을 줄이기 위해서 바둑판처럼 2차원의 제곱된 격자로 배열되어 있습니다. SOM 알고리즘의 목표는 격자 공간에서 서로 가깝게 있는 두 클러스터가 입력 공간에서 서로 가까이 있는 시드를 갖도록 클러스터를 찾으려고 한다는 것입니다. Kohonen SOM 학습에서, 각 관측치는 입력 층에서 출력 층으로 네트워크를 통해 흐립니다. 각 관측치가 클러스터 멤버쉽을 위해 SOM 학습에 반영될 때, 출력 유닛은 게임의 규칙이 승자가 모두 가져가게 되는 출력 층 유닛에 할당된 입력 유닛을 기반으로 서로 경쟁합니다. 각 학습 사례의 경우, 승자 출력 유닛은 입력 유닛과의 제곱거리가 가장 작은 유닛입니다. 보상은 승자 유닛과 관련된 가중치가 그 유닛과 입력 계층 유닛간의 연결을 강화하도록 조정된다는 것입니다. , 제곱거리는 다차원 입력 공간의 입력 값 벡터와 2차원 격자의 가중치 벡터 간의 차이에 기반합니다. 다시 말해서, SOM 학습의 목적은 모든 학습 사례가 일부 시드에 가까우면서 가능한 한 적게 수행된 격자에 조정되도록 p차원의 입력 공간에 2차원의 격자를 중첩시키는 것입니다.

 

 

또한 SOM 학습에서 Kohonen 매핑의 토폴로지 순서를 유지하기 위해 추가되는 이웃 개념이 반복적인 클러스터링 멤버쉽 알고리즘에 통합됩니다. , 클러스터 멤버쉽에 대한 각각의 관측치가 입력될 때, 승자 출력 유닛에 더 근접하게 조정되어, 입력 유닛 및 그 주변의 인접 유닛에 할당될 확률을 증가시킨다. 처음에는 각 격자의 크기가 동일합니다. 그러나 Kohonen SOM 학습이 발전하면서 정사각형 격자는 승자가 각 격자에 할당된 단위의 이동량에 따라 비 직사각형 모양의 격자로 형성되는 경향이 있습니다. 적용되는 조정은 인접 크기라는 지정된 조정 매개변수에 의해 정의됩니다. 튜닝 매개변수는 이웃의 크기와 당첨된 유닛 그리고 해당 유닛을 둘러싼 모든 유닛에 대한 조정 값을 제어합니다. 수행되는 조정은 승자 출력 유닛과 입력 유닛 사이의 유클리드 거리에 비례합니다. 또한, 다른 인접 유닛도 입력 유닛에 더 가깝게 이동됩니다. 조정되는 크기는 인접한 유닛과 입력 유닛 사이의 거리에 의해 결정됩니다. 인접 유닛이 입력 유닛에 가까울수록 조정이 더 많이 됩니다. , 인접 유닛이 입력 유닛에 가까워질수록 인접 유닛이 많이 움직입니다. 수렴하기 위해서 이웃 크기가 각 단계에서 조정됩니다. 처음에는 이웃 크기 조정 매개변수가 다양한 이웃에 큰 조정을 적용합니다. 그러나 학습함으로써 이웃 지역의 크기를 발전시키고 조정 값은 점차 감소할 것입니다. 조정이 출력 유닛에 적용되는 이유는 Kohonen SOM 네트워크 학습이 설계에 출력 층 유닛이 있는 만큼 많은 클러스터를 식별하여 전체 분석 목적에 어긋나기 때문입니다. 이 반복 과정은 이웃 크기가 점점 작아 질 때까지 여러 번 반복됩니다.

 

 

반복 학습이 완료되면 승자 유닛의 수(Kohonen SOM 토폴로지 맵의 행 및 열의 수에 따라 각 클러스터 내의 빈도수)를 확인 할 수 있습니다. Kohonen 학습의 설계에서 생성된 여러 클러스터 간의 관계 또는 각 클러스터의 의미를 맵을 통해 결정할 수 있습니다.

 

Kohonen SOM 네트워크 설계의 최종 구성은 승자가 없는 출력 유닛 또는 소수의 승자가 설계에서 제거되는 것입니다. 이러한 출력 유닛을 제거하는 이유는 처리 시간을 줄이기 위해 네트워크 학습을 가속화하고 최종 클러스터를 만드는데 기여하는 다른 모든 출력 유닛을 설계에 포함시키기 때문입니다. 따라서 네트워크 학습은 네트워크 매핑의 크기에 따라 다릅니다. 또한 인접한 출력 유닛은 서로 비슷하지만 서로 멀리 떨어져있는 출력 유닛은 매우 다릅니다.

 

 

 

Kohonen 벡터 양자화(VQ) 방법

 

Kohonen 벡터 양자화 방법은 k-means 클러스터링 방법과 같은 부분 클러스터링 알고리즘과 밀접하게 관련되어 있습니다. 그러나 K-means 클러스터링 방법은 Kohonen VQ방법보다 권장됩니다. 한 가지 이유는 Kohonen VQ 설계의 다양한 튜닝 상수로 인해 가장 적절한 값을 결정하기 위해 많은 시행착오가 필요하기 때문입니다. Kohonen VQ 네트워크에서 각 출력 유닛은 클러스터를 나타내며 각 클러스터의 중심을 클러스터 시드라고 합니다. 비지도 학습 기법의 차이점은 네트워크 학습 기법이 관측치가 가까운 임시 클러스터 그룹에 할당되면 모든 클러스터 시드를 조정하는 전통적인 클러스터링 기법과는 대조적으로 해당 클러스터 내에서 승자 클러스터 시드를 관찰치에 더 가깝게 조정한다는 것입니다. , 생성되는 모든 클러스터의 시드가 동시에 조정됩니다. 지정된 학습 속도는 클러스터 시드가 업데이트 되는 속도를 결정합니다. 승자 클러스터 시드는 시드와 입력 유닛 사이의 제곱거리에 따라 일정 비율로 시드를 이동하여 업데이트 됩니다. Kohoen 학습의 각 단계에서 승자 클러스터 시드는 다음과 같이 단계에서 업데이트됩니다.

 

단계에서 일부 학습 속도 , 클러스터 에서의 시드는 관측시의 입력 벡터

 

번째 클러스터에서의 클러스터 시드와 번째 관측에서의 입력벡터 사이의 제곱 거리

  

MacQueenk-means 알고리즘은 또 다른 클러스터링 방법입니다. 그러나 k-meansKohonen VQ 네트워크 학습과는 약간 다릅니다. k-means 알고리즘은 승자 클러스터에 할당된 관측 횟수의 역수에 따라 학습 속도를 로 정의됩니다.

 

샘플 크기가 증가함에 따라 학습 속도가 점진적으로 감소하면 각 클러스터의 시드가 각 클러스터 내에 할당된 모든 관측치의 평균에 근접하게 됩니다. 또한 클러스터 시드와 입력 유닛 간의 최소 제곱 거리를 기반으로 반복 알고리즘의 수렴을 보장합니다. 그러나 학습 속도를 고정된 속도로 설정하면 Kohonen 학습이 수렴하지 못하게 됩니다.

 

 

 

SOM/Kohonen 3가지 분석 방법

      


다이어그램

 

 

 위 그림과 같이 SOM/Kohonen 노드의 3가지 분석방법에 따라 3개의 노드와 결과를 참고하기위해 세그먼트 프로파일링과 그래프탐색 노드로 다이어그램을 구성하였다. SOM/Kohonen을 수행하기 위해서 여러 가지 매개변수를 조절하여 시행착오를 위하여 여러 노드로 구성해야 하지만 분석방법 3가지를 큰 범주로 생각하여 3개의 노드로만 구성한 그림이다.

 

 

1. Batch SOM

    

 

Batch SOM 방법의 경우 각 군집에 적어도 5개 또는 10개의 관찰치가 포함되는 범위 내에서 지도의 크기는 클수록 좋습니다. 그러나 지도가 클수록 그 만큼 분석시간은 더 많이 소요됩니다.

 

토폴로지 맵에서 행 및 열 속성을 사용하여 행 및 열 수를 지정할 수 있고, 근방옵션(Neighborhood Options)테이블의 최종 크기(Final Size) 속성을 사용하여 최종 neighborhood 크기를 지정할 수 있습니다. 최종 Neighborhood Size는 일반적으로 지도 크기에 비례하여 설정해야합니다. 예를 들어, 지도에서 행과 열의 수를 두 배로하면 최종 neighborhood 크기를 두 배 늘려야 합니다. 지도 크기와 최종 neighborhood 크기를 선택하려면 일반적으로 시행착오가 필요합니다.

 

Batch SOM은 분석의 방법(Method)속성의 기본 설정입니다.

 

 

2. Kohonen SOM 

  

  

Kohonen SOM 방법의 경우 대부분의 클러스터가 최소 5 개 또는 10 개의 사례가 있는 한 큰지도가 일반적으로 더 좋습니다. 그러나 지도가 클수록 그 만큼 분석시간은 더 많이 소요됩니다.

 

최종 neighborhood 크기는 일반적으로 지도의 크기에 비례하여 설정해야 합니다. 예를 들어, 지도에서 행과 열의 수를 두 배로 늘리면 최종 neighborhood 크기를 두 배 늘려야 합니다. 지도 크기와 최종 neighborhood 크기를 선택하려면 일반적으로 시행착오가 필요합니다.

 

토폴로지 맵에서 행 및 열 속성을 사용하여 행 및 열 수를 지정할 수 있고, 근방옵션(Neighborhood Options)테이블의 최종 크기(Final Size) 속성을 사용하여 최종 neighborhood 크기 그리고 Kohonen Options의 테이블에서 학습률(Learning Rate), 초기 학습률(Initial Rate), 최종 학습률(Final Rate), 단계 수(Number of Steps) 속성을 사용하여 학습률 매개변수를 지정할 수 있습니다.

 

학습률(Learning Rate)은 학습 중에 바뀝니다. 만약 초기 시드가 무작위이면, 0.9정도의 학습률로 시작하는 것이 중요합니다. 주성분 또는 몇 가지의 예비 분석을 사용하여 초기 시드를 얻는다면 초기 학습률은 훨씬 낮아야 됩니다.

 

 

3. Kohonen VQ

 

 

  

Kohonen VQ 방법의 경우 클러스터 최대 개수(Maximum Number of Clusters) 속성을 사용하여 클러스터의 수를 지정할 수 있습니다. 클러스터 수를 선택하려면 일반적으로 시행착오가 필요합니다.

 

Kohonen Options의 테이블에서 학습률(Learning Rate)속성을 사용하여 학습률을 지정할 수 있습니다. 학습률은 학습 중에 변경됩니다. 만약 초기 시드가 무작위이면, 0.5정도의 학습률로 시작하는 것이 중요합니다. 주성분 또는 몇 가지의 예비 분석을 사용하여 초기 시드를 얻는다면 초기 학습률은 훨씬 낮아야 됩니다.

 

 

노드 결과창

 

 

 

SOM/Kohonen 노드의 결과창입니다. 기본적으로 맵과 출력창이 나오며, 추가적으로 풀다운메뉴의 보기(V)에서 모델 메뉴에 있는 평균값 통계량과 분석통계량 값을 볼 수가 있습니다. 그래프탐색 또는 세그먼트 프로파일링 노드를 이용하면 더 자세한 결과를 볼 수 있습니다.