-
AI를 공부해보자 #12. Model Stealing-3 Knockoff NetsMath/AI and Statistics 2026. 7. 22. 14:06
완전한 black box를 가정하고 모델의 functionality를 훔치는 것을 주 목적으로 하는 knockoff net에 대하여 공부해보았다.
https://arxiv.org/pdf/1812.02766
기존 model stealing 기법은 아무리 black box를 가정하더라도 공격자가 성공적으로 모델을 복제하기 위해 필요한 지식이 많았다. 공격 대상 모델의 구조, 대상 모델이 학습한 데이터셋의 분포 등 현실적으로 클라우드에서 API를 통해 서비스하는 모델에 대해서는 알기 어려운 조건들이었다. 이 연구에서는 CNN 모델 API를 서비스하는, 이미지를 입력하면 예측값만 나오는 black box 상황을 가정하고, 그럼에도 불구하고 공격자는 성공적으로 이 모델의 기능을 훔칠 수 있음을 보였다.
상황 설정

공격자의 목표는 black box로 서비스 하고있는 공격 대상 모델 $F_V:\mathcal{X} \rightarrow \mathcal{Y}$의 기능을 복제하여 knockoff 모델 $F_A$를 만드는 것이다.
피해자는 특정 task를 처리하는 CNN 모델을 학습하고 서비스한다. 우선 task-specific 한 이미지 데이터셋 $P_V(X) \subset \mathcal{X}$를 구하고 이를 바탕으로 $F_V$를 학습시킨다. 이후 API를 통해 입력받은 이미지 $x$에 대하여 $y=F_V(x)$를 출력하는 서비스를 개시한다.
공격자는 공격 대상 모델이 CNN이라는 사실을 알고 있으며, 입력 $x \in \mathcal{X}$를 선택하여 대상 모델에게 전달하면 $y=F_V(x) \in \mathbb{R}^K$를 전달받는다. 이때 $\sum_k^K y_k=1$이 성립한다. 즉 $y$는 입력 $x$에 대한 softmax 값이 되겠다. 공격자는 피해자가 사용한 task-specific 데이터셋 $P_V(X)$에 대한 정보와 CNN 모델의 구체적인 구조에 대한 정보, $K$개의 클래스에 대한 semantic 정보는 전혀 알 수 없다.
공격자는 다음과 같은 두 단계로 공격을 진행하여 $F_V$의 기능을 따라하는 모델 $F_A$를 만든다.
- API를 통해 대상 모델에게 질의하여 transfer set $D_{transfer}=\left\{(x_i, F_V(x_i))\right\}$구성
- Transfer set으로 $F_A$ 학습
Transfer Set Construction
공격자는 다음과 같은 과정으로 $F_A$를 효과적으로 학습시킬 수 있는 transfer set을 구성한다.
- 대규모 이미지 풀 $P_A(X)$ 준비. 이때 이 이미지 풀은 $P_V(X)$와 무관해도 상관 없다.
- $P_A(X)$의 이미지에 label 부여. 이미 존재하는 label을 써도 되고, 없다면 clustering하여 만들어도 된다. $F_V$와 일치할 필요가 없다.
- 어떤 정책 $\pi _t$로 label 중 하나를 선택하고, 해당 label에서 이미지 $x_t$를 선택한다.
- 공격 대상 모델에게 질의하여 $y_t=F_V(x_t)$를 얻는다.
- 이 값을 바탕으로 reward $r_t$를 계산한다.
- $(x_t, y_t)$는 transfer set에 추가하고, reward가 큰 label을 더 선택하도록 정책 $\pi _t$를 갱신한다.
정책 업데이트 과정
우선 저자들은 $P_A$를 진짜 아무거나 골랐다. 논문에서는 1,000개가 넘는 클래스로 분류되어있는 1.2M개 이미지 데이터셋 ILSVRC를 선택하였다. 이때 클래스들은 서로 무관하지 않고 계층 구조를 가진다. 예를 들면 '동물'클래스 하위에 '새' 클래스가 있고, 그 하위에 '독수리', '참새' 등이 존재하는 것이다. 정책을 구성할 때 이러한 계층 구조를 활용하였다.

Label을 하나 결정하기 위하여 부모 노드에서 자식 노드로 이동하며, 최종적으로 leaf 노드에 도달할 때 까지 선택을 반복한다. 이때, 어떤 자식 노드를 선택하는지가 바로 정책 $\pi_t$가 된다.
각 노드에 선호도 $H_t(z)$를 부여한다. 여기서 $t$는 time step을 뜻하며, $z$는 label을 말한다. 이후 왼쪽 그림의 파란색 화살표를 따라 부모 노드에서 자식 노드로 이동하는데, 선택 기준은 자식 노드의 선호도에 대한 softmax값을 구하여 정한다.
$$\pi_t(z)=\frac{exp H_t(z)}{\sum_z' exp H_t(z')}$$
그렇게 하여 최종 결정된 leaf 노드의 label에서 이미지를 가져와 대상 모델에게 질의하게 된다. 그렇게 하여 reward를 계산하고 정책을 업데이트하면, 피드백이 leaf 노드 뿐만 아니라 부모 노드에도 반영이 되어 효과적으로 transfer set을 구성할 수 있게 되는 것이다.
Reward
논문의 저자들은 세 종류의 reward를 제안하였다. 우선 cerianty reward는 대상 모델이 해당 이미지에 대하여 얼마나 확신을 가지고 예측을 했는지를 측정한다.
$$R^{cert}(y_t)=P(y_{t, k_1}|x_t)-P(y_{t, k_2}|x_t)$$
즉, 입력 $x_t$에 대하여 모델 출력에서 가장 큰 두 확률의 차이로 정의한다. 이 값이 클 수록 모델은 해당 예측에 확신을 가졌다는 뜻이 된다. 따라서 이 값이 클 수록 입력 이미지는 모델이 학습한 domain $P_V(X)$와 유사한 분포에서 나왔을 것이라고 생각할 수 있다.
두 번째는 diversity reward이다. Certainty만 최대화 하면, 한 클래스에 해당하는 이미지만 반복적으로 질의하게 될 수 있다. Diversity reward는 현재 응답이 최근 응답들의 평균과 얼마나 다른지를 측정한다.
$$R^{div}(y_{1:t})=\sum_k \mathrm{max}(0, \bar y_{t, k}-\bar y_{t-\Delta:t, k})$$
이때 $\bar y_{t-\Delta:t}$는 최근 $\Delta$번 동안 대상 모델 출력의 평균이다. 마지막 응답이 최근 나온 응답들과 크게 다를 수록 reward가 커지게 된다.
세 번째는 loss reward이다. Knockoff 모델을 학습할 때 공격 대상 모델과 차이를 학습해야 하므로, 대상 모델의 출력이 knockoff 모델과 큰 차이를 보이는 이미지를 학습에 활용할 수 있도록 선택하게 한다.
$$R^{\mathcal L}(y_t, \hat y_t)=\mathcal L (y_t, \hat y_t)$$
현재 knockoff 모델이 이미 공격 대상 모델을 잘 모방하는 이미지는 학습의 가치가 적다. 반대로 두 모델의 출력이 크게 불일치하는 이미지는 knockoff 모델이 아직 학습하지 못한 영역이므로 transfer set에 추가할 가치가 크다.
Learning the Policy
이제 입력에 대하여 위와 같이 reward를 계산한 다음 다음과 같이 각 노드의 선호도를 업데이트 해준다. 이렇게 업데이트 된 선호도를 바탕으로 policy가 다음 노드를 선택하게 된다.
$$H_{t+1}(z_t)=H_t(z_t)+ \alpha (r_t - \bar r_t)(1-\pi _t (z_t))$$
$$H_{t+1}(z')=H_t(z')+\alpha(r_t-\bar r_t)\pi (z'), \forall z' \neq z_t$$
이때 $\alpha$는 각 time step에 따른 learning rate이며 $r_t$는 앞서 정의한 reward의 조합이다. 저자들은 각 reward를 [0,1] 범위로 rescale한 후 적절한 baseline에서 뺀 후 더하였다고 한다.
이러한 방법론을 바탕으로 knockoff 모델을 학습시킨 결과, 최대 80%에 가까운 accuracy로 학습시킬 수 있었다고 한다.
Knockoff net은 공격자가 공격 대상 모델의 구조, 파라미터, 원래 학습 데이터에 접근하지 못하더라도, 공개된 외부 데이터에 예측값을 붙여 만든 transfer set만으로 기능적으로 유사한 모델을 학습할 수 있음을 보였다는 데 의의가 있다. 특히 분포가 완전히 다른 데이터도 충분히 활용할 수 있고, 제한된 API 질의 예산 아래에서 어떤 샘플을 질의할지 적응적으로 선택함으로써 모델 복제 효율을 높였다.
이는 API가 단순히 예측 결과만 공개하더라도 모델의 상당한 지식과 의사결정 경계가 유출될 수 있음을 실증했다고 볼 수 있다.
'Math > AI and Statistics' 카테고리의 다른 글
AI를 공부해보자 #14. DNN Fingerprinting by General Examples (0) 2026.08.28 AI를 공부해보자 #13. 한 토큰짜리 출력으로 LLM 모델 Fingerprinting하기 (0) 2026.07.30 AI를 공부해보자 #11. Model Stealing-2 (MLP) (0) 2026.07.21 AI를 공부해보자 #10. Model Stealing-1 (Logistic Regression) (0) 2026.06.30 AI를 공부해보자 #9. RNN - Recurrent Neural Network (0) 2026.05.26