알파고 이후 딥러닝(Deep Learning)은 매우 유명해졌다. 구글의 머신러닝 프레임워크(Machine Learning Framework)인 텐서플로(Tensorflow)도 등장했고, 수많은 딥러닝 논문이 쏟아졌다. 굳이 딥러닝을 사용하지 않아도 될 부분에도 딥러닝을 적용하는 문제가 발생하기 시작했다.

김창훈 대구대 컴퓨터정보공학부 교수와 윤성국 대구대 UCSL 연구원은 마소 391호에서 머신러닝의 허점을 분석했다. 두 사람은 취약점 공격을 통해 허점을 발견해 나갔다.

딥러닝의 취약점 중 오버피팅(Overfitting)이 있다. 오버피팅은 데이터가 부족할 때 발생한다. 적은 데이터로 많은 특성에 부합하는 함수를 생성하기 때문에 분산이 커져 정확도가 떨어진다. 공격자는 학습을 통해 오버피팅 지점(Overfitting Point)이 발생하는 곳을 노린다.

그동안 오버피팅을 극복하기 위해 많은 노력이 이뤄졌다. 노이즈 데이터보다 특성 데이터를 월등히 늘려 극복하는 방법, 최소 필수 특성으로 줄여 벡터(Vector) 공간의 차원을 줄이는 차원 축소(Reduce Dimension), 랜덤 노드를 비활성화시켜 학습에 적용하는 드롭아웃(Dropout) 등이 있다.

하지만 데이터가 아무리 많아도 학습 데이터로 모집단의 모든 특성을 나타낼 수 없다. 또한 차원이 복잡할수록 신경망은 유연해진다. 그래서 정규화를 거쳐 단단한(Robust) 모델이 될수록 딥러닝을 사용하는 의미가 없어진다. 위험성을 안고 사용하는 결과만 낳을 뿐이다.

공격대상 모델의 구성요소 / 마이크로소프트웨어 391호 발췌
공격대상 모델의 구성요소 / 마이크로소프트웨어 391호 발췌
김창훈 교수와 윤성국 연구원은 캐글(Kaggle)에 올라온 'Microsoft Malware Classification Challenge(BIG 2015)'의 데이터 세트를 활용해 악성코드 공격 실험을 진행했다.

실험 과정은 다음과 같다. 가상의 공격 대상 모델 A를 만들고, 다량의 랜덤 악성 데이터 입력해 모방모델 학습용 데이터세트를 만든다. 모델 B는 심층 네트워크(Deep Network)를 구성해 제작된 학습용 데이터세트로 구현한다. 모델 B에 데이터를 무차별 대입해 잘못 분류된 데이터로 적대적(Adversarial)인 데이터세트를 만든다. 적대적인 데이터세트를 모델 A에 주입해 결과를 평가한다.

김창훈 교수와 윤성국 연구원의 자세한 실험 결과는 '마이크로소프트웨어 391호(www.imaso.co.kr/archives/1301)'에서 확인할 수 있다.