data mining 1(machine learning, feature space, 차원의 저주)
The definition of machine learning.
머신러닝이란 무엇인가. 우선 러닝. 학습이 무엇인지에서부터 시작해 보자.
학습이란 새로이 혹은 기존에 갖추고 있었던 무언가(지식,행동,능력,가치 등)을 개선해 나가거나 습득해 나가는 과정을 의미한다.
그렇다면 머신러닝이란 무엇인가.
어떤 한 관점에서는 가장 정확한 최적의 파라미터를 찾기라고도 말할 수 있겠다.
그렇게 해서 최적화된 머신(모델은) 학습 데이터에 없던 test set을 통해 min error을 보이고, generalization 과정을 거치게 될 것이다.
Understanding Feature Space
feature space에 대해서 공부해 보자.
먼저 1-dim feature space를 보자.
특정 단일 x값에 대해서 y값이 존재할 때, 우리는 데이터가 단일변수를 갖는다고 하며 이를 1-dim feature라고 한다.
나아가 식물의 종류를 y값으로 갖는 데이터가 설명변수로 x를 2개 이상으로 갖는다고 할 때 우리는 다변량이라 하며 multi dim feature space라 한다.
선형 모델에서 parameter의 개수는 이러한 feature dimension 수에 +1 을 한다. 이유는
bias 때문이다. y =ax + b에서 b를 bias라고 한다. 회귀분석 시간에 배웠을 것이다.
우리가 찾고자 하는 parameter는 위의 1 dim feature space의 경우 weight(a), bias(b) 2개 (1+1 =2)이다.
2-dim, n-dim feature space에서도 위의 가정은 동일하게 유지된다. (선형 모델에서만.이라는 점을 유의해야 할 것이다.)
여기까지만 생각했을 때는 생각보다 paramter의 개수가 안 나오네? 해볼 만한 한데? 라고 생각했다.
하지만 앞에서와 다르게 Quadratic curve model에서는 d^2 + d +1 개의 parameter 개수를 갖는다.
예를 들어 iris dataset(4-dim feature space)의 경우는 4^2 + 4 + 1 = 21개의 파라미터를 갖는다.
그렇다면 Mnist dataset의 경우는
Mnist 데이터의 경우 784 dim feature space를 가지므로, 784^2 + 784 + 1 = 615,441개의 parameter를 갖는다.. ㅎㄷㄷ
Feature space Transformation
이런 식으로 선형분리가 불가능한 feature space가 있다. 이런 데이터에 선형모델을 사용한다면 max accuracy는 75이다. 매우 작은 수치이다.
이럴 때 우리는 Transformed feature space를 할 수 있다. 그렇게 하면 선형모델을 사용해서도 100%의 accuracy를 확보할 수도 있다.
original feature vector가 x = (x1, x2)^T라고 해보자.
피쳐 벡터를 특정한 식으로 선형변환하여
위와 같이 변환한다고 하면
이렇게 선형분리가 가능한 데이터처럼 보이게 할 수 있다는 것을 알 수 있다.
저 transformed feature vector로 만드는 과정이 궁금했지만 현재로서는 다루지 않고 있다. 나중에 알게 될 것이다. 일단 transformation을 통해 선형 모델의 한계를 극복할 수도 있다는 것을 알아두자..
Representation Learning
representation learning 표현학습이란. 좋은 feature space를 automatically 하게 찾는 과정이다.
DL(deep learning)에서는 hidden layer와 함께 nn(Neural networks)을 사용하여 hierarchical feature spaces를 찾는다.
우선 차원에 대해서 좀 더 공부해 보자.
d차원에서 두 점 a =(a1, a2,..., ad)와 b=(b1, b2,..., bd) 사이의 거리는 아래의 식으로 설명할 수 있다.
차원의 저주(Curse of dimensionality)
근데 d차원의 연속형 데이터에서 한 차원을 각각 100개의 구간으로 나눈다고 생각해 보자. 그럼 100^d 개의 칸으로 나누어질 것이고 이렇게 되면 한 점은 굉장히 큰 공간에서 극단적은 작은 점에 불구하게 된다.
위 사진과 같이 MNIST데이터 셋의 경우는 한 차원을 흑과 백만으로 구간을 나눈다고 하더라도 2^784개의 공간이 생기게 된다. 우리는 이것을 차원의 저주 라고 한다.