신경망에 대한 적대적 공격에 대응하기 위한 툴, 'BaRT'
상태바
신경망에 대한 적대적 공격에 대응하기 위한 툴, 'BaRT'
  • 엔비디아
  • 승인 2019.11.22 09:35
  • 댓글 0
이 기사를 공유합니다

인공지능(AI)은 실생활에 다양한 방식으로 영향을 미치고 있다. 넷플릭스의 콘텐츠 추천 시스템, 자율주행자동차, 딥러닝 등은 이제 우리 생활 전반에서 널리 접할 수 있는 기술이며, 어떤 핵심적인 결정을 내릴 때도 AI의 도움을 받는 사례가 증가하고 있다. 최근 AI가 일상 전반에 깊숙이 스며들다 보니 AI가 자칫 ‘안전하고 오류를 일으키지 않는 기술’이라고 오해할 수 있지만, 이는 잘못된 생각이다.

누군가는 악의적으로 딥러닝이 시스템에 입력된 데이터를 잘못 해석하도록 조작해 잘못된 답변을 내리도록 만들 수 있다. 따라서 이번 글에서는 이런 의도적인 오류를 예방하고 사람들이 어려운 AI 시스템을 지속해서 신뢰할 수 있도록 만드는 방안을 소개한다.

사진=게티이미지뱅크

2012년 이안 굿펠로우(Ian Goodfellow)는 팀원들과 함께 컴퓨터 비전(Computer vision)에 인공지능 신경망을 적용하는 과정에서 신경망이 특이하게 반응하는 지점을 발견했다. 이미지의 픽셀 값을 사람의 눈으로는 감지할 수 없는 수준으로 교란하면 신경망이 계산 착오를 일으켜 새로운 분류에 높은 확률을 지정함으로써 잘못된 판단을 내리게 할 수 있다는 사실을 깨달은 것이다.

예를 들어, 개와 고양이를 분류하기 위해 신경망을 생성한 후 교란된 개의 이미지를 인식시키면, 사람이 봤을 땐 그 이미지가 개에 더 가까워 보일지라도 신경망은 이미지를 확률적으로 고양이에 더 가깝다고 분석한다는 것이다.

아래 그림을 보면 원본 이미지와, 교란 이미지, 그리고 이 두 이미지를 결합한 최종 이미지가 나란히 배열된 것을 볼 수 있다. 이 현상을 적대적 사례(Adversarial example)라고 하는데 과거에는 컴퓨터 비전에만 적용되다가 지금은 오디오 탐지 같은 모든 신경망 애플리케이션으로 확대됐다.

(a): (좌측부터 순서대로)정확하게 분류된 원본 이미지, 두 이미지의 차이점, 잘못 분류된 교란 이미지 / (b)는 (a)와 동일하지만 오른쪽 열(가전, 사마귀, 강아지)은 ‘타조’로 분류됐다.
(a): (좌측부터 순서대로)정확하게 분류된 원본 이미지, 두 이미지의 차이점, 잘못 분류된 교란 이미지 / (b)는 (a)와 동일하지만 오른쪽 열(가전, 사마귀, 강아지)은 ‘타조’로 분류됐다.

이런 교란 현상은 고차원 공간에서 신경망의 선형성을 이용해 적절한 픽셀을 선정하고 분류자의 결정 범위가 아닌, 다른 분류를 의도적으로 선택하게 한다. 또한, 이동성이라는 고유한 특성이 있어 유사한 데이터를 학습한 신경망에 적대적 사례가 보다 효과적으로 적용될 수 있다.

신경망 학습용으로 개발된 동일한 최적화 툴을 적대적 공격을 좀 더 쉽게 실행하기 위한 측면에서 활용할 수도 있다. 덕분에 새로운 공격에 대한 연구를 빠르고 효율적으로 할 수 있게 됐으며, 새로운 방어책을 개발하면 새로운 공격으로 그 방어책을 무력화하는 쫓고 쫓기는 게임이 시작되고 있다.

뒷부분에서는 적대적 학습(Adversarial training)과 그라디언트 마스킹(Gradient masking)과 같이 초기에는 최첨단 방어책이라고 여겨졌으나 결국에는 외부 공격에 무너져버린 방어책들에 대해 알아볼 것이다. 이와 함께 BPDA와 EOT 등의 방어책을 무너뜨린 공격에는 어떤 것들이 있는지 알아보자. 마지막으로, 앞서 설명한 툴 대비 훨씬 효과적일 것으로 기대되는 엔비디아의 최신 방어책, 무작위 변경 사격(Barrage of Random Transforms, 이하 BaRT)을 소개할 것이다. 이 글을 접한 모든 이들이 AI 시스템이 현재 직면한 문제를 더욱 잘 이해해 시스템을 구축할 때 보안에 중점을 두고 구축하길 바란다.

 

적대적 사례 방어법

신경망에 교란 공격이 가해지지 않도록 예방법을 모색하는 연구가 다수 진행되고 있다. 현재 대다수의 연구가 누가 봐도 판다로 인식하는 이미지를 네트워크가 자신 있게 ‘긴팔원숭이’로 분류하는 경우와 같은 사례에 대해 진행되고 있다. 이 사례는 자율주행차와 같은 미래 응용 분야 영역에서 교란 공격이 왜 문제가 되는지를 되짚어준다. 그렇다면 어떻게 이런 공격을 방어할 수 있을까?

적대적 사례를 빠르게 생성하는 방법. 이미 55.7%의 확신도로 판다로 분류가 완료된 이미지 위에 미세한 교란 이미지가 겹쳐 보일 경우, 신경망이 이 그림을 99.3%의 확신도로 긴팔원숭이(gibbon)로 분류하는 심각한 오류를 초래할 수 있다.
적대적 사례를 빠르게 생성하는 방법. 이미 55.7%의 확신도로 판다로 분류가 완료된 이미지 위에 미세한 교란 이미지가 겹쳐 보일 경우, 신경망이 이 그림을 99.3%의 확신도로 긴팔원숭이(gibbon)로 분류하는 심각한 오류를 초래할 수 있다.

가장 잘 알려진 방법 중 하나는 이안 굿펠로우 팀이 이 주제에 대해 쓴 논문에서 실행한 적대적 학습이라는 방법이다. 상당히 간단한 방법으로, 신경망에서 학습한 적대적 사례를 학습 데이터셋에 추가해 신경망이 추가로 학습하도록 하는 것이다. 다만 적대적 학습을 하려면 학습 단계마다 새로운 공격을 가해야 하고 강력한 공격일수록 반복 학습이 중요하므로 결국 학습 시간이 거의 10배나 더 소요된다.

이는 이미지 중심의 작업이므로, 우선 입력된 데이터를 이미지 변경 공식 \hat{x}=t(x)에 적용한 뒤에 \hat{x}를 분류하는 방법을 선택하기 쉽다. 이후에 블러(Blurring), 줌(Zooming), 파장 디노이징(Wavelet denoising)을 적용해 작은 이미지 교란 요소를 삭제하는 방법도 있을 수 있다. 만약 이 방식을 택할 경우, 문제 해결을 위해 엔비디아의 도메인 지식(Domain knowledge)을 사용할 수도 있을 것이다. 이렇게 하면 이미지 처리 작업 중 이미지의 의미를 바꾸지 않으면서 이미지를 교체할 수 있다.

하지만 아니쉬 아타일(Anish Athalye), 니콜라스 칼리니(Nicholas Carlini), 데이빗 와그너(David Wagner)는 이 방법이 성공한 것처럼 보였던 이유가 그라디언트 마스킹이나 확률 그라디언트(Stochastic gradients)때문이라며, 해당 방어책을 뚫을 수 있는 방법을 제시했다.

이 게임에서 공격자, 방어자 모두 그라디언트 디센트(Gradient descent) 방식으로 학습을 한다. 방어자는 그라디언트를 통해 모델 개선 방안을 알 수 있고, 공격자는 같은 그라디언트를 보고 모델을 어떻게 속일지 알 수 있다. 그라디언트 마스킹은 방어자가 주로 구분할 수 없는 변동 사항이나 기술을 이용하는 방법으로 그라디언트를 공격자가 볼 수 없도록 숨길 때 실행된다.

구분을 할 수 없다는 건 공격자가 사용할 수 있는 그라디언트가 없다는 것이다. 부서진 그라디언트(Shattered gradient)라고 부르는 그라디언트 마스킹 방식은 방어 그라디언트를 구분할 수 없거나, 존재하지 않거나, 잘못된 그라디언트로 만들어버린다.

이 방어법은 처음엔 효과가 있었으나, 결국에는 역방향 패스 구분이 가능한 근사치(Backward Pass Differentiable Approximation, 이하 BPDA)라는 공격에 무너지고 말았다. 이 방법을 이해하기 위해서 그라디언트를 감추고 있는 변동사항인 f(x) 가 비교적 간단한 변동사항이라고 가정해보자. 이미지가 너무 많이 변경되면 정확하게 예측할 수 있는 사람이 아무도 없을 것이다.

 f(x)의 그라디언트 값을 구할 수 없을 경우, g(x)라는 새로운 네트워크를 정의하고, 신경망이 근사치를 내도록 학습시킬 수 있다. f(x) \approx g(x)이 공식이 성립될 경우,  \nabla_{x} f(x) \approx \nabla_{x} g(x)이 공식도 성립됐어야 마땅하다. 공격자가 g(x)를 만들었으므로 \nabla_{x} g(x)그라디언트 값을 어렵지 않게 구할 수 있을 것이다. 그리고 최적화 도구를 실행할 때는 \nabla_{x} f(x) \nabla_{x} g(x)그라디언트 값으로 바꾸는 것도 어려운 일이 아닐 것이다.

아래 그림은 이 글에 사용된 BPDA 네트워크의 모습이다. 대다수의 경우 새로운 네트워크인  g(x)를 학습시킬 필요가 없다. f(x) \approx x라는 공식이 성립되므로, \nabla_{x} f(x) \approx \nabla_{x} x = 1이라는 간단한 근사치만 있으면 충분하다.

BPDA 네트워크 아키텍처 다이어그램. 인풋 디멘션은 3 + 2 + |P(t)| 이고, P(t)는 변경범위를 말한다. 처음의 3개 디멘션은 RGB 채널, 다음 2개 디멘션은 코드콘브(CoordConv)채널이고, 마지막 디멘션은 변경에 영향을 미치는 무작위 한도 적용 범위를 뜻한다. 다이어그램을 서로 연결해주는 화살표는 연속성을 의미하고, 노란 부분은 복잡성(아래는 필터 개수), 그다음 부분은 배치정규화(Batch-normalization), 그리고 빨간색 부분은 ReLU 활성화를 나타낸다.
BPDA 네트워크 아키텍처 다이어그램. 인풋 디멘션은 3 + 2 + |P(t)| 이고, P(t)는 변경범위를 말한다. 처음의 3개 디멘션은 RGB 채널, 다음 2개 디멘션은 코드콘브(CoordConv)채널이고, 마지막 디멘션은 변경에 영향을 미치는 무작위 한도 적용 범위를 뜻한다. 다이어그램을 서로 연결해주는 화살표는 연속성을 의미하고, 노란 부분은 복잡성(아래는 필터 개수), 그다음 부분은 배치정규화(Batch-normalization), 그리고 빨간색 부분은 ReLU 활성화를 나타낸다.

그라디언트 마스킹의 한 종류인 확률 그라디언트는 사전 프로세스에 임의로 정리된 변동사항들(Arbitrarily ordered transformation)을 데이터에 적용해 그라디언트를 무작위로 추출하는 방식이다. 이 방법 역시 처음에는 성공적이었으나, 변동사항을 초월하는 기댓값(Expectation Over Transform, 이하 EOT)이라는 공격에 쉽게 무너지고 만다. EOT는 변동사항의 기댓값을 이용해 공격에 사용될 만한 그라디언트를 알아내는 방법이다.

EOT는 비교적 간단한 방법으로, 여러 변동사항의 예시를 이용하기보다는 평균적인 그라디언트를 이용한다. 다시 말해, 개별 그라디언트 대신 평균 그라디언트를 사용함으로써 가능한 모든 변동사항에 대한 정보를 추출해 EOT가 그 방어법들을 피하도록 만드는 것이다.

 

엔비디아의 방어책, BaRT

일반적인 목표는 BPDA, EOT와 같은 강력한 공격에 효과적일 수 있는 변동사항을 찾아내는 것이다. 그렇다면 개별적으로는 취약한 방어책 수십 개를 통합해 단 하나의 강력한 방어책을 만든다면 어떨까? 무작위로 설정된 변동사항들로 공격자를 ‘사격’하듯이 공격하면 어떻게 될까? 변동사항을 한 두 개 사용하면 손쉽게 무너질 수 있지만, 그것들을 하나로 합치면 강력한 방어책이 될 것이다. BaRT는 아래 표에 나타난 바와 같이, 과거에 사용된 방어책과 비교했을 때 24배 뛰어난 정확도와 공격 중에도 최대 57.1%, 상위 5번째 정확도를 자랑한다.

여러 아키텍처에 대한 공격 전후 결과. k=10 BaRT가 적용된 레즈넷50(ResNet50)에 대한 공격 시, Top-1과 Top-5의 정확도로 다른 모든 아키텍처 대비 뛰어난 방어성을 보였다. 또 적대적 학습을 한 인셉션 v3(Inception v3) 대비 Top-1의 정확성이 24배 향상됐다.
여러 아키텍처에 대한 공격 전후 결과. k=10 BaRT가 적용된 레즈넷50(ResNet50)에 대한 공격 시, Top-1과 Top-5의 정확도로 다른 모든 아키텍처 대비 뛰어난 방어성을 보였다. 또 적대적 학습을 한 인셉션 v3(Inception v3) 대비 Top-1의 정확성이 24배 향상됐다.

이미 상당히 많은 수의 이미지 변경 테스트가 진행됐으므로, 이미지넷 데이터셋(Imagenet dataset)의 CNN(Convolutional Neural Network)을 기반으로 이 실험을 진행했다. 이전 연구에 따르면 변동성의 개수가 낮을 경우에는(<= 3) 다양한 방어책을 복합적으로 사용하는 방식이 효과를 보지 못할 수 있다. 결과적으로 이 프로젝트는 총 25개의 변동사항을 적용해 과거의 개념이 잘못됐다는 사실을 입증했다.

또한 색상 정밀도 감소, 노이즈 추가, FFT 동요를 비롯해 그 밖의 유사한 변동사항 등 여러 형태의 변동사항을 새롭게 추가했다. 우리는 각각의 방어책들을 검증했고, 모든 문제들에 대해 100%의 신뢰성을 갖고 방어할 수 있다는 것을 확인했다. 그 후에는 이미지들을 CNN에 전송, 분류하기 전에 1회당 최대 10개의 변동사항을 무작위 선정해 적용했다.

무작위라는 점이 공격을 받지 않고 있을 때에는 정확성을 떨어뜨리는 효과가 있지만, 강력한 공격자와 맞닥뜨려야 하는 상황에는 최악의 상황에도 대응할 수 있는 능력을 강화한다. 공격자는 이제 가능한 모든 변동사항을 극복할 수 있는 단 하나의 변동사항이 대체 무엇인지 찾아내야 하는 상황에 놓이게 됐다.

이것이 BaRT가 특정한 대상을 노린 타깃 공격(Targeted attack)에 특히나 더 효과적인 이유다. 타깃 공격을 할 때 공격자의 목표는 신경망이 특정한 오류(예: 정지 신호를 시간당 60마일로 잘못 인식)를 일으키도록 하는 것이다. 아래 그림을 보면, 10개의 변동사항만 적용되더라도 공격자의 공격 성공률은 0%로 떨어진다. 즉, 공격자가 이 방어책이 오류를 범하도록 자기 임의대로 조작할 수 없다는 사실을 말한다.

다른 개수의 변동사항이 적용된 BaRT에 서로 다른 두 가지 타깃 공격을 한 결과. 변동사항 개수가 많을수록 공격이 실패할 가능성이 커진다.
다른 개수의 변동사항이 적용된 BaRT에 서로 다른 두 가지 타깃 공격을 한 결과. 변동사항 개수가 많을수록 공격이 실패할 가능성이 커진다.

공격자 쪽에서 실행해야 하는 복잡한 연산에 대한 부담(Computational burden)도 방어에 도움이 되는 또 다른 요소다. 이미지에 약간의 변동사항이 생긴 경우 이미지 당 수백 밀리초가 소요됐는데, 공격자가 부담해야 하는 비용은 불균형적으로 높아졌다. DGX로 BaRT에 모든 종류의 공격을 가하는 데만 거의 일 년이 걸렸다. 사람들이 이것을 쉽게 모방할 수는 있겠으나, 암호학의 개념을 떠올려보자. 우리의 목표는 방어책을 무너뜨릴 방법이 거의 없을 정도로 강력한 방어책을 만드는 것이 아니라, 방어책을 무너뜨리는 데 드는 비용이 너무 높아서 공격자가 공격을 시도도차 하지 못하게 만드는 것이다.

이처럼 새로운 방어책을 평가할 때, 네트워크가 가능한 가장 강력한 상대를 상대할 수 있는지를 확인하는 것이 중요하다. 우리는 알려져 있지만 설명하기는 어려운 모든 애매한 그라디언트를 사용해봤고, 공격을 실행하는데 드는 높은 비용을 고려해본 모든 우수 공격 사례도 적용해 봤다. 또 BaRT의 정확도를 높이기 위한 다른 실험도 진행했다.

이 프로젝트에서 모든 방어책을 효율적으로, 또 시의적절하게 테스트해볼 수 있는 유일한 방법은 엔비디아 GPU의 힘을 빌리는 것이었다. 엔비디아 컴퓨팅 클러스터(Computing cluster) 중 하나를 사용하면 각각 4개의 32GB V100이 적용된 수백 개의 작업을 실행할 수 있는데, 딥러닝의 특성상 CPU로 같은 작업을 하려면 당연히 훨씬 더 많은 시간이 걸릴 것이다. GPU는 태생적으로 이런 종류의 알고리즘을 실행하도록 설계되고 최적화됐으므로 CPU와 비교해 런타임이 훨씬 짧다.

또 무료로 제공되는 엔비디아 GPU 클라우드(NGC) 서비스를 이용하면 엔비디아 GPU와 가장 잘 호환되도록 최적화된 소프트웨어를 탑재한 최신 파이토치 도커 컨테이너(Pytorch docker containers)를 활용할 수 있었고, 전 과정을 가능한 빠른 속도로 진행할 수 있었다.

 

결론

우리는 그간 도메인 지식을 현명하게 사용해 각종 적대적 공격에 대한 강력한 방어책을 개발해 왔다. 이것은 단기적으로 취약한 시스템에 대한 상당한 가치를 제공하고, 다양한 산업 분야에서 활용되는 범용기술(General purpose techniques)에는 통찰력을 제공한다. 우리는 BaRT에 어떤 새로운 공격이 가해질지 기대하고 있다. 완벽을 기대할 순 없겠지만 이 쫓고 쫓기는 게임을 통해 우리가 얻는 지식들은 결과적으로 우리의 방어능력을 강화하고 딥러닝에 대한 우리의 이해도를 높여줄 것이다.

이 글을 통해 딥러닝 업계가 AI 시스템이 직면할 수 있을 문제들에 대해 배우고, 프로젝트 기획단계에서부터 AI 보안을 고민해보는 계기가 되길 바란다. 이것은 굉장히 중요한 주제이고, 이 글을 읽은 여러분들도 자신의 딥러닝 시스템에 어떤 보안체계를 적용하고 있는지 공유해 주길 바란다.

 

글 | 엔비디아, 스티븐 포사이스(Steven Forsyth)

- 이 글은 테크월드가 발행하는 월간 <EMBEDDED> 2019년 11월호에 게재된 기사입니다.
 


관련기사

댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.