오늘날 머신 러닝의 기술들이 Supervised Learning을 기반으로 하고 있지만, 사실 대부분의 데이터는 라벨링이 되어있지 않다. Input feature X가 존재하지만 라벨 y는 존재하지 않는다.
제조 생산 라인에서 각 품목의 사진을 몇 장 찍고 결함이있는 품목을 감지하는 시스템을 만든다고 가정하자. 자동으로 사진을 찍는 시스템을 만들면 하루에 수천장의 사진을 얻을 수 있을 것이다. 몇 주 동안 사진을 계속 찍는다면 매우 큰 데이터셋을 만들 수 있을 것이다. 그러나 라벨이 없다. 만약 결함이 있는지 없는지 판단하는 binary classifier를 만든다면, 'defective' 나 'normal'로 매 사진마다 라벨이 필요하다. 이 일은 전문적인 지식을 갖춘 사람이 앉아서 일일이 사진을 보면서 라벨링을 해야한다. 매우 길고 지치는 싸움이 될 것이다. 그래서 보통 데이터 셋은 사용 가능한 사진의 일부가 될 것이다. 결과적으로 데이터 셋은 작아지고, 분류기의 성능도 낮아진다. 게다가 회사에서 상품이 약간이라도 변하면, 데이터 셋을 다시 처음부터 만들어야 한다. 라벨 없이는 분류가 불가능할까? Unsupervised learning에 대해 알아보자.
Clustering
목표는 유사한 인스턴스를 클러스터로 그룹화하는 것이다. 클러스터링은 데이터 분석, 고객 세분화, 추천 시스템, 검색 엔진, 이미지 세분화, 반 감독 학습, 차원 축소 등에 이용된다.
Anomaly detection
목표는 정상적인 데이터의 모양을 파악한 다음 이를 사용하여 생산 라인의 결함 품목 또는 시계열의 새로운 추세와 같은 비정상 인스턴스를 감지하는 것이다.
Density estimation
이는 데이터 세트를 생성한 랜덤 프로세스의 확률 밀도 함수 (PDF)를 추정하는 작업이다. 밀도 추정은 일반적으로 이상 감지에 사용된다. 매우 낮은 밀도 영역에 위치한 인스턴스는 anomalies일 수 있다. 데이터 분석 및 시각화에도 유용하다.
Clustering
산에서 나무들을 보고 분류를 할 때, 비슷하게 생긴 나무들은 같은 종일 확률이 높다는 것을 안다. 이때 식물학자, 전문가가 없더라도, 최대한 비슷하게 생긴 나무들을 그룹화해서 같은 종을 찾을 수 있다. 이를 clustering이라고 한다. 정확하게는 비슷한 인스턴스를 찾고 같은 클러스터로 분류하는 것을 clustering이라고 한다.
K-Means
The K-Means algorithm
*EM Algorithm (Expectation, Maximization)
군집 수 k를 2로 정했다고 가정하자. 중심(빨간색 점)을 랜덤 초기화 한다.
모든 개체들(파란색 점)을 아래 그림처럼 가장 가까운 중심에 군집(녹색 박스)으로 할당된다. 이것이 Expectation 스텝이다.
이번엔 중심을 군집 경계에 맞게 업데이트해 줍니다. 이것이 Maximization 스텝이다.
다시 Expectation 스텝을 적용한다. 바꿔 말해 모든 개체들을 가장 가까운 중심에 군집(보라색 박스)으로 할당해주는 작업이다.
Maximization 스텝을 또 적용해 중심을 업데이트한다. Expectation과 Maximization 스텝을 반복 적용해도 결과가 바뀌지 않거나(=해가 수렴), 사용자가 정한 반복수를 채우게 되면 학습이 종료된다.
Centroid initialization methods
댓글