본문 바로가기

분류 전체보기246

40. 이상(사기) 탐지 : 또 다른 탐지 알고리즘 (Multivariate Gaussian Distribution) 지금까지 배운 Anomaly Detection Algorithm은 Original Model 입니다. 가장 많이 사용되는 모델이지요이번에는 비슷하지만 조금 다른 Multivariate Gaussian Distribution에 대해서 알아보겠습니다. variate의 의미는 허용이 가능한 어떤 집합이나 데이터의 그룹내에서 어떤 확률에 따라 데이터가 자유롭게 변수로 사용되는 것을 말합니다. 다시 이야기해보면 multivariate라는 의미는 어느 집합데이터 내에서만 추출이 되는 멀티 변수들이라고 생각하면 될 것 같습니다. 이에 대해서 하나씩 알아보겠습니다.아래 그림과 같은 dataset이 있습니다. x1 에 대해서 오른쪽 상단의 그래프와 같이 정규분포를 형성하고 있습니다. 또 x2로 오른쪽 하단의 그래프와 같.. 2016. 8. 29.
39. 이상(사기) 탐지 : Anomaly Detection System 만들기 머신 러닝 알고리즘을 평가하는 방법으로 실제 숫자로 나타내어 평가하는 방법에 대해서 이전 시간에도 알아보았습니다. Anomaly Detection System을 만들때도 이러한 방법이 유용하게 사용됩니다.지금까지 살펴본 anomaly data들은 unlabeled data 였습니다만, labeled data가 될 수 있다면 평가하는 것이 가능할 겁니다. 그래서 만약 특정 data가 anomaly data라면 y=1로 정의하고, 그렇치 않다면 즉, 정상적인 normal data라면 y=0으로 하여 label을 생성할 것입니다. 이를 위해서 data set을 분리하고 어떻게 label을 만드는지 알아보겠습니다. 비행기 엔진을 예를 들어서 아래와 같이 설명을 할 수 있습니다. 10,000개의 정상적인 엔진이 .. 2016. 8. 28.
38. 이상(사기) 탐지 : Anomaly Detection System 개요 Anomaly Detection우리가 사용하는 dataset에는 수많은 데이터들이 있습니다. 이중에서 모든 데이터가 정상일 수도 있지만 그렇치 않을 수도 있을 것입니다. 이제부터는 특정 데이터가 이상이 있는지를 파악하기 위한 방법에 대해서 알아보고자 합니다.이상한(비정상적인) 데이터를 검출하는 것을 Anomaly Detection 이라고 합니다. 아래 그림에서와 같이 예를들어서 살펴보겠습니다. 비행기 엔진을 만드는 제조사를 생각해보겠습니다. 엔진은 열이 높아짐에 따라서 엔진의 회전이 빨리질 것이라고 생각해볼수 있을 것입니다. 아래 그래프의 데이터들과 같이 분포되어 있는 것을 볼 수 있습니다. 이때 녹색의 x 데이터와 같이 다른 데이터들과 밀접한 부분에 존재하는 경우는 정상적인 데이터라고 볼수 있으나 나홀.. 2016. 8. 24.
37. 자율학습 두번째 (Principal Component Analysis) : PCA 적용하기 Reconstruction 지금까지 데이터를 압축하여 차원을 낮추는 방법에 대해서 알아보았습니다. 이번에는 다시 원래의 차원으로 복원을 하는 방법에 대해서 알아보도록 하겠습니다.(Reconstruction or Decompress) 이것은 원래의 데이터를 다시 찾기 위해서 사용되는 방법이 되겠습니다.아래 그림에서와 같이 2차원 데이터들 x 를 직선에 투영하여 생성하였습니다. z = Ureduce T * X다시 z 로 부터 X를 복원하기 위해서는 반대로 Ureduce * z = Xapprox 를 구하면 됩니다. 이때 Ureduce는 nxk의 크기를 갖는 matrix이고 z 는 kx1의 크기를 갖는 vector 이므로 Xapprox는 다시 n의 크기를 갖는 vector가 됩니다. 하지만 이렇게 복원을 한 n.. 2016. 8. 23.
36. 자율학습 두번째 (Principal Component Analysis) : PCA Algorithm 앞에서 살펴본 data compression 또는 dimensionalilty reduction 을 이용해서 오늘날까지 널리 사용되고 인기있는 알고리즘이 바로 PCA(Principal Component Analysis) Algorithm 입니다. 2차원의 데이터를 1차원으로 줄이기 위해서 아래 그림과 같이 직선을 하나 그립니다. 그리고 이 직선에 모든 2차원 데이터들을 투영시켜서 한점으로 나타낼 수 있게 됩니다. 이때의 두 점과의 거리 즉, 2차원 데이터의 점과 직선에 투영되어 생성된 점 사이의 거리를 때로는 projection error 라고 불리우기도 합니다.이 projection error가 가장 최소화 되는 직선을 찾고 이로 인해서 2차원 데이터를 1차원으로 낮추는대 사용이 됩니다. 만약에 왼쪽 .. 2016. 8. 22.
35. 자율학습 두번째 (Principal Component Analysis) : 데이터압축(Data Compression), 차원감소(Dimensionality reduction) 이번에는 데이터를 압축 (Data Compression) 하는 방법에 대해서 알아보겠습니다. 실제 데이터를 압축하는 것은 아니고 다차원의 데이터를 저차원의 데이터로 축소하는 방식입니다. 이것은 머신러닝을 수행할 때 메모리와 디스크 사용에 대한 비용을 줄일 수도 있지만 그보다 더 좋은 점은 머신이 학습하는 시간을 단축할 수 있다는 것입니다. 더 빠른 결과를 볼 수 있고 성능이 좋은 머신러닝 시스템을 만들 수 있게 되는 것이지요 아래 그림을 예로 들어서 살펴보겠습니다. x1, x2로 구성이 되는 2차원의 점들을 나타낸 것입니다. 이것은 어떤 하나의 선으로 각각의 점들을 표현할 수 있다고 생각해 보겠습니다. 이 두가지 x1, x2 데이터는 어떤 관계를 가지고 있을 것입니다. cm 와 inch로 표현되는 같은 .. 2016. 8. 21.
34. 자율적으로 학습하기 (Unsupervised Learning) : K means optimization 이번에는 기존의 다른 알고리즘에서 optimization objective를 했던것과 같이 K means 알고리즘에 대한 optimization에 대해서 알아보겠습니다.c(i)는 각각의 x(i)의 데이터가 갖게되는 cluster의 번호를 의미하며 이 값은 cluster의 k 만큼의 존재하는 수 중에서 하나가 됩니다.uk는 cluster의 centroid(중심점)가 되는 정보로 k 갯수 만큼 존재합니다.uc(i)는 x(i)의 데이터가 속하는 cluster에 대한 cluster 중심점을 의미하게 됩니다.이렇게 구성된 정보를 바탕으로 J 함수가 아래의 그림과 같이 생성이 됩니다. 이 J함수는 cost 함수이면서 또 Distortion 이라고 불리웁니다. 이 함수는 x(i)와 uc(i) 간에 거리의 제곱으로 나.. 2016. 8. 20.
33. 자율적으로 학습하기 (Unsupervised Learning) : K-means algorithm 이번에는 Unsupervised Learning이 어떤 방식으로 Clustering을 찾는지 살펴보고 대표적인 알고리즘인 K-means algorithm에 대해서 알아보겠습니다. 녹색으로 표기되는 x data 들이 그래프와 같이 분포가 되어 있고 임의의 2개의 지점에 파란색 X와 빨간색 X를 위치했다고 생각해보겠습니다. 이 두개의 X를 Cluster Centroids라고 하고 두 개의 cluster를 구성하는 중심점으로서의 역할을 하게 됩니다. 이렇게 원하는 Cluster의 중심점을 생성하여 특정 위치에 위치 시키는 것이 unsupervised learning에서 첫번째 과정이 되겠습니다. 그렇게 위치시킨 두개의 cluster 중심점을 기준으로 근처에 있는 x data들을 색으로 구분을 해보겠습니다. 아.. 2016. 8. 17.
32. 자율적으로 학습하기 (Unsupervised Learning) : Clustering 지금까지 우리는 Supervised Learning에 대해서 배웠습니다. 그동안에 Linear regression, logistic regression, Neural Networks 그리고 Support Vector Machine 까지의 알고리즘들을 공부했었습니다.이번에는 Unsupervised Learning에 대해서 알아보겠습니다. Unsupervised Learning은 결과가 주어지지 않는 입력되는 데이터들(Unlabled dataset)만을 분석하여 연관있는 것들을 찾고 그룹핑을 하는 머신 러닝의 방식입니다. 아래 그림은 Supervised Learning에서의 데이터와 Decision Boundary를 그래프로 나타낸 것입니다. 각각의 데이터는 x 인지 o 인지의 결과를 이미 가지고 있으며 이.. 2016. 8. 16.
31. SVM (Support Vector Machine) 사용하기 SVM을 사용할때 선택해야 하는 내용이 두가지 있습니다.하나는 prarmeter C를 선택해야 하고 또 하나는 kernel을 선택해야 합니다. 커널이 없는 경우는 linear kernel이라고 하며 이것은 f 함수(similarity function)을 사용하지 않고 x features 를 사용하는 것입니다. 주로 n 이 크고 m이 작은 즉 features는 많은데 dataset 사이즈가 적은 경우에 사용이 됩니다.그리고 우리가 배운 Gaussian kernel을 사용하는 경우에는 앞에서 배운것처럼 아래 그림의 하단 공식과 같이 표현이 가능하며 이때에는 sigma^2 값을 선택해야 합니다. 이것은 n 이 작고 m 이 큰 non-linear 에서 유용하게 사용이 됩니다. SVM에서 Kernel functi.. 2016. 8. 15.