-
AI를 공부해보자 #10. Model Stealing-1 (Logistic Regression)Math/AI and Statistics 2026. 6. 30. 16:27
Model Stealing의 탄생 배경
2010년대, 아마존과 같은 빅테크 기업에 의하여 MLaaS (Machine Learning as a Service) 비즈니스 모델이 탄생하였다. 그들은 막대한 자본으로 개인이나 작은 기업은 상상도 못할 크기의 데이터센터와 컴퓨팅 파워를 구축한 후 데이터를 수집하여 모델을 학습시켰다. 이 학습시킨 모델의 파라미터와 동작은 서버에 숨긴 채, API를 통해 사용자로부터 호출을 받아 모델의 예측 결과를 반환해주는 서비스를 가동하기 시작하였다.
학습을 위해 막대한 연산량을 필요로 하는 모델 자체가 독점적인 비즈니스 자산이 된 것이다. 기업은 API 사용 비용을 판매하기 위하여 모델을 숨겨야 했다. 그러나, 완성된 모델에게 몇 번의 쿼리를 통해 해당 모델을 거의 정확히 복제할 수 있다는 것이 밝혀졌다. 특히, 과거에는 로지스틱 회귀나 Decision tree에 불과한 단순한 ML 모델이 공격의 대상이었다면, 현재는 트랜스포머와 같은 복잡하고 매우 거대한 LLM이 stealing 공격의 대상이 된다. LLM의 능력이 빠른 속도로 고도화 되고, 그 AI의 능력이 국가 안보에 실질적인 위협이 되고 있는 현재, model stealing 분야와 이를 막기 위한 노력에 대하여 자세히 공부해둘 필요가 있다고 생각하였다.
Model Stealing 시리즈는, 다양한 모델과 공격 시나리오에서 어떻게 모델을 복제할 수 있는지 공부한 내용을 정리한 글이다.
첫 번째 논문 : Stealing Machine Learning Models via Prediction APIs https://arxiv.org/pdf/1609.02943
위협 모델
ML 모델의 정의
ML 모델은 입력 공간 $X$와 출력 공간 $Y$에서 정의된 함수 $f: X \rightarrow Y$로 정의할 수 있다. 모델의 입력은 입력 공간 $X=X_1 \times X_2 \times \cdots X_d$의 $d$차원 벡터 $x \in X$이며, 모델의 출력은 정의한 문제에 따라 다양하다. Categorical 문제의 경우 $Y$는 0 또는 1의 실수값, $c$차원 1-hot vector의 집합 등 이산적인 값의 공간일 것이며, regression 문제의 경우 $Y$는 범위가 정해진 실수값의 공간일 것이다. 모델의 입력 $x \in X$에 대하여 출력은 $f(x)\in Y$가 된다.
모델에 대한 입력 또한 $X$에서 바로 이루어지지 않고, deterministic한 feature extraction function을 거칠 수도 있다. 이러한 경우, 실제 데이터 분포 $M$과 extraction function $e : M \rightarrow X$, 실제 데이터 $m \in M$에 대하여 출력은 $f(e(m)) \in Y$가 된다.
우선은, 간단하게 classification 문제에 집중해보자. 예측 대상인 $c$개의 클래스에 대하여 모델은 모든 클래스에 대한 confidence score (softmax 값 등)인 $c$차원 벡터 $f(x) \in R^c$를 반환할 수도 있고, 단순히 가장 가능성이 높은 클래스 인덱스 하나만 반환할 수도 있다. 이는 MLaaS provider가 설정하기 나름이라, 다양한 상황을 고려할 필요가 있다.
공격자의 목표
공격자는 MLaaS provider가 API 등으로 제공하는 black box 상태의 target model $f$를 비슷하게 approximate하는 $\hat{f}$를 찾는 것이 목표이다. 그 과정에서 아마존과 같은 막대한 자본과 컴퓨팅 파워를 사용하지 않고, API를 통한 $f$로의 최소한의 쿼리를 통해 $\hat{f}$를 추정해내는 것이 바로 model stealing이다.
공격 시나리오는 크게 두 가지로 나눌 수 있다. 우선 특별한 feature extraction 함수 없이 공격자의 입력 $x$에 대한 출력 $f(x)$를 바로 반환하는 경우다. 또는, 알려지지 않았을 수도 있는 extraction 함수 $e : M \rightarrow X$에 대하여 공격자는 $M$의 원소 $m$을 입력하면 내부적으로 $f(e(m))$을 계산하여 반환할 수도 있다.
Equation Solving Attack
만약 MLaaS가 가장 가능성이 큰 클래스 인덱스 하나만 반환하는 방법이 아닌 전체 confidence score 즉 클래스 개수 $c$에 대해 $y \in [0,1]^c$를 반환하는 방식으로 동작한다면, 놀랍도록 간단하게 본 모델을 복원해낼 수 있다.
1. Binary Logistic Regression
우선 클래스가 단 2개인 ($c=2$) 모델을 생각해보자. $d$차원 입력 $x$에 대하여 출력은 $f(x)=\sigma(wx+b)$이다. 즉, 단 $d+1$개의 파라미터 $w, b$만을 알아낸다면 전체 모델을 완벽하게 복원할 수 있는 것이다.
입력 $x$에 대한 oracle 출력 $y$에 대하여 $wx+b=\sigma^{-1}(y)$가 성립한다. 즉, 선형독립인 $d+1$개의 $x$를 입력하면 $w, b$를 완전히 구할 수 있다는 것이다. 정말 단순히 생각해서, 다음과 같은 공격 프로세스를 구성할 수 있을 것이다.
- $d+1$개의 선형독립인 입력 $x^{(1)}, x^{(2)}, \cdots, x^{(d+1)}$을 준비한다.
- MLaaS API에 $d+1$번 쿼리를 날려 출력값 $y^{(1)}, \cdots, y^{(d+1)}$을 얻는다.
- $z^{(1)}=\sigma^{-1}(y^{(1)}), \cdots, z^{(d+1)}=\sigma^{-1}(y^{(d+1)})$을 구한다.
- 파라미터 $W=X^{-1}Z$를 구한다.
2. Multiclass Logistic Regression
클래스가 $c>2$개여도 비슷하게 풀 수 있다. 모델이 softmax 함수를 사용하여, 입력 $x$가 $k$번째 클래스에 포함될 확률 (confidence score)를 $p_k$로 계산했다면 그 결과는 다음과 같다.
$$p_k=e^{w_kx+b_k}/\sum_{j=1}^ce^{w_jx+b_j}$$
Binary LR에서 sigmoid의 역함수를 이용해 $w, b$에 대한 선형 방정식으로 정리했던 것과 같이 multiclass 문제에서는 위의 식을 $w_k, b_k$에 대한 선형 방정식으로 정리해야 한다.
공격자가 클래스 하나를 기준 클래스로 정하여 다음과 같이 정리할 수 있다. (클래스 $K$를 기준으로 지정)
$$\begin{align} p_k/p_K&= e^{w_kx+b_k}/e^{w_Kx+b_K}=e^{(w_k-w_K)x+(b_k-b_K)}\\\mathrm{ln}(p_k/p_K)&=(w_k-w_K)x+(b_k-b_K)\end{align}$$
Softmax 함수의 특성상, 모든 클래스의 파라미터에 동일한 상수를 더하거나 빼더라도 최종 출력 확률은 변하지 않는다. 이는 다음과 같이 증명할 수 있다.
클래스 $k$에 대한 softmax 확률값을 $p_k=e^{w_kx+b_k}/\sum_{j=1}^ce^{w_jx+b_j}$으로 정의하자. 모든 클래스 $1, 2, \cdots, c$의 가중치 벡터 $w_1, w_2, \cdots, w_c$에 동일한 임의의 상수 벡터 $v$를 더하고, 편향 $b$에 임의의 상수 $d$를 더하여 다음과 같이 새로운 가중치 벡터를 정의하자. $w_i'=w_i+v, b_i'=b_i+d$ 새로운 가중치를 적용한 새로운 softmax 확률값은 다음과 같이 정리할 수 있다.
$$\begin{align}p_k'&=e^{w_k'x+b_k'}/\sum_{j=1}^ce^{w_j'x+b_j'}=e^{(w_k+v)x+b_k+d}/\sum_{j=1}^ce^{(w_j+v)x+b_j+d}\\&=e^{w_kx+vx+b_k+d}/\sum_{j=1}^ce^{w_jx+vx+b_j+d}\\&=e^{vx+d}e^{w_kx+b_k}/\sum_{j=1}^ce^{vx+d}e^{w_jx+b_j}\\&=e^{w_kx+b_k}/\sum_{j=1}^ce^{w_jx+b_j}=p_k\end{align}$$
따라서 모든 클래스 파라미터에 동일한 상수 벡터를 더하면 softmax를 통과했을 때 확률값은 변하지 않는다. 따라서 공격자가 클래스 $K$를 임의로 잡고 선형 방정식 $\mathrm{ln}(p_k/p_K)=(w_k-w_K)x+(b_k-b_K)$을 풀어서 $w_k'=w_k-w_K, b_k'=b_k-b_K$를 구한다면, 이 파라미터로 구성된 multiclass LR 모델은 본래 모델과 동일한 값을 출력할 것이다.
공격자는 입력 차원 $d$에 대하여 여전히 $d+1$번 쿼리한 결과를 토대로, 한 클래스를 기준으로 잡아 binary LR에서와 같은 방법으로 선형 시스템을 $c-1$번 연산하여 파라미터를 완벽히 추출할 수 있다.
'Math > AI and Statistics' 카테고리의 다른 글
AI를 공부해보자 #12. Model Stealing-3 Knockoff Nets (0) 2026.07.22 AI를 공부해보자 #11. Model Stealing-2 (MLP) (0) 2026.07.21 AI를 공부해보자 #9. RNN - Recurrent Neural Network (0) 2026.05.26 AI를 공부해보자 #8. Back Propagation for Multilayer NN (0) 2026.04.29 AI를 공부해보자 #7. Multi-class Regression (0) 2026.03.30