목차
1) 식별
2) 군집화
3-1) K-means Clustering 정의
3-2) K-means Clustering 과정
3-3) K-means Clustering 장단점
1. 식별
식별이란, 패턴이 어느 카테고리에 속하는 가를 결정하는 과정이다. 신호를 전처리해서 노이즈를 제거해야하고 중요한 정보를 강화한다. 내가 인식할 수 있는 문자를 정규화한다.
앞에서 배운 식별방법은 두가지가 있다.
1) 통계적 / 결정이론적 접근방법
2) 구조적/ 언어이론적 접근방법
신경망을 이용했을 경우, 내가 인식했을때 어느 카테고리로 가야하는 지가 정해져 있다. 우리가 실제로 많은 부분이 총 몇개의 클래스가 있는 지 모르는 경우가 발생한다.
그때 사용하는 알고리즘이 군집화이다.
2. 군집화 (Clustering)
패턴 분포가 주어졌을 때 같은 종류라고 생각할 수 있는 몇 개의 서브 클래스로 분할하는 것이다. 카테고리가 확정되지 않았거나, 식별함수로 기술이 곤란한 경우에 이용한다. 군집화 기술이 많이 쓰이는 분야는 바이오 분야이다. 병을 일으키는 요인이나 병을 이기는 DNA,단백질이 중요하다. 나를 지켜주어야하는 백혈구가 나를 공격하는 경우는 위험한데 이런 유전자를 ANTI -라고 한다.
일반인의 몸에서는 검출이 되지 않는 단백질 들이다. 정상인과 자가 면역 체계 병을 앓고 있는 사람들 두가지 분류의 사람들을 검사하여 Grouping한다.
카테고리를 못나누지만, '이런 병을 가지고 있는 사람들이 이런 공통된 특징이 있다' 라고 접근할 수밖에 없는 경우가 많다.
특징공간상에 패턴이 놓여져 있다고 가정하자 .그룹핑 하면 몇개로 할 것인가????? 3개로 나눌 수 있다. 몇 개의 덩어리로 나누느냐 그룹핑을 하는 것이다. 이런 특징은, 자가 면역 질환에서 관련된 것인가보다. 루프스는 여기서 나타나고, 루마틱스는 저기서 나타난다 해석하는 과정이있다. 대표적으로 매핑이 되면 잘한 것이다.
3-1. K-means Clustering
- 주어진 패턴을 k개의 그룹으로 나눈 후 각각의 그룹을 대표하는 패턴(평균)을 생성한다.
- 이것도 학습데이터를 가지고 하는 것이다 .
- 학습데이터를 풍부하게 가지지 못한 경우 떨어지는 데이터가 발생한다.
- 각점에서 평균(center)까지의 거리를 비교해서 결정한다.
- 학습데이터를 가지고 k개의 클러스터를 만든 후에, 새로운 데이터는 k개의 그룹중에 가까운 쪽으로 속하도록 한다.
- 2번 데이터는 분산되어 있다. 분산이 크니까 조금 상쇄시켜주어야 한다.
- 분포군에 대해 조사하게 되면 분산값을 고려하게 된다.
- 분포도가 다를땐 마할라노비스를 고려한다.
* 마할라노비스 : 평균과의 거리가 표준 편차의 몇 배인지 나타내는 것
3-2. K-means Clustering 과정
1. 초기 객체를 선정한다
기본적으로 특징 벡터가 하나의 물체가 대응을 하도록 되어있을 때,
K개의 클러스터를 줬을때 K개의 중심점을 선택하는 것이다.
2. 객체의 군집 배정
가까운 센터쪽으로 군집을 배정한다.
3. 군집 중심 좌표(Center)의 산출
센터를 다시 재선정한다.
4. 수렴조건 점검
나와 가까운 센터를 배정한다는 것을 지키기 위해, 기준함수가 수렴할 때까지 다시 위의 과정을 반복한다.
3-3. K-means Clustering의 장단점
장점
a) 굉장히 빠른 시간내에 돌아간다. O(tkn)
b) 랜덤하게 (R1,R2,R3) 시작하므로 랜덤을 잘 준경우 잘 묶이지만 잘못주면 빠르게 수렴되다보니 잘못된 결과를 얻을 수 있다.
(돌릴 때마다 결과가 달라진다. == 지역최적점에서 종료된다.)
단점
a) 값의 범위가 너무 다양한 경우
- 패턴인식의 범위가 100차원에서 되어지는 경우가 많다.
값들이 가지는 범위가 너무 커서 공간안에서 점들이 떨어져 있으면 군집을 했는지 안했는지 모른다.
Sparcity가 높으냐 판정을 해야한다. 모여지지 않는 문제라면 모아서 푸는 문제 자체가 잘못된것이다.
b) 점쟁이가 아니라서 정확한 k값을 정할 수 없다.
K-clustering의 이러한 문제점을 해결하기 위해 만든것이 K-modes 알고리즘이다. 데이터가 하나의 mod로 있다가 분포가 만나지 않는 경우 split이 일어난다 . 가장 모여있는 곳에 등고선을 그리고 퍼지면서 오류가 몇개인지 계산하는 알고리즘이다. 이런 알고리즘의 대표적인 예가 mean-shift알고리즘이다 . 단점을 해결할 수는 있지만 더 좋다고 말할 수 없다. 중요한 것은 식별할 때 기계학습 매커니즘을 쓰는데 문제의 유형에 따라 K-clustering을 쓰거나 식별을 써야한다.
클러스터링에 관한 더 많은 것 보러가기
'이론 > AI' 카테고리의 다른 글
[인공지능] 퍼셉트론 , 신경망 (0) | 2018.11.29 |
---|---|
[인공지능] 클러스터링 (0) | 2018.11.26 |
[인공지능] 자연 언어 처리 (1) | 2017.12.04 |
[인공지능] 학습과 신경회로망 (0) | 2017.12.04 |
[인공지능] 패턴 인식 (0) | 2017.11.29 |