6. Kernel Methods

패턴 인식 기술 중 학습 데이터 집합이 예측에도 쓰일 수 있도록 할 수 있다. 많은 선형 매개화 모델은 학습 데이터 기반 커널 함수 k(\mathbf{x}, \mathbf{x}^{\prime}) = \mathbf{\phi}(\mathbf{x})^{T} \mathbf{\phi}(\mathbf{x})의 선형 결합을 쌍대적 표현으로 가질 수 있다. 이를 이용해서 커널 트릭을 쓸 수 있는데, 이는 입력 벡터가 스칼라 곱으로 나타날 때 이를 다른 커널로 치환하는 것이다.

6.1. Dual Representations

회귀와 분류에 쓰이는 선형 모델은 커널 함수를 이용한 쌍대적 표현을 가질 수 있다. 가중치를 \mathbf{w} = \sum_{n=1}^{N} a_{n} \mathbf{\phi}(\mathbf{x}_{n}) = \mathbf{\Phi}^{T} \mathbf{a}로 나타내고 그램 행렬을 K_{nm} = \mathbf{\phi}(\mathbf{x}_{n})^{T} \mathbf{\phi}(\mathbf{x}_{m}) = k(\mathbf{x}_{n}, \mathbf{x}_{m})로 정의할 때 우리는 \mathbf{a} = (\mathbf{K} + \lambda \mathbf{I}_{N})^{-1} \mathbf{t}가 됨을 알 수 있다. 즉 선형 모델의 해는 커널 함수만으로 나타내어질 수 있다.

6.2. Constructing Kernels

커널이 올바른 커널인지 테스트하려면 어떻게 할까? 커널의 그램 행렬이 양의 준정칙이면 된다. 커널을 만들려면 어떻게 할까? 존재하는 커널로부터 여러 방법을 통해 만들 수 있다. 많이 쓰이는 커널은 다항식 커널, 가우시안 커널, 문자열 커널 등이 있다.

커널을 만드는 유용한 접근 방법은 확률적 생성적 모델을 쓰는 것이다. 생성적 모델은 데이터 유실에 대해 잘 대처할 수 있으며 은닉 마르코프 모델의 경우 가변 길이 열도 다룰 수 있다. 그에 반해 구별적 모델은 구별적 작업에 대해 생성적 모델보다 나은 성능을 보인다. 이를 결합하는 방법은 생성적 모델을 통해 커널을 정의하고 이 커널을 구별적 접근에 쓰는 것이다. 이런 접근법에는 피셔 커널 등이 있다.

6.3. Radial Basis Function Networks

기저 함수로 널리 쓰이는 함수는 방사 기저 함수 \phi_{j}(\mathbf{x}) = h(\lVert \mathbf{x} - \mathbf{\mu}_{j} \rVert)가 있다. 각 데이터마다 그를 중심으로 하는 기저 함수를 두는 것을 나다라야-왓슨 모델이라 한다.

6.3.1. Nadaraya-Watson model

g(\mathbf{x}) = \int_{-\infty}^{\infty} f(\mathbf{x}, t) dt, k(\mathbf{x}, \mathbf{x}_{n}) = \frac{g(\mathbf{x} - \mathbf{x}_{n})}{\sum_{m} g(\mathbf{x} - \mathbf{x}_{m})}일 때 y(\mathbf{x}) = \sum_{n} k(\mathbf{x}, \mathbf{x}_{n}) t_{n}으로 두는 것을 나다라야-왓슨 모델이라 한다.

6.4. Gaussian Processes

가우시안 과정은 함수에 대한 사전확률분포 자체를 정의하는 접근법이다. 학습 데이터 중 유한한 크기의 부분집합만 생각하면 되기 때문에 이 방법은 가능하다.

6.4.1. Linear regression revisited

선형 회귀에서 함수 y(\mathbf{x}, \mathbf{w})에 대한 분포 \mathbf{y} = \mathbf{\Phi} \mathbf{w}이 있으면 이는 가우시안이 되며 평균 \mathbf{0}, 공분산 \mathbf{K}가 된다. (K_{nm} = \frac{1}{\alpha} k(\mathbf{x}_{n}, \mathbf{x}_{m})) 이는 가우시안 과정의 일종이다.

6.4.2. Gaussian processes for regression

가우시안 과정에서 p(\mathbf{y}) = \mathcal{N}(\mathbf{y} | \mathbf{0}, \mathbf{K})이 된다. p(\mathbf{t}) = \int p(\mathbf{t} | \mathbf{y}) p(\mathbf{y}) d \mathbf{y} = \mathcal{N}(\mathbf{t} | \mathbf{0}, \mathbf{C}) (C_{nm} = k(\mathbf{x}_{n}, \mathbf{x}_{m}) + \beta^{-1} \delta_{nm}) 이다. 온라인 학습에서 p(t_{N+1} | \mathbf{t})의 평균은 \mathbf{k}^{T} \mathbf{C}_{N}^{-1} \mathbf{t}, 공분산은 \sigma^{2}(\mathbf{x}_{N+1}) = c - \mathbf{k}^{T} \mathbf{C}_{N}^{-1} \mathbf{k}이 된다. 이로부터 임의의 커널 함수에 대해 가우시안 과정의 예측분포를 정의할 수 있다. 수행 시간은 O(N^{3})이며, 각 테스트 점이 추가될 떄마다 O(N^{2})이 추가된다.

6.4.3. Learning the hyperparameters

가우시안 과정의 매개 모델의 초매개변수를 학습하려면 어떻게 할까? 로그가능도의 미분값은 다음과 같다.

\frac{\partial}{\partial \theta_{i}} \ln p(\mathbf{t} | \mathbf{\theta}) = -\frac{1}{2} \mathrm{tr}(\mathbf{C}_{N}^{-1} \frac{\partial \mathbf{C}_{N}}{\partial \theta_{i}}) + \frac{1}{2} \mathbf{t}^{T} \mathbf{C}_{N}^{-1} \frac{\partial \mathbf{C}_{N}}{\partial \theta_{i}} \mathbf{C}_{N}^{-1} \mathbf{t}.

이는 비볼록이기 때문에 경사 하강법 등을 이용해 최적화한다.

6.4.4. Automatic relevance determination

매개변수의 최대가능도추정을 통해 데이터들 중 상대적인 중요도가 떨어지는 입력들을 솎아낼 수 있다. 이를 자동 연관 판별이라 한다.

6.4.5. Gaussian processes for classification

가우시안 과정을 분류 문제에 적용했을 때 사후예측분포는 다음과 같다.

p(t_{N+1} = 1 | \mathbf{t}_{N}) = \int p(t_{N+1} = 1| a_{N+1}) p(a_{N+1} | \mathbf{t}_{N}) d a_{N+1}

이는 계산가능하지 않으므로 근사해야 한다. 3가지 방법이 있는데 첫째는 변분 추론, 둘째는 기대값 전파, 셋째는 라플라스 근사이다.

6.4.6. Laplace approximation

라플라스 근사를 p(a_{N+1} | \mathbf{t}_{N})에 수행하면 \mathcal{N}(a_{N+1} | \mathbf{k}^{T} (\mathbf{t}_{N} - \mathbf{\sigma}_{N}), c - \mathbf{k}^{T} (\mathbf{W}_{N}^{-1} + \mathbf{C}_{N})^{-1} \mathbf{k})이 된다. 이를 이용해 p(t_{N+1} = 1 | \mathbf{t}_{N})을 구할 수 있다.

공분산 함수에서의 매개변수 \mathbf{\theta}를 구하려면 로그 가능도 \ln p(\mathbf{t}_{N} | \mathbf{\theta}) = \Phi(\mathbf{a}_{N}^{\ast}) - \frac{1}{2} \ln \lvert \mathbf{W}_{N} + \mathbf{C}_{N}^{-1} \rvert + \frac{N}{2} \ln (2 \pi)를 최적화해야 한다. 이를 미분해 경사를 얻고 경사 하강법 등으로 최적화하면 된다.

6.4.7. Connection to neural networks

신경망에 의해 생성된 함수 분포는 은닉 요소가 많아질수록 가우시안 과정에 수렴하게 되는 관계가 있다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중