본문 바로가기

반응형

Machine Learning Tasks

(67)
Local Outlier Factor (LOF) 이번 포스트에서 다룰 내용은 딥러닝 기반 이상탐지 말고 2000년에 발표된 전통적인 이상탐지 방법, Local Outlier Factor (LOF) 입니다. LOF 의 기본 아이디어는 전체 데이터 분포에서 지역적인 밀집도를 (density) 고려하겠다는 것에서부터 출발합니다. 일반적인 density based 방법은 특정 거리 안에 들어오는 데이터의 개수로 밀집도를 정의하나 밑의 그림의 C1/C2 처럼 밀집된 정도가 각각 다르다면 밀집도를 정의하는 특정 임계치를 정하는 것이 어렵습니다. 밑의 경우에 대해 기존 density based 방법은 o1은 이상치로 잘 탐지하겠지만 o2는 탐지를 못할 가능성이 높겠죠. 따라서 LOF는 지역적인 밀집도를 고려하여 이상치를 판단합니다. LOF LOF에서는 먼저 특정 ..
RAPP 이번 포스트에서는 2020년 ICLR에서 발표된 마키노락스의 (Machine Intelligence 회사로 시스템에 대한 이상탐지 및 지능제어 솔루션을 제공합니다) 이상탐지 방법론의 논문입니다. 주목할 점은 새로운 학습 방법론을 제시하는 것이 아니라 anomaly score를 측정하는 새로운 방법론만으로 이상 탐지의 성능을 비약적으로 향상시키는 것에 있는데요, 한번 살펴보도록 하겠습니다. 오토인코더 (auto-encoder)는 데이터 $x$의 최대한의 정보를 남기게끔 압축한 이후에 이를 다시 복원시키는 모델로 비선형 관계를 표현할 수 있는 deep neural networks를 사용한 deep auto-encoder가 이상탐지 분야에서 매우 많이 사용되어 왔습니다. 정상 데이터를 통해 오토인코더를 정상 ..
Clustering - DBSCAN 지난 포스트에서 다루었던 K-Means는 데이터 간의 거리를 이용해 군집을 나누는 방법이라면, 이번 포스트에서 다룰 DBSCAN (Density-Based Spectral Clustering of Application with Noise)는 데이터가 세밀하게 모여있는 밀도가 높은 곳을 뭉치는 군집 방법으로서 서로 이웃한 데이터들을 군집에 반복적으로 포함시키기 때문에 일반적으로 원형 형태 군집으로 나타나는 거리 기반 군집화에 비해 불특정한 모양의 군집 형성이 가능합니다. 위 그림은 sklearn.datasets 모듈의 make_moons 함수를 이용한 가상 데이터를 K-Means와 DBSCAN을 이용하여 군집화 한 결과로 K-Means는 거리 기반으로 두 군집이 명확히 구분되지 않으나 DBSCAN은 밀도 ..
Clustering - 군집 개수 정하기 이전 포스트에서 군집화의 대표 알고리즘 K-Means에 알아보았습니다. K-Means의 대표적인 특징으로는 군집의 개수 $k$를 미리 설정해주어야 하는 것이었는데요. 데이터에 대한 사전 지식이나 나눌 그룹의 수를 미리 정의한 경우에는 괜찮지만 그러한 배경이 없는 경우 군집화가 비지도 학습이라 정답이 없기 때문에 일반적인 성능평가 방법을 이용할 수 없습니다. 어떻게 군집 알고리즘에 대한 성능평가를 내려 $k$를 적절하게 설정할 수 있을까요? Elbow method 가장 대표적인 방법으로 지난 포스트에서 다루었던 inertia 를 이용하는 방법입니다. Inertia는 각 군집 별 오차의 제곱의 합으로 군집 내 분산으로 정의할 수 있는데, 일반적으로 $k$가 증가하면 샘플이 할당된 센트로이드에 가까워져 ine..
Clustering - K-Means 군집화는 대표적인 비지도학습 주제의 하나로 데이터 $x$에 대한 출력 $y$를 예측하는 지도학습과는 달리 $x$ 자체가 비슷한 것끼리 묶어주는 알고리즘입니다. 비지도학습이니 당연히 $x$에 대한 라벨 $y$가 필요하지 않고 비슷한 특성을 가진 데이터끼리 그룹 (군집)을 구성하는 것으로 간단하게는 문서, 음악, 영화를 여러 주제의 그룹으로 모으는 경우나 스팸 이메일을 판단하는 데이도 사용되는 중요한 분야입니다. 이번 포스트에서는 군집화의 대표적인 알고리즘, K-Means를 살펴보도록 하겠습니다. K-Means K-Means 는 군집의 개수 $k$를 설정하고 각 군집에 할당된 데이터 샘플의 평균 중심으로 군집 중심을 이동하는 방법입니다. K-Means는 다음과 같이 4단계로 요약할 수 있습니다. 1) 데이터..
Self-Supervised Learning - SwAV (2) 이전 포스트 [Machine Learning/Unsupervised Learning] - Self-Supervised Learning - SwAV (1) Experiments SwAV 의 기본 실험 세팅은 SimCLR 과 거의 비슷합니다. 배치 사이즈는 4096을 사용하고 $\tau=0.1$, $\epsilon=0.05$를 사용합니다. 또한, LARS 옵티마이저를 사용하며 SimCLR 처럼 learning rate를 초반에 4.8로 높게 선택하고 일정 epoch 이후 cosine learning rate decay에 의해 감소시킵니다. 마지막으로 2-layer MLP projection head를 사용합니다. 실험 전체적으로는 ResNet-50 모델을 400 epoch 만큼 훈련시키며 2개의 일반적인 r..
Self-Supervised Learning - SwAV (1) SimCLR, MoCo 포스트에서 살펴봤듯이 대조 학습 (contrastive learning)을 통한 비지도 representation 추출은 지도학습 성능에 거의 근접해가고 있습니다. 이러한 방법은 보통 학습이 진행되면서 타겟이 변하는 online (on-the-fly) 형태의 학습 방법을 취하고 positive/negative 샘플 간 비교를 위해 매우 큰 배치 사이즈가 필요하게 됩니다. 대조 학습을 위한 contrastive loss는 같은 이미지로부터 파생된 representation 쌍의 유사도를 높이고 다른 이미지로부터 파생된 쌍의 유사도를 낮추는 방향으로 진행됩니다. 원론적으로 이 방법을 큰 데이터셋에 대해 모두 적용하기에는 구현 상의 문제가 따르므로 큰 배치 사이즈를 설정하게 됩니다. S..
Self-Supervised Learning - MoCo v2 이전 포스트 [Machine Learning/Unsupervised Learning] - Self-Supervised Learning - MoCo (1) [Machine Learning/Unsupervised Learning] - Self-Supervised Learning - MoCo (2) 이번 포스트에서는 SimCLR에서 사용된 요소를 MoCo에 적용하여 MoCo의 성능을 향상시킨 방법에 대해 살펴보려 합니다. 특히 SimCLR 에서의 MLP projection head와 더 강한 augmentation 방법을 사용해서 성능을 향상시켰다고 합니다. 먼저 지난 MoCo 포스트에서도 살펴보았듯이 SimCLR은 대표적인 end-to-end constrastive learning 메커니즘으로 negativ..

반응형