Graph-based SSL
05_3 : Semi-Supervised Learning : Graph-based SSL
이번 글에서는 Graph 기반의 Semi-Supervised Learning을 알아보자.
Graph-based SSL
가장 기본적인 아이디어는 우리에게 주어진 Data instance들을 Graph의 Node로 표현하고, 각 Data들의 유사성을 Edge로 표현하는 것이다. 여기서 가정은 아래와 같다.
- A graph is given on the labeled and unlabeled data
- Instances connected by heavy edge tend to have the same label
구성된 Graph에 대하여 두 instance가 heavy edge, 강한 연결관계를 갖고있다면 두 Instance가 동일한 label일 가능성이 높다고 간주한다.
Graph Construction
- Nodes : X_l \cup X_u
- Edges : Similarity weights computed from features, e.g.
- K-nearest neighbor graph : Unweighted (0 or 1 weights)
- Fully connected graph, weight decays with distance
w_{ij} = exp \big(\frac{-||x_i - x_j ||^2} { \sigma^2 } \big)
- \epsilon-radius graph
K-nearest neighbor (KNN) 방법은 가장 가까운 K개를 1 weight로 연결한다. 때문에 data의 밀도를 고려하지 못하는 단점이 있다.
Fully connected graph의 경우, 모든 경우를 표현하지만, Graph의 크기가 너무 커진다는 단점이 있다.
\epsilon-radius graph 방법은, 거리가 일정 Cut-off 이하인 Node들 만을 Edge로 연결한다. 이 경우 data의 밀도를 고려 가능하지만, 모든 instance가 연결된다는 보장이 없다는 단점이 있다. (isolation point나, 그룹간 단절이 일어날 수 있다) 때문에 일반적으로 Minimum Spanning Tree(MST)와 같은 알고리즘을 사용해 독립된 그룹들을 적어도 하나씩의 Edge로 이어주는 작업을 수행해 준다. 이렇게 해 주어야 Label이 모두 Propagate가능하다.
위와 같은 Graph construction이 완료되면 이제 heavy edge 관계를 찾아, Unlabeled data를 labeling해준다.
위 예시를 보자. Labeled data x_1, x_2가 있고, Unlabeled data x_3가 있다. 굵은 선 Edge들이 heavy edge라고 할 때 x_3의 label은 파란색일 가능성이 더 높다.
P(blue) > P(red)
Optimization problem
이제 우리가 원하는 동작을 수행 가능하도록 최적화 문제를 formulate 해보자.
- The mincut algorithm
▶Fix y_l and find y_u \in \{0,1\}^{n-l} to minimize \sum_{i,j} w_{ij} | y_i-y_j |
Labeled 된 data의 값은 절대 변하면 안된다. 이 값을 고정하고, \sum_{i,j} w_{ij} | y_i-y_j | 식을 최소화 하는 y_u값들을 찾는다. 이때 y_u값들은 반드시 0 혹은 1이어야 한다.
두 instance간의 거리가 가까워서 weight w_{ij}가 크다면, 두 instance의 label이 같아야 한다. 반면 w_{ij}가 작다면, 두 instance label이 같지 않아도 된다.
▶Equivalently, solve the optimization problem :
\min_{y\in \{0,1\}^n} \infty \sum_{i=1}^l (y_i - y_{li})^2 + \sum_{i,j} w_{ij} (y_i - y_j)^2
Labeled 된 data의 값을 고정하는 조건을 \infty \sum_{i=1}^l (y_i - y_{li})^2과 같이 나타낸다. 만약 하나라도 label과 값이 다르다면 \infty가 곱해져서 최소화 문제를 만족하지 못할 것이다. 그리고 나머지 \sum_{i,j} w_{ij} (y_i - y_j)^2 term은 위의 식에서 norm으로 차이를 나타내는 것을 미분을 쉽게하기 위해 제곱항으로 나타낸다.
이 최적화 문제는 Combinatorial problem으로, polynomial time solution이 존재한다.
- Harmonic function
위의 제약조건을 좀 완화시켜보자. 먼저 y_u값이 반드시 Discrete한 0 또는 1 값을 가져야 한다는 제약조건을 Harmonic function f를 사용하여 Continuous 한 값을 가질 수 있다고 완화(Relaxation)할 수 있다.
f(x_i) = y_i\;\;\;\;for\;\;i=1,2,\cdots, l
그렇다면 Energy function를 minimize 하는 f를 찾는 것이 우리의 목표가 된다.
\sum_{i\sim j} w_{ij} (f(x_i) - f(x_j))^2
이때의 Solution은 Gaussian random field의 평균이 되기 때문에, f(x_i)는 neighbor들의 평균이 된다.
f(x_i) = \frac{\sum_{j\sim i} w_{ij} f(x_j)}{\sum_{j\sim i} w_{ij}},\;\;\;\; \forall x_i \in X_u
위 식을 Graph Laplacian을 사용해 표현해보자.
- Graph Laplacian
우선 graph Laplacian이 무엇인지 알아보자.
X_l \cup X_u 총 n개의 instance들에 대하여 n \times n weight matrix W가 있다고 가정하자. 이 행렬은 Symmetric 하고 non-negative하다.
이때 Diagonal degree matrix D와 Graph Laplacian matrix \Delta는 다음과 같이 정의된다.
D\;:\;D_{ii} = \sum_{j=1}^n W_{ij}
\Delta = D-W
아래 예시에서 Degree matrix D에 Adjacency matrix W를 빼서 Laplacian matrix \Delta를 만든 것을 확인할 수 있다.
이제 Graph Laplacian을 사용하면 위의 Energy function을 행렬을 사용해 나타낼 수 있다.
\frac{1}{2}\sum_{i\sim j} w_{ij} (f(x_i) - f(x_j))^2 = \mathbf{f}^T \Delta \mathbf{f}
여기서 \mathbf{f}는 각 x_i값들에 대한 f(x_i)값을 차례로 모아놓은 vector이다.
어떻게 두 식이 같아지는지 증명해보자. 먼저 우측항을 정리해보자.
\begin{align*}\mathbf{f}^T \Delta \mathbf{f} &= \mathbf{f}^T (D-W) \mathbf{f}\\&=\mathbf{f}^T D \mathbf{f} - \mathbf{f}^T W \mathbf{f}\end{align*}
\begin{align*}\mathbf{f}^T D \mathbf{f} &= \begin{bmatrix}f(x_1)&\cdots &f(x_n)\end{bmatrix}\begin{bmatrix}D_{11} & \cdots & 0\\ & \ddots & \\ 0 & \cdots & D_{nn} \end{bmatrix} \begin{bmatrix}f(x_1)\\ \vdots \\ f(x_n)\end{bmatrix}\\ &=f(x_1)D_{11}f(x_1) + \cdots + f(x_n)D_{nn}f(x_n) \\ &= \sum_{i=1}^n \sum_{j=1}^n f(x_i) w_{ij} f(x_i) \end{align*}
\begin{align*}\mathbf{f}^T W \mathbf{f} &= \begin{bmatrix}f(x_1)&\cdots &f(x_n)\end{bmatrix}\begin{bmatrix}W_{11} & \cdots & W_{1n}\\ & \ddots & \\ W_{n1} & \cdots & W_{nn} \end{bmatrix} \begin{bmatrix}f(x_1)\\ \vdots \\ f(x_n)\end{bmatrix}\\ &=f(x_1)\sum_{i=1}^n w_{1i}f(x_i) + \cdots + f(x_n)\sum_{i=1}^n w_{ni}f(x_i)\\ &= \sum_{i=1}^n \sum_{j=1}^n f(x_i) w_{ij} f(x_j) \end{align*}
\begin{align*}\mathbf{f}^T \Delta \mathbf{f} &=\sum_{i=1}^n \sum_{j=1}^n f(x_i) w_{ij} f(x_i) - \sum_{i=1}^n \sum_{j=1}^n f(x_i) w_{ij} f(x_j) \\ &= \sum_{i=1}^n \sum_{j=1}^n w_{ij}(f(x_i)^2 - f(x_i)f(x_j) )\end{align*}
이제 좌측항을 정리하여 우측항과 같아짐을 보일 것이다.
\sum_{i\sim j}는 i와 j가 다른 모든 경우를 합산한다. 그런데 (f(x_i) - f(x_j))식을 보면 i=j인 경우 0이 됨을 확인할 수 있다. 따라서 \sum_{i\sim j}을 \sum_{i=1}^n \sum_{j=1}^n으로 표현 가능하다.
\begin{align*} \frac{1}{2}\sum_{i\sim j} & w_{ij} (f(x_i) - f(x_j))^2 \\ &= \sum_{i=1}^n \sum_{j=1}^n \frac{1}{2} w_{ij} (f(x_i) - f(x_j))^2 \\ &=\sum_{i=1}^n \sum_{j=1}^n \frac{1}{2} w_{ij} (f(x_i)^2 + f(x_j)^2 - 2f(x_i)f(x_j))\\ &=\sum_{i=1}^n \sum_{j=1}^n w_{ij} (f(x_i)^2 - f(x_i)f(x_j))\end{align*}
위의 유도과정을 통해 좌측항과 우측항이 서로 같음을 확인할 수 있다.
- Harmonic solution with Laplacian
이제 위의 Laplacian matrix를 사용하여, 우리가 최소화 하고자 하는 Energy function은 아래와 같이 표현할 수 있다.
L = \min_{f} \infty \sum_{i=1}^l (f(x_i) - y_i)^2 + \mathbf{f}^T \Delta \mathbf{f}
우리는 Harmonic function을 사용하여 y_u값이 반드시 Discrete한 0 또는 1 값을 가져야 한다는 제약조건을 Continuous 한 값을 가질 수 있다고 완화(Relaxation)하였다(\mathbf{f}^T \Delta \mathbf{f}).
하지만 여전히 y_l값은 고정된다는 조건을 명심해야 한다(\infty \sum_{i=1}^l (f(x_i) - y_i)^2).
이 경우의 최적해는 미분 값이 0이어야 한다.
\frac{\partial L}{\partial \mathbf{f}}= 0\;\;\;\;\Rightarrow \;\;\;\;\Delta \mathbf{f} = 0
※ Vector 미분 : \frac{\partial (\mathbf{x})^T W (\mathbf{x})}{\partial \mathbf{x} } = 2W(\mathbf{x})
Laplacian matrix \Delta는 아래와 같이 분할하여 표현할 수 있다.
\Delta = \begin{bmatrix} \Delta_{ll} & \Delta_{lu} \\ \Delta_{ul} & \Delta_{uu} \end{bmatrix}
\Delta f = 0을 이용하여 Harmonic solution을 구해보자.
\Delta f = \begin{bmatrix} \Delta_{ll} & \Delta_{lu} \\ \Delta_{ul} & \Delta_{uu} \end{bmatrix} \begin{bmatrix} f_l \\ f_u \end{bmatrix} = 0
\Delta_{ul}f_l + \Delta_{uu}f_u = 0
f_u = -\Delta_{uu}^{-1} \Delta_{ul} y_l \;\;\;\;\;\;(y_l = f_l)
지금까지 설명에서는 그냥 Laplacian matrix을 사용했지만, 일반적으로 계산의 안정성을 위해 Normalized Laplacian matrix를 사용한다.
\mathcal{L} = D^{-\frac{1}{2}} \Delta D^{-\frac{1}{2}} = I - D^{-\frac{1}{2}} W D^{-\frac{1}{2}}
- Problems with Harmonic solution
위의 Harmonic Solution은 여전히 y_l값은 고정한다는 조건이 있다. 이 제약조건으로 인해 문제가 발생할 수 있는데, Noise나 Outlier와 같은 문제로 인해서 하나의 label이라도 잘못되었다면 위 Model은 이 상황을 잘 대처할 수 없다.
우리가 원하는 것은 주어진 label과 다르게 예측하더라도 Flexible하게 대처가 가능한 Model이다.
Model을 새롭게 정의해보자.
▶ Allow f(X_l) to be different from y_l but penalize it
▶ Introduce a balance between labeled data fit and graph energy
\min_{f} \sum_{i=1}^l (f(x_i) - y_i)^2 + \lambda \mathbf{f}^T \Delta \mathbf{f}
f(X_l)이 y_l과 다른 값을 가질 수 있도록 \infty를 제거하고, 그 대신 다르다면 penalty를 준다. 이때 Hyperparameter \lambda를 사용하여 penalty의 trade-off를 조정한다.
위 조건식을 아래와 같이 행렬식으로 표현가능하다.
\min_{f} (\mathbf{f}-\mathbf{y})^T(\mathbf{f}-\mathbf{y}) + \lambda \mathbf{f}^T \Delta \mathbf{f}
\mathbf{y} = \begin{bmatrix} \mathbf{y}_l\; ; & 0 &\cdots & 0 \end{bmatrix}
\mathbf{y}는 labeled data에 대해서는 label 값을, unlabeled data에 대해서는 0값을 가진다.
이때 최적해의 미분값은 0임을 이용해 solution을 구해보자.
\frac{\partial E} {\partial \mathbf{f}} = (\mathbf{f}-\mathbf{y}) + \lambda \Delta \mathbf{f} = 0
※ Vector 미분 : \frac{\partial (\mathbf{x} - \mathbf{s})^T W (\mathbf{x} - \mathbf{s})}{\partial \mathbf{x} } = 2W(\mathbf{x} - \mathbf{s})
- Solution
(I+\lambda \Delta) \mathbf{f} = \mathbf{y} \;\; \Rightarrow \;\; \mathbf{f}= (I+\lambda \Delta)^{-1} \mathbf{y}
만약 \lambda가 크다면, \lambda \Delta의 영향이 커진다. 따라서 y_l의 label을 일부 바꾸더라도 model의 Smoothness에 초점을 맞춘다.
반면 \lambda가 작다면, \lambda \Delta의 영향이 작아진다. 따라서 y_l의 label을 정확하게 지키는 것이 초점을 맞춘다.
엄밀히 말하자면 Graph-based SSL은 Semi-Supervised Learning 보다는 Transductive Learning에 가깝다. 왜냐하면, 새로운 test data x_{new}가 주어졌을 때 바로 model에 적용할 수 없고, x_{new}를 포함하는 새로운 그래프를 구성하여 새롭게 Solution을 구해야 하기 때문이다.
Exemples
다음 예시를 보자.
\mathbf{f}= (I+\lambda \Delta)^{-1} \mathbf{y}에 대하여 |\mathbf{f}_u| 값이 일정 threshold를 넘으면 해당 instance를 labeling 한다. 넘지 않으면 계속 unlabel된 상태로 유지한다.
(만약 Threshold가 0.7이라면 |\mathbf{f}_u| > 0.7인 instance들 만을 labeling 한다)
그리고 갱신된 data에 대하여 다시 Graph를 구성하고 solution을 구한다. 이러한 iteration을 반복하는 모습이 위의 진행과정으로 나타난다.
- Colliding Two moons
Graph based SSL이 잘 분류하지 못한다고 공격받는 예시가 있다. 아래와 같은 두개의 함수가 겹쳐있는 모양이다.
※ 이 글은 고려대학교 산업경영공학과 강필성 교수님의 IME654 강의를 정리하고, 공부한 내용을 추가하여 작성되었습니다.
댓글
댓글 쓰기