알고리즘 편향, 어떻게 측정하고 분석할 수 있을까
AI의 실체로서 머신러닝 알고리즘
머신러닝은 간단하게 설명하면 결정론적 함수식(deterministic function)이다. d라는 속성이 함수를 거쳐 Y라는 예측치를 도출하는 과정이다. Y가 한정돼있다면(남성, 여성 혹은 암환자, 정상환자) 함수는 곧 분류기(classfier)가 된다(Fredrikson 등, 2015). 대다수의 분류기는 분류값의 속성 벡터를 받아들여 분류하는 회귀함수이다. 즉, 높은 수준의 신뢰도(confidence)를 바탕으로 분류해내는 기계라는 의미다. 따라서 해당 알고리즘에 적용된 파리미터와 신뢰정도를 추적할 수 있으면, 해당 알고리즘에 적용된 모델을 통해 재구현해낼 수 있다.
f :Rd → Y (d: features)
De Laat(2017)은 알고리즘 편향이 개입되는 과정은 단계별로 분석해볼 필요가 있다고 제안했다. 열거하면 다음과 같다.
- 1단계 데이터 수집단계
- 2단계 알고리즘 모델링 단계
- 3단계 모델의 활용 단계
- 4단계 경쟁사와 차별화 단계
AI는 머신러닝 알고리즘을 기반으로 작동한다. 머신러닝 알고리즘은 다양한 세부 학습모델에 의해 구성되고 규정된다. SVM, Decision Tree, Logistic Regression, Neural Network 등이 대표적이다. 기본적으로 머신러닝은 트레이닝 데이터(training data)를 통해 모델을 구축되는 과정을 거친다. 주로 위에 예시된 알고리즘 타입을 선택한 뒤 hyper-parameter1 값을 조정함으로써 특별한 알고리즘으로 거듭나게 된다. 가중치나 bias 값 같은 model parameter와 달리 hyper-parameter는 사람이 직접 수동으로 입력해줘야만 하는 meta-parameter다. Hyper-parameter를 추적할 수 있다면, 해당 머신러닝 알고리즘의 재구축은 가능해진다는 의미다.
최근 들어 hyper-parameter 등을 추적함으로써 머신러닝의 실체를 복제 또는 재구현하는 연구들이 늘어나고 있다. 머신러닝을 역공학(reverse-engineering)해서, 동일한 머신러닝 모델을 재현하는 시도들이다. 알고리즘 편향을 증명하기 위해서는 우선 해당 알고리즘을 동일한 수준(f ~ f^)까지 재현하고 여기에 편향이 발생할 수 있는 새로운 데이터를 입력함으로써 편향의 정도를 파악하는 것이 효율적이라고 할 수 있다. 특히 재현된(복제된) 알고리즘에 편향 정보를 학습시켰을 때 어떤 예측치가 도출되는지 실체적으로 공개할 수 있다면, 알고리즘 편향의 위험성을 경고할 수 있다.
특정 알고리즘의 편향은 통상 수집된 데이터에서 발생한다. 머신러닝을 모델링하기 위해서는 일반적으로 트레이닝 데이터라 불리는 수집된 데이터군의 일부를 활용해야 한다. 만약 트레이닝 데이터에 편향이 스며들어 있다면, 이를 통해 학습된 알고리즘은 꾸준하게 편향을 발생시킬 가능성이 높아진다. 알고리즘 편향을 검증할 수 있는 최적의 방법은 알고리즘을 학습시킨 트레이닝 데이터의 확보라고 할 수 있다. 트레이닝 데이터를 검증함으로써 알고리즘이 어떤 편향을 낳게 될지 예측해볼 수 있는 것이다. 하지만 트레이닝 데이터는 기업의 기밀인데다 민감성 개인 정보를 담고 있는 경우(헬스데이터 등)가 적지 않아 검증 자체가 어렵다. 따라서 알고리즘 편향을 확인하기 위해서는 1단계로 특정 알고리즘의 모델을 역공학으로 탈취한 뒤 2단계 트레이닝 데이터를 재현해 검증하거나 3단계 준비된 검증 데이터를 입력해 편향의 정도를 실험하는 방식이 현실적으로 유효하다고 할 것이다.
최근 연구되고 있는 알고리즘 추출을 위한 공격 방식을 중심으로 알고리즘 편향을 검증하는 방법을 소개하고자 한다.
머신러닝 모델 해킹 : 리버스 엔지니어링
방법1 : 모델 추출 공격(Model Extraction Attack)
비적응적(non-adaptive) 랜덤 쿼리를 활용해 타깃 모델의 파라미터값을 풀어가는 방식이다. 이 방법은 신뢰값을 반환하는 다양한 종류의 머신러닝 알고리즘에 적용할 수 있는 공격 방식이다. Tramer(2016) 등은 이 공격 방식을 이용해 아마존의 머신러닝 알고리즘을 사실상 재구현해냈다. 이 방식은 머신러닝의 핵심 파라미터값을 역으로 추적하는데 이용된다. f(x)->y 라고 할 때, x 값을 데이터로 업로드 한 뒤 y값을 확인하고 실제값과 가장 가까운 데이터를 바탕으로 파라미터값을 역도출하게 된다. 이를 통해 머신러닝 알고리즘을 리버스 엔지니어링하는 과정은 다음과 같다.
* 1단계 : 공격용 임의의 데이터를 준비한다(서베이 데이터 등 활용)
* 2단계 : 머신러닝 클라우드 서비스에 임의의 데이터를 업로드 한다
* 3단계 : 공격의 시도
* 4단계 : 위협 모델(threat model)의 적용
모델 추출 공격은 고전적인 방식과 Tramer가 제안한 새로운 접근 방식 두 가지로 분류해볼 수 있다. 고전적인 방식은 membership queries로 임의의 input 데이터를 입력했을 때, out의 분류값을 반복적으로 확인하는 형태다. 예를 들어, 이미 답을 알고 있는 준비된 데이터를 바탕으로 특정 속성값을 해당 모델로 입력했을 때, 예측된 분류값이 어떻게 나왔는지 비교하면서 hyper-parameter를 역추적한다. 이를 통해 머신러닝의 학습모델에 해당 parameter 값을 도출함으로써 거의 유사한 머신러닝 알고리즘을 만들어낼 수 있다. Tramer가 제안한 방식은 confidence value로 모델을 추출하는 형태다. 구글이나 아마존처럼 머신러닝을 클라우드플랫폼으로 제공하고 있는 서비스들은 confidence value 를 공개하고 있다. 이는 일종의 확률값으로 이를 통해 머신러닝 모델을 탈취하는 것이 가능하다는 것이 Tramer의 설명이다.
방법 2 : 모델 전도 공격(Model Inversion Attack)
모델 추출 공격이 hyper-parameter의 추출을 통해 머신러닝 알고리즘을 유추하는 방식이라면 모델 전도 공격은 분류 확률을 최대화시키는 x라는 인풋값을 발견하기 위해 분류기(classfier)에 접근하는 모델이다. 얼굴 인식과 관련된 딥러닝 알고리즘의 분류 편향성을 측정하기 위해 활용될 수 있다. 모델 전도 공격에는 white-box attack2과 black-blox attack이 존재하는데, 효율은 전자가 더 높다는 평가다. 즉 적은 쿼리로도 알고리즘을 추출하는 것이 가능하다는 장점이 존재한다. 이를 실행하는 다음과 절차는 다음과 같다.
- 1단계 : 공개된 데이터를 준비한다
- 2단계 : 데이터에 대한 전처리 작업을 수행한다(빈 항목이 있는 row 제거 등)
- 3단계 : 편향성 분석 대상 알고리즘에 (y값은 제외)위 데이터를 업로드 한다(로컬 단위에서 실행도 가능)
- 4단계 : 위 데이터로 해당 알고리즘을 학습시킨다
- 5단계 : 학습된 알고리즘에 검증데이터를 입력해 혼동행렬(confusion matrix)과 마지널 프라리어(Marginal Priors) 을 확인한다
- 6단계 : 이를 통해 정밀도(precision)와 재현율(recall)을 계산한다
Fredrikson 등(2015)은 Model Inversion Attack이 Decision Tree 모델뿐 아니라 Multi-Layer-Perceptron 등에 확장이 가능하며 실제 적용한 사례를 실험하기도 했다. 무엇보다 공개된 설문결과의 데이터를 활용함으로써 기존 머신러닝 알고리즘의 주요 속성 값들을 도출했고, 높은 정확도로 대상 알고리즘을 재구성해냈다.
결론
머신러닝 알고리즘 모델의 추적의 열쇠는 트레이닝 데이터 세트(Training Data Set)가 갖고 있다. 해당 머신러닝 모델의 예측 정확도는 얼마나 품질 높은 트레이닝 데이터 세트로 학습했느냐에 달려있다. 트레이닝 데이터 세트가 균질하게 혹은 편향 없이 샘플링됐느냐가 이후 예측의 편향성에 깊게 관여하게 된다. 최선은 해당 머신러닝 모델이 학습한 트레이닝 세트를 확보하는 것이다. 하지만 해당 데이터는 민감 정보가 포함돼있을 가능성이 높아 기업으로서는 극비에 놓게 마련이다.
편향성 검증은 해당 알고리즘이 학습한 트레이닝 데이터 세트를 역으로 확인하거나, 학습된 알고리즘의 하이퍼파라미터 값을 추정해내는데서 출발할 수 있다. 이를 위해서는 알고리즘이 클라우드 형태로 서비스되거나 api를 공개함으로써 임의의 데이터에 의한 예측값의 관계를 검증자가 추정할 수 있어야 한다. 최근 들어 머신러닝이 클라우드의 서비스 형태로 제공되는 사례가 늘어나고 있다. 아마존뿐 아니라 구글, 마이크로소프트 등이 클라우드 플랫폼으로 머신러닝 알고리즘을 지원하고 있다. 네이버도 클라우드 플랫폼에서 머신러닝 알고리즘 서비스를 개시했으며 이는 편향성 검증의 가능성을 확보할 수 있는 기회를 제공하게 될 수 있다.
다만, Model Extraction Attack이나 Model Inversion Attack 방법을 활용한 편향성 검증은 서비스로서 제공되지 않는 알고리즘에 대해선 실행하기가 어렵다는 한계를 지니고 있다. 이를 보완할 수 있는 방법은 사회적 영향이 큰 알고리즘의 경우 투명성 이슈를 제기함으로써 서비스화를 유도하거나 Poisoning Attack을 통해 트레이닝 데이터를 교란시켜 결과값의 편향을 확인하는 것이다.
참고 문헌
- de Laat, P. B. Algorithmic Decision-Making Based on Machine Learning from Big Data: Can Transparency Restore Accountability?. Philosophy & Technology, 1-17.
- Fredrikson, M., Jha, S., & Ristenpart, T. (2015, October). Model inversion attacks that exploit confidence information and basic countermeasures. In Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security (pp. 1322-1333). ACM.
- Papernot, N., McDaniel, P., Goodfellow, I., Jha, S., Celik, Z. B., & Swami, A. (2017, April). Practical black-box attacks against machine learning. In Proceedings of the 2017 ACM on Asia Conference on Computer and Communications Security(pp. 506-519). ACM.
- Tramèr, F., Zhang, F., Juels, A., Reiter, M. K., & Ristenpart, T. (2016, August). Stealing Machine Learning Models via Prediction APIs. In USENIX Security Symposium (pp. 601-618).
-
Hyper-parameter는 k-nearest neighbors 알고리즘의 k값, dnn의 layer 수 등을 지칭한다. 학습 속도를 나타내는 learning rate도 hyper-parameter에 해당한다. ↩
-
whitebox와 blackbox는 해당 머신러닝 클라우드 서비스가 모델에 대한 설명을 어느 정도 제공하고 있느냐에 따라 구분할 수 있다. 어떤 타입의 머신러닝 모델 알고리즘을 활용하는지를 기술해뒀다면 whitebox로 볼 수 있고 이에 대한 정보를 전혀 제공하고 있지 않다면 blackbox라고 한다. BigML, 마이크로소프트 에저 ML은 whitebox에 해당한다.(Fredrikson, 2015) ↩