Deep Neural Networks are Surprisingly Reversible; A baseline for Zero-shot Inversion

|


Xin Dong, Hongxu Yin, Jose M. Alvarez, Jan Kautz, Pavlo Molchanov, H.T. Kung
[Harvard University, NVIDIA]
[Submitted on 13 Jul 2021 (v1), last revised 25 Oct 2022 (this version, v2)]

arXiv: https://arxiv.org/abs/2107.06304

난 v2이 있는줄 모르고… v1을 읽어버렸다..^^
v2의 경우, 내용 추가와 제목까지 바꿔버렸는데 바꾼 논문의 새 제목은 아래와 같다.
Privacy Vulnerability of Split Computing to Data-Free Model Inversion Attacks
안 읽어봐서 v1과 얼마나 다른지는 모른다 :)

Abstract

주어진 태스크의 실제 데이터를 보지 않고 모델의 last epoch checkpoint에 저장되어 있는 내부 representation으로만 input data를 재생성해내는 inversion framework를 제안하고자 함.
Attack 개념임.


1. Introduction

image

모델 inversion은 다음과 같은 효과가 있음

  • DNN이 어떤식으로 작동하는지와 각각 다른 깊이 (depth)에서 정보를 어떤 식으로 처리하는지에 대한 insighƒ를 줌
  • hidden activation에 접근이 가능한 상태일 때, 모델의 vulnerability를 분석이 가능함.

여태 제안되었던 방법들은 대부분 shallow architecture나 simple dataset을 대상으로 진행되었음.
즉, 실제 생활에서 많이 쓰이는 모델과 데이터셋에 대한 테스트 정보가 없거나 불가함.

이 논문은 zero-shot model inversion을 고려함.

  • zero-shot model inversion : 오리지널 데이터에 대한 접근 없이 타겟이 되는 pre-trained model만 주어져있을 때 original function mapping을 충실하게 reverse할 수 있는 inversion model을 생성하는 것.

또한, 저자들은 end-to-end 방식으로 바로 inversion 하는게 아닌, divide-and-conquer 전략을 통해서 층을 거꾸로 조금씩 inverse 해나가는 방식을 제안함.

3. Method

Notation

L 개의 layer를 가진 모델에 대해 $\textbf{x}$를 input으로 넣으면 아래 식.

\[\mathcal{F}_{1:L}(x):=\mathcal{F}_{L} \circ \mathcal{F}_{L-1} \circ \cdots \circ \mathcal{F}_{1}(\textbf{x})\]

$\mathcal{F}_{k}$ 은 k번째 parameterized layer를 의미.

본 논문에서는 ReLU보다 Leaky ReLU를 사용.

\(\mathcal{F}_{k:l}\) 은 k번째부터 l번째 layer 까지의 sub-network를 의미.

(예시: \(\mathcal{F}_{1:1}\) : 첫번째 레이어, $\mathcal{F}_{1:L}$ = 전체 네트워크)

문제를 노테이션으로 정의해보면 아래와 같음.
pre-trained network인 \(\mathcal{F}_{1:L}\)이 주어져있을 때, 오리지널 데이터셋 \(\mathcal{D}\)에 접근하지 않고 이 네트워크를 reverse하는 function인 $\mathcal{F}^{-1}_{1:L}$ 을 학습할 수 있을까?

더 정확하게는 새로운 function인, \({F}^{-1}_{1:L}:\mathcal{F}^{-1}_{1:L}(\mathcal{F}_{1:L})(\textbf{x})=\textbf{x}'\approx \textbf{x}\).
여기서 \(\textbf{x}'\)는 복원된 인풋 이미지를 의미.

3.1 Divide-and-Conquer Inversion

최근 연구들을 통해 모델의 capacity와 depth가 증가할수록 네트워크가 생성해내는 feature map들이 더욱 non-linear해지고 복잡해진다는 것을 알 수 있음.
즉, 그래서 inversion이 더욱 어려워짐.

저자들은 이 상황을 타개하기 위해서 쌓여있는 layer들을 몇몇의 layer-wise (또는 block-wise) sub problem으로 조각내서 푸는 Divide-and-Conquer Inversion (DCI) 전략을 소개함.

여기서 DCI가 일반적인 end-to-end 방식보다 좋은 점은 아래와 같음.

  • a single layer (또는 a single block)는 더 적은 non-linearity와 complexity를 가지기 때문에 invert하기 쉽다.
  • DCI는 layer 전반적으로 더욱 풍부한 supervision signal을 제공함. 반면, end-to-end는 타겟 모델의 두 끝단 (시작, 끝 layer) 간의 supervision만 사용할 수 있음.

첫번째 레이어부터 inversion을 시작함.
DCI는 각 레이어 \(\mathcal{F}_{k}\)를 두가지 목표를 가지고 Invert 함.

  1. 타겟 레이어인 \(\mathcal{F}_{k}\)를 invert 할 것.
  2. 새롭게 invert된 레이어인 \(\mathcal{F}^{-1}_{k}\) 는 모든 이전의 invert된 레이어들인 \(\mathcal{F}^{-1}_{1:(k-1)}\)와 완벽하게 잘 작동해야함.
    2번의 이유는 정확한 inversion이 이루어지지 않으면 전파 시 작은 delta들이 생기는데 이 delta들이 전파됨에 따라 더욱 큰 값으로 증폭되기 때문에 이를 방지하고자 하기 때문.

아무튼 위의 목표를 이루기 위해 accumulated error에 따라서 representation을 조정함.

\[\mathcal{L}_{layer} = \parallel \textbf{u}_k - \mathcal{F}^{-1}_{k}(\mathcal{F}_k(\textbf{u}_k)) \parallel_1, \quad \textbf{u}_k = \mathcal{F}_{1:(k-1)} (\textbf{x})\]

여기서 $\mathbf{u}_k$는 타겟 레이어의 input을 의미함.

두 번째 objective는 k번째 레이어까지 invert 시킨 function의 reconstruction quality를 보장하기 위해 추가.
얘는 original input \(\textbf{x}\)와 inverted input \(\textbf{x}' = \mathcal{F}^{-1}_{1:k}(\mathcal{F}_{1:k}(\textbf{x}))\) 사이의 distance를 최소화하도록 하여 해결함.

\[\mathcal{L}_{img}(\textbf{x}, \textbf{x}') = \parallel \textbf{x}-\textbf{x}' \parallel_1, \quad \textbf{x}' = \mathcal{F}^{-1}_{1:k}(\mathcal{F}_{1:k}(\textbf{x}))\]

3.2 Cycle-Consistency Guided Inversion

더욱 확실한 inversion을 위해 사이클(순환)을 적용해 reconstructed image의 quality를 높이고자 함.
직관적으로 reconstructed input image ($\textbf{x}’$)가 original input과 굉장히 유사하게 잘 생성되었다면 (pre-trained) direct model ($\mathcal{F}_{1:l}$) 을 통해 나온 둘의 representation도 유사한 값이 나와야 함.

그래서 reconstructed input 을 direct model에 다시 넣어서 representation을 비교하는것을 cycle consistency for inversion이라 함.

\[\mathcal{L}_{cyc}(\textbf{x}, \textbf{x}') = \sum^{L}_{l=1}\parallel \mathcal{F}_{1:l}(\textbf{x}) - \mathcal{F}_{1:l}(\textbf{x}')\parallel_1\]

지금까지 나온 objective들을 합쳐서 final objective를 보면 아래와 같음.

\[\mathcal{L}_{k} = \mathcal{L}_{layer}+\mathcal{L}_{img}+\alpha\mathcal{L}_{cyc}\]

여기서 $\alpha$는 하이퍼파라미터.

근데 위 식들을 보면 reconstruction objective (\(\mathcal{L}_{layer}\)) 에서 original input의 feature 값인 \(\mathcal{F}_{1:(k-1)} (\textbf{x})\) 를 사용하고 있고 cycle consistency loss (\(\mathcal{L}_{cyc}\)) 에서도 마찬가지로 original input의 feature를 사용하고 있음.

(사실 오리지널 데이터 접근없이 한다고하는데 코드가 공개되어 있지않아서 이해가 완전히 되지는 않음.. 혹시 아시는 분 계시면 댓글 남겨주시면 감사하겠습니다!!)

3.3 Training Strategy

DCI는 feed-forward neural network의 computation을 몇개의 파트로 나눠서 점진적으로 computational flow를 invert 한다.

한 가지 단순한 전략은 첫번째 레이어에서부터 k번째 레이어까지 inversion module들을 차례차례 optimize하는 방식이 있는데 이는 모델의 더 딥한 곳으로 진행할 때마다 inversion error가 더욱 축적이 된다는 문제가 발생함.

이를 완화시키기 위해서 저자들은 개선방안을 제안함.
특정 inversion module \(\mathcal{F}^{-1}_{k}\)를 optimize한 후, 모든 이전의 inversion module들을 고려하여 다시 k 번째 레이어까지 (즉, \(\mathcal{F}^{-1}_{1} \circ \cdots \circ \mathcal{F}^{-1}_{k-1} \circ \mathcal{F}^{-1}_{k}\)) 동일한 loss $\mathcal{L}_k$에 대해 finetuning하는 방식이다.

k=1 인 경우, 이전의 레이어가 없기 때문에 fine-tuning은 하지 않는다.

3.4 Data Sampling

전체적인 objective를 보면 여전히 input data $\textbf{x}$에 접근하는 것이 문제임.

target model이 generative model인 경우 (즉, GAN의 generator), Normal distribution (또는 Uniform)에서 random latent code들을 샘플링함으로써 input data를 얻는 것이 쉬움.
반면, classification 모델의 경우, 기본 이미지 분포에서 이미지를 알고있거나 샘플링을 할 수 없음.

DeepInversion 논문에서 uniform distribution $U(0,\mathcal{I})$ 에서 각각의 픽셀들을 독립적으로 샘플링하는 방식을 통해 input image들의 superset을 만드는 방식을 제안했지만, 이 방식은 real data랑 너무 다른 superset을 생성해낼 수 있고 실제 input data에서 너무 많은 정보를 잃은 상태의 superset을 생성해낼 수 있다고 저자들은 말한다.

본 논문에서 inverted model을 fine-tuning 하는 동안 original training data가 필요한 것 처럼 보이지만, 실제로는 모델 그 자체만으로도 해결이 가능함.

HOW? 합성 데이터 $\hat{x}$의 statistics와 batch normalization (BN) layer에 저장되어 있는 statistics간의 차이를 줄이는 방식을 채택

image

여기서 $\mu_{l}(\hat{x})$ 와 $\sigma_l^{2}(\hat{x})$은 $l$번째 레이어에 저장되어 있는 statistics를 의미 → synthetic data $BN_{l}(\mu)$와 $BN_{l}(\sigma^2)$는 $l$번째 BN layer에 저장되어 있는 moving average를 의미 → original data CE는 cross entropy이고 $\hat{y}$는 랜덤하게 지정된 레이블을 의미. 또한, $\mathcal{R}_{img}$는 만들어낸 이미지에 자연스러움을 더해주고자 추가한 total variance와 같은 보조적 regularization이라 생각하면 됨. (DeepInversion 참고)

사견

역시나 서베이를 위해 읽은 논문으로 실험결과와 결론은 과감히 생략함.. ㅎ
소스코드가 공개되어있었다면 더 이해가 잘 됐을 것 같은.. 아쉬움이 남는 논문.

Comments