Deep Learning study

An Efficient Explorative Sampling Considering the Generative Boundaries of Deep Generative Neural Networks 본문

AI/papers

An Efficient Explorative Sampling Considering the Generative Boundaries of Deep Generative Neural Networks

HwaniL.choi 2020. 4. 19. 16:47
반응형

 

최근 generative network들이 많은 발전을 이루었음에도, 그 이미지 생성에대한 매커니즘은 여전히 잘 알려지지 않았습니다. 그래서 이 논문에서는 explorative sampling algorithm to analyze generation mechanism of DGNNs 을 소개합니다. 

이 방법으로 한 쿼리로 부터 동일한 특징을 가진 sample들을 효율적으로 얻을 수 있다고 합니다.  

 

Instoduction

일반적으로, 생성모델은 latent space의 한 점(point)을 data space의 한 샘플(sample)에 매핑(map) 합니다. 즉 데이터 인스턴스 들은 latent vector로 임베딩(embedded)되는 것이죠. 그런 latent space 는 모델의 구조로부터 나온 경계선들(boundaries)에 의해 나누어지게 됩니다. 그리고 그 공간의 vector들은 경계선의 양쪽 어디에 놓여있냐에 따라 생성정보를 표현하게 됩니다. 

이 논문은 이러한 특징들을 황용해서 모델의 생성 메커니즘을 설명하고자 합니다.

 

DGNN에서 내부의 layer하나와 한 latent vector를 선택할때, boundary들의 집합에 의해 형성된 상응하는 지역(region)이 존재합니다. ( boundary들이 둘러싸서 만들어진 내부 공간이 region입니다.) 그 region의 sample들은 같은 activation pattern을 보였고 비슷한 생성정보를 다음 layer에 전달했습니다.

전달된 정보가 어떤것 이냐는 것은 sample들로 만들어진 output들을 비교함으로 간접적으로 확인 가능합니다.  예를들어, 사람의 얼굴을 생성해내는 DGNN이 있다고 합시다. 만약 우리가 특정 머리 색깔은 공유하지만 다른 특성들(눈, 입.. 등등..)은 다양하게 존재하는 region을 알고있다면, 그 region은 같은 머리색의 생성에대해 관련이 있을 것입니다.

 

그러나 그 region으로부터 얻고싶은 특징을 가진 sample들을 얻어내는 것은 자명하지 않습니다(non-trivial).

 

1. 수천개의 generative boundary들이 생성 매커니즘에 관여합니다. 

2. input dimension의 선형적인 변환이 내부적인 유닛과 output에 매우 비 선형적인 변화를 가져올 수 있습니다.

 

이전의 예시들 다시 들면, 다른 머리색들, 다른 특징들  또는 그것들의 조합들로 이루어진 region이 존재할지도 모릅니다.  더욱이 latent space의 vector의 작은 선형적인 변환이 전체적인 output을 바꿀지도 모를 것입니다. 이러한 어려움을 해결하기 위해서, 대략적인 region을 확인하고 그 공간(space)를 탐험 할 수 있는 알고리즘이 필요합니다. 

 

이 논문에서 소개하는 알고리즘은 두 가지 스텝으로 구성되어있습니다.

 

1. DGNN은 아주 많은 boundary들을 가지고 있는데, 그것들 중 query에 관련된 주요한 boundary만을 Bernoulli dropout을 이용해 추려냅니다.

2.  query와 같은 특징을 공유하는 smaple들을 효율적으로 얻기위해 tree-like exploring structure를 이용합니다. 

 


Generative Boundary Aware Sampling in Deep Generative Neural Networks

 

이제 주된 내용인 the explorative generative boundary aware sampling(이하 E-GBAS)알고리즘을 소개합니다. 먼저 이 알고리즘에서 사용하는 용어(term)들을 정의하겠습니다. 

 

 Deep Generaetive neural networks

 

 많은 구조의 DGNN이 존재하지만 여기서는 통일된 구조로 표현합니다. 

 

L개의 layer를 가지며, DGNN의 G 함수는 다음과 같이 표현됩니다.

$$ G(z) = f_L (f_{L-1}(... (f_1 (z)))) = f_{L:1} (z), \mbox{ where z is a vector in the latent space } \mathcal{Z} \subset \mathbb{R}^{D_z} $$

$ f^{i}_{l:1}(.) $는 i번째 element이고 $ f_{l:1}(z) \in \mathbb{R}^{D_l} $입니다. 그리고 여기서 f는 linear transformation과 non linear activation functinon 모두 포함되어있습니다.

 

Generative Boundary and Region

 

DGNN의 latent space는 hypersurface들에 의해 나누어집니다. network들은 이런 boundary에 기반을 두고 생성해 냅니다. 논문에서 이러한 boundary들을 generative boudnary라고 칭합니다.

 

 

Definition 1 (Generative Boundary (GB)).

l번째 layer에서의 i번째 generative boundary는 다음과 같이 정의합니다.

$$ B^i_l = \{z \mid f^i_{l:1}(z) = 0 , z \in \mathcal{Z}\} $$

위의 정의에 대해서 조금 이해하고 넘어가보도록 하겠습니다.

 z라는 latent vector가 input으로 주어졌고 l번째 layer에서의 output은 $D_l$ 차원의 vector입니다. 이제 이 vector의 i번째 element가 0 인 것을 만족하는 z들의 집합 이  $B^i_l$입니다. 이 까지는 수식만 보면 누구나 알 수 있습니다. 그렇지만 이것이 의미하는 바가 무엇인지 조금 생각해 볼 필요가 있습니다. 즉 i 번째 element가 어떤 attribute를 표현하는 역할을 한다고 보는 것 입니다. 그러므로 0을 기준으로 활성화 되냐 안되냐에 따라 i번째의 element가 갖는 attribute가 나타나는지를 결정할 수 있을겁니다. 

 

또한 보통 l번째 layer에는 수많은 boundary들이 존재합니다. 그리고 그 boundary들의 배치가 region을 형성하게 됩니다. 우리는 그 boudnary들이 만들어 낸 region에 관심이있기 때문에, 우리는 region의 기본적인 구성요소인 halfspace의 정의를 내립니다.

 

 

Definition 2 (Halfspace)

$\mathbf{V}_l \in \{ -1,0,+1 \}^{D_l} $ 를 l번째 layer에 대한 halfspace indicator라 합시다. 각 element $ V^i_l $은 i번째 GB에 의해 나뉘어진 halfspace의 어느 한 쪽(-1, +1) 또는 양쪽 모두(0)를 가리킵니다.

Halfspace는 다음과같이 정의합니다.

$$ \mathcal{H}^i_l = \begin{cases} \mathcal{Z} & \mbox{if } V^i_l = 0 \\  \{ z \mid V^i_l f^i_{l:1}(z) \ge 0 \} & \mbox{if } V^i_l \in \{-1,+1 \}. \end{cases}$$

 

위의 정의가 잘 와닿지 않을 수도 있습니다. 한가지 예시로 쉽게 생각해 보도록 합시다. xy평면을 예로 들면, indicator (+1,-1)은 어디를 가리킬까요? x 가 양수인 부분과 y가 음수인 부분이니 제 4 사분면의 영역을 가리키게 되는겁니다. 또한 (0,+1)이라면 0은 x값은 어느값을 가져도 상관없다는 말이고 +1은 y값은 양수인 부분을 가져야 한다는 것 입니다. 따라서 x축 윗부분 모두가 해당되겠습니다. 여기서 0의 의미를 조금 더 생각해보면 0은 region을 형성하는데 있어서 아무런 역할도 하지 않는다는 뜻이 되겠습니다.

 

이처럼 $ \{ z \mid V^i_l f^i_{l:1}(z) \ge 0 \}$가 나타내는 말은 halfspace indicator와 f의 각 성분(element)들이 모두 같은 부호를 가지고 있는 z들의 집합입니다. 즉, 위의 예시처럼 같은 공간에 있는 vector들을 나타낸 것입니다. 이러한 공간을 Halfspace라고 정의하고 있는겁니다.

 

 

Definition 3 (Generative Region (GR))

l 번째 layer 의 halfspace indicator $\mathbb{V}_l$ 이 주어지고 이에 따른 halfspace들의 집합을  $\mathbb{H} = \{ \mathcal{H}^1_l,..., \mathcal{H}^{D_l}_l \}$ 이라고 합시다. 그렇다면 generative region $GR_{V_l}$은 다음과같이 정의됩니다.

$$ GR_{V_l} = \cap_{\mathcal{H} \in \mathbb{H} } \mathcal{H} $$

 

쉽게 이해하기 위해서 위 def2의 예시를 다시 빌려오도록 하겠습니다. indicator 가 (+1,-1)이라면 x좌표가 양수인 부분과 y좌표가 음수인 부분의 교집합이 됩니다. 다시말해 제 4 사분면을 의미합니다. 직관적으로 이해가 됐을거라 생각합니다.

 

Smallest Supporting Generative Boundary set

 

Decision boundary는 분류문제에서 매우 중요한 역할을 합니다. 같은 decision region에 있는 sample들이 같은 class label을 가지게 될 테니까요. 같은 맥락에서, generative boundary 와 region을 다루게 됩니다.

 

특히, 여기서 원하는것은 같은 generative region에 위치한 samples들을 수집하고 모델의 관점에서 동일한 attribute를 갖는 것 입니다. 이런 특징을 정의하기 위해서 neural representation을 공유하는 sample들의 조건을 정의합니다.

 

 

Definition 4 (Neural Representation sharing (NRS))

만약 아래의 조건을 충족한다면 주어진 latent vector $z_i, z_j \in \mathcal{Z}$들은 l 번째 layer에서 neural representation sharing condition을 만족합니다.

$$ sign(f^i_{l:1}(z_i)) = sign(f^j_{l:1}(z_j)),  \forall k \in \{1,2,...,D_l \} .  $$

 

위의 수식은 latent vector $z_i, z_j$가 l번째 layer에서의 결과에서의 모든 element들의 부호가 같다는 것을 의미합니다. 즉, 같은 region에 속해있습니다.

 

위의 조건을 만족시키는 sample들을 찾기란 사실상 매우 어렵습니다. 왜냐하면 수많은 generative boundary가 존재하기 때문입니다. 

위의 사진(a)에서 처럼 수천개의 generative boundary에 의해서 표현되는 다양한 정보들은 어떤 boundary들이 각 정보들을 나타내는지에대해 알아보기 힘들게 만듭니다.

그래서 중요한 boundary들의 집함만 생각함으로써 boundary들의 수를 줄이기로(relax) 합니다.

 

 

Definition 5 (Relaxed NRS)

subset S 와 latent vector 쌍 $z_i, z_j \in \mathcal{Z} $ 가 아래 조건을 충족한다면 relaxed neural representation sharing condition 이라고 합니다.

$$sign(f^k_{l:1}(z_i) = sign(f^k_{l:1}(z_j)), \forall k \in S \subset \{1,2,...,D^l \} $$.

 

이렇게 중요한 boundary들의 집합 relaxed NRS를 선택해야만합니다. 왜냐면 모든 node들이 중요한 정보를 전달하는 것은 아닐 것이기 때문입니다. 이런 subset들 중에서도 적은 영향을 주는 generative boundary들을 최소화 한 집합을 the smallest supporting generative boundary set(SSGBS)라고 합니다.

 

 

Definition 6 (Smallest Supporting Generative Boundary Set)

주어진 generator G 와 query $z_0 \in \mathcal{Z}$와 l번째 layer 그리고 임의의 실수 값 $\delta > 0$에 대해서, 만약 아래 식을 만족하는 어떤 indicator $\mathbb{V}^*_l$이 존재한다면 ...

$$ \lVert G(z) - G(z_0) \rVert \le \delta , z \in \{z \mid f_{l-1:1}(z) \in GR_{\mathbb{V}^*_l} \} $$

그리고 다음 식을 만족하는 어떠한 $ \mathbb{V}^{'}_l \text{  where  } \lVert \mathbb{V}^{'}_l \rVert_1 < \lVert \mathbb{V}^*_l \rVert $도 존재하지 않는다면.. 

$$ \lVert G(z^{'}) - G(z_0) \rVert \le \delta , z^{'} \in \{z^{'} \mid f_{l-1:1}(z^{'}) \in GR_{\mathbb{V}^{'}_l}  \} $$

 

그렇다면 ! the smallest supporting generative boundary set(SSGBS) 를  $\mathcal{B}_{\mathbb{V}^*_l} = \{ B^i_l \mid V^{*i}_l \ne 0 , i \in \{1,2,...,D_l \} $ 라 쓴다.

 

조건이 좀 많아 보이는데 다시 말해서, latnet vector z에 대한 l-1 번째 layer 에서의 output이 $GR_{\mathbb{V}^*_l}$에 속할때,  query $z_0$에 대한 함수값 $G(z_0)$와 $G(z)$의 distance가 $\delta$ 이하인 것을 만족하는  $V^*_l$는 가장 최소의 boundary를 가진다 정도로 보면 될 것 같습니다. 

 

V에 0이 많이 포함 될 수록 해당 boundary는 중요하지 않은 정보를 담고있으니 신경쓰지 않겠다 정도로 생각 할 수 있겠습니다. 이것을 생각하면 $ \mathbb{V}^{'}_l \text{  where  } \lVert \mathbb{V}^{'}_l \rVert_1 < \lVert \mathbb{V}^*_l \rVert $ 이 조건이 좀 쉽게 와닿을 것 입니다.

 

또한 이것과 같은 맥락에서, generative region $GR_{\mathbb{V}^*_l}$를 SSGBS에 상응하는 the smallest supporting generative region(SSGR)이라 씁니다.

 

그러나 최적의 SSGBS를 결정하기 위해서 모든 boundary들의 조합을 살펴보는것은 매우 비효율적입니다. (indicator를 구성하는 성분이 +1, 0, -1 이 있으므로 $3^N$가지가 되려나..요..? )

여튼 이러한 이유로 Bernoulli dropout 을 사용해 SSGBS를 언게됩니다. 이 dropout 함수를 다음과같이 정의합니다.

$$ \phi (h,\theta) = h\odot \theta, m \sim Ber(\theta) $$ 

$\odot$은 element-wise 곱을 나타냅니다. 

이제 다음의 손실함수 L을 최소화 함으로 최적의 $theta$를 찾게됩니다. 

$$ \theta^* = arg\min_{\theta}{L(z_0,l,\theta)} \\ = arg\min_{\theta} \lVert f_{L:l+1}(\phi (f_{l:1}(z_0),\theta)) - G(z_0) \rVert + \lambda \lVert \theta \rVert_1 $$

이 손실함수가 의미하는것은 Bernoulli mask의 sparsity가 적용되어 생성된 이미지의 degradation 정도를 수량화 한 것입니다.

그렇게 해서 gradient descent방법으로 최소화 시키고 나면 , SSGBS $\mathcal{B}_{\mathcal{V}^*_l}$ 을 얻게됩니다. 

이렇게 최적화 된 Bernoulli parameter $\theta^*$로 halfspace indicator $\mathbb{V}^*_l$을 정의합니다.  일정 확률값 이상을 가지게 되면 1이 되고 아니면 0이 되는 것이죠.(e.g., p=0.5)

$$ V^{*i}_l = \mathbb{I}(\theta^*>p) \dot sign(f^i_{l:1}(z_0))$$

그렇다면 0 이 되는 값은 중요하지 않은 GB이기 때문에 사라지는 것 입니다. 

이제 위의 식으로부터 SSGBS $\mathcal{B}_{\mathcal{V}^*_l}$와 SSGR $GR_{\mathcal{V}^*_l} $을 알 수 있게됩니다.

 

 

Explorative Generative Boundary Aware Sampling

 

이후는 이제 특별한 것은 없고 SSGR $GR_{\mathcal{V}^*_l} $를 알고 있으니 이 region의 sample들을 모을겁니다. 하지만 항상 이 sample들이 $GR_{\mathcal{V}^*_l} $에 속하는것을 보장하진 않습니다. 따라서 relaxed NRS를 보장하기 위해서 RRT(the rapidly-exploring random tree)를 모티브로 만든 exploration algorithm을 적용합니다. 

 

이러한 전체적인 sample exploration process를 explorative generative boundary aware sample(E-GBAS)라고 합니다. ... 

 

끝~! 뒤엔 실험내용인데 $\epsilon -based$와 비교한 내용 ! 한 번 읽어보시길 !! ㅎㅎ

 

 

Reference

[1] An Efficient Explorative Sampling Considering the Generative Boundaries of Deep Generative Neural Networks

반응형
Comments