DNN을 속일 수 있을까?

Yujeong Lee
CURG
Published in
12 min readDec 25, 2020

이유정 Sogang Univ. BaSE LAB, CURG
lkitty0302@gmail.com

이번 글에서는 Deep Neural Networks are Easily Fooled: High confidence Predictions for Unrecognizable Images라는 논문을 소개하고자 한다. DNN(Deep Neural Network)이 발전하며 사람과 비교될 정도로 이미지를 잘 분류한다고 평가받고 있지만, 최근 연구에서 사람이 인식할 수 없을 정도의 noise로 DNN이 이미지를 완전히 다른 사물 또는 객체로 판별하는 방법 등 이미지를 판별하는데 있어 DNN과 사람의 시각이 다르다는 연구 결과가 있다. 이 연구로 테슬라의 자율주행, 얼굴 인식 등 다양한 이미지 판별 알고리즘의 공격 기법으로 사용될 수 있어 큰 이슈가 된 적이 있었다. 반대로 본 논문에서는 DNN이 사람의 눈으로는 판별할 수 없는 이미지를 생성하여 DNN이 높은 신뢰도로 사물 또는 어떠한 객체라고 인식하도록 하는 방법을 소개하고 실험 결과를 보여준다.

본 논문에서는 EA(Evolution Algorithm)과 gradient ascent를 사용하여 높은 예측 점수를 받는 이미지를 생성하며, “AlexNet”의 ImageNet 데이터가 학습된 ImageNet DNN과 MNIST 데이터가 학습된 LeNet의 Caffe버전모델의 MNIST DNN을 사용하여 다양한 상황에서 DNN이 가짜 이미지를 구별할 수 있는지 실험한다.

본 논문에서는 직접인코딩(direct encoding)과 CPPN(compositional pattern-producing network)을 활용한 간접인코딩(indirect encoding)을 사용한다. 직접 인코딩은 랜덤 노이즈로 생성되며 간접인코딩 CPPN은 ANN과 유사하며 기존 이미지와 유사하고 규칙적인 이미지를 생성한다. 아래그림 1에서 1, 2행은 직접인코딩 결과이며, 아래 3, 4행은 간접 인코딩 결과이다. 직접인코딩 결과는 사람의 눈으로는 확인할 수 없지만, 간접인코딩 결과는 사람 눈으로도 특정 패턴을 확인할 수 있다.

그림 1. 직접인코딩과 간접인코딩으로 생성된 이미지의 DNN 이미지 판별 결과

위 그림 1은 직접, 간접인코딩된 이미지를 SOTA DNN(state-of-the-art DNN)이 판별한 결과를 나타낸다. 우리가 보기엔 TV 수신이 안될 때 나오는 화면 같은 이미지를 DNN은 Robin, cheetah, armadillo 등 이미지와 전혀 연관성이 없는 객체로 인식하고 있다. 또한 불가사리나 리모콘 등 그럴싸한 특징은 있지만 전혀 다른 이미지를 불가사리와 리모컨으로 판별하는 등 이 실험으로 사람의 시각과 DNN에서 이미지를 판별하는 방법이 많이 다르다는 것을 확인할 수 있다.

그림 2. 사람이 인식할 수 없는 이미지도 같은 사물로 인식하는 DN과 이미지를 진화시키며 생성하는 EA

SOTA DNN은 이미지를 더욱 잘 인식할 수 있지만 알아볼 수 없는 이미지도 친숙한 이미지로 인식하고 높은 신뢰도를 보인다. 이처럼 DNN을 속이는 이미지는 EA를 사용하여 생성한다. 위 그림 2는 사물을 제대로 인식하는 결과(오른쪽)와 알아볼 수 없는 이미지를 친숙한 이미지로 인식하는 결과(가운데 이미지) 그리고 이미지를 생성하는 EA를(오른쪽) 나타낸다.

그림 3. CPPN으로 생성된 이미지를 사람과 DNN이 판별한 결과

위 그림 3에서 각 그림 아래 글은 사람이 이미지를 보고 판별한 결과이며, 파란색 막대는 ImageNet에서 트레이닝된 DNN에 의해 만들어진 상위 3가지의 카테고리의 신뢰도를 나타낸다. 막대가 길수록 해당 카테고리의 이미지일 확률이 높으며, 막대가 짧을수록 해당 카테고리의 이미지일 확률이 낮다. 실험 결과 DNN의 첫번째 결과들은 사람이 선택한 결과와 유사하다는 것을 확인할 수 있다. 따라서 CPPN으로 생성된 이미지는 사람이 인식할 수 있는 수준의 이미지를 생성할 수 있다는 것을 보여준다.

위에서 본 이미지들과 같이 DNN은 비슷한 패턴만 보여도 쉽게 특정 객체로 인식하고 높은 신뢰도를 보여준다. 이처럼 EA를 사용하여 이미지를 생성하고 직접인코딩과 간접 인코딩을 사용하여 사람이 알아볼 수 없는 이미지를 생성한 후 DNN이 어떤 결과를 나타내는지, 어떤 경우에서 DNN이 잘 속으며 이를 방지할 수 있는지 알아보고자 한다.

실험 결과

지금부터는 본 논문에서 다양한 환경에서 진행한 실험을 소개한다. MNIST 데이터 셋으로 훈련된 MNIST DNN, ImageNet 2012의 데이터셋으로 훈련된 DNN에 직접인코딩, 간접인코딩으로 생성된 이미지를 EA로 진화시켜 각 상황에서 나타낸 결과를 보여준다.

1. MNIST의 직접인코딩 된 이미지

그림 4. MNIST의 직접 인코딩 결과

위 그림 4는 MNIST 데이터 세트로 트레이닝 된 DNN에서 0~9로 인식되는 이미지를 직접인코딩 후 EA로 생성한 결과이다. 각 열은 0~9까지 숫자를 나타내며, 행은 총 200세대까지 생성된 이미지 중 무작위로선택된 이미지이다. 여러번의 진화를 통해 생성된 이미지들은 사람들은 인식할 수 없는 이미지 이지만, MNIST DNN은 99.99% 이상의 신뢰도로 해당 열이 숫자라는 결과를 보였다. 위 그림에서 각 열은 숫자를 의미하며, 행은 EA로부터 200세대까지 생성된 이미지 중 랜덤으로 선택된 이미지들이다.

2. MNIST의 간접인코딩된 이미지

그림 5. MNIST의 간접 인코딩 결과

그림 5는 CPPN인코딩으로 생성되고 진화된 이미지이다. 직접인코딩과 달리 사람이 눈으로 특정 패턴을 확인할 수 있다. 그림 4와 같이 각 열은 0~9까지 숫자를 나타내며, 각 행은 200세대까지 생성된 이미지 중 무작위로 선택된 이미지를 나타낸다. 본 그림 5에서는 각 숫자별 생성된 이미지를 확인해보면 1에는 세로 막대, 2에는 아래쪽에 가로 막대 등 각 숫자별로 특정 패턴이 있다는 것을 확인할 수 있다.

3. ImageNet의 직접인코딩된 이미지

MNIST의 경우 데이터 세트가 약 6만개로 적은 데이터로 트레이닝되어 적은 데이터로 인해 실험 결과가 좋지 않을 것 같아 다른 데이터 세트로 더 많은 데이터를 트레이닝 한 후 실험을 진행한다. 본 실험에서는 1000개의 카테고리와 130만개의 이미지가 있는 ImageNet 2012 데이터 셋으로 훈련된 DNN을 사용한다.

그림 6. ImageNet의 직접인코딩으로 생성된 이미지의 신뢰도 결과 값 분포

위 그림 6은 직접인코딩 후 20000세대까지 진화시킨 결과를 나타낸다. 색이 붉을수록 신뢰도가 높으며, 파란색일수록 신뢰도가 낮음을 의미하며, 가로축은 카테고리를 의미한다. 실험결과 직접인코딩으로 약 20000세대까지 진화시킨 결과 평균 21%의 신뢰도로 신뢰도가 높은 이미지를 생성하지 못했다. 하지만 특정 45개의 카테고리에서는 99%의 신뢰도를 보였으며, 그림 1은 해당 45개의 카테고리로 분류된 이미지를 사용하여 이미지를 생성했다.

4. ImageNet의 간접인코딩된 이미지

그림 7. ImagetNet의 CPPN으로 생성된 이미지의 신뢰도 결과값 분포

위 그림 7은 사람과 DNN이 비슷하게 인식하는 CPPN인코딩을 사용하여 이미지를 생성한 후 5000세대까지 진화시킨 결과이다. 위 직접인코딩과 달리 5000세대 이후 평균 88%로 신뢰도가 높은 이미지를 생성할 수 있다는 것을 보여준다. 그림 1로 다시 돌아가서 불가사리에는 물과같은 파란색과 불가사리의 주황색이 포함되어있고, 리모컨의 경우 버튼 격자가 있는 것을 확인할 수 있다. 따라서 DNN은 특정 카테고리가 주어지면, 이미지가 특정 카테고리로 분류하는 특징을 찾는다. 이에따라 EA도 이미지의 특징을 인식한 후 패턴을 생성하여 DNN을 속이는 이미지를 생성한다.

그림 8. CNNP로 생성된 이미지들

위 그림 8은 CPPN으로 생성된 이미지들을 나타낸다. 위 그림들은 DNN에서 평균 99.12%의 신뢰도 점수를 받았으며, 각 클래스마다 다른 특정 패턴이 있다는 것을 확인할 수 있다.

5. 하나의 DNN을 속이는 이미지는 다른 DNN을 속이는 실험

본 실험에서는 DNN_A와 DNN_B 총 2개의 DNN을 사용하여 하나의 DNN을 속인 이미지가 다른 DNN도 속일 수 있는지를 실험하여 각 DNN이 각 카테고리에서 같은 특징을 학습하는지, 각 DNN이 카테고리의 서로 다른 차별적 특징을 학습하는지를 확인한다. DNN_A와 DNN_B는 동일한 아키텍처와 데이터를 가지고 트레이닝한 경우와 아키텍처는 다르지만 동일한 데이터로 트레이닝된 경우로 나누어 테스트를 진행했다. MNIST와 ImageNet DNN 모두 수행 한 결과 DNN_A와 DNN_B 모두 99.9%이상의 신뢰도 점수를 나타냈다. 따라서 CPPN으로 인코딩후 EA로 생성된 이미지를 통해 DNN을 속일 수 있어 충분히 악용될 수 있다는 실험 결과가 나왔다.

6. 가짜 이미지를 인식하도록 네트워크를 훈련시킨 실험

이번 실험에서는 각 DNN에 새로운 카테고리를 생성하여 DNN을 속이기 위해 생성된 이미지를 새로 생성된 카테고리로 분류하도록 네트워크를 훈련시키면 DNN이 생성된 이미지를 판별할 수 있는지를 확인하는 실험이다. MNIST, ImageNet의 각 데이터로 훈련된 DNN에서 실험을 진행한다.

6.1 MNIST의 DNN

그림 9. MNIST DNN의 실험 결과

MNIST DNN에서 EA알고리즘으로 생성된 이미지를 추가하여 기존 MNIST와 동일한 수의 이미지를 갖도록 하여 실험을 진행했다. 본 논문에서 사용한 LeNet모델은 EA로부터 생성된 이미지를 사용하여 트레이닝해도 여전히 속이기 위해 생성된 이미지에 99.99%의 높은 신뢰도 점수를 보이며 성능이 좋아지지 않았다. 위 그림 9는 15개의 DNN에서 DNN_1부터 DNN_i-1을 속인 이미지로 DNN_i를 트레이닝한 후 각 생성된 이미지 판별 결과의 평균값을 나타낸다. 이미지에서 열은 각 숫자를, 행은 i를 나타낸다. 실험 결과 DNN을 생성된 이미지로 트레이닝한다고 해서 EA로부터 생성된 가짜 이미지를 가려낼 수 없다는 것을 보여준다.

6.2 ImageNet DNN

ImageNet DNN에서 EA알고리즘으로 생성된 이미지를 추가하여 기존 1000개의 클래스에서 가짜 이미지 카테고리 1개를 추가하여 1001개의 카테고리로 실험을 진행한다. DNN_1을 속이는 이미지 9000개가 추가되었으며, 각 카테고리 당 약 1300개의 이미지에 비해 약 7배 많은 이미지를 추가하여 실험을 진행하였다.

그림 10. ImageNet의 실험 결과

위 그림 10은 기존 1000개의 카테고리를 가지는 ImageNet과 DNN을 속이기 위해 생성하는 이미지를 분류하기 위해 1개의 카테고리를 추가한 ImageNet 1001로 각 생성된 이미지를 임력했을 때 신뢰도 값을 나타낸다. 실험 결과 DNN_1에서는 평균 88%의 신뢰도 점수를 보였지만, DNN_2에서는 평균 11%로 크게 감소하여 트레이닝 효과가 있다는 것을 보였다. 또한 Picvreeder.org에서 가져온 CPPN 이미지를 DNN2에 입력한 결과 DNN2에서는 가져온 CPPN이미지를 본적이 없음에도 불구하고 70개 중 45개의 이미지를 CPPN이미지로 올바르게 라벨링 했다고 한다.

이번 실험으로 MNIST DNN은 생성된 가짜 이미지로 트레이닝시켜도 EA로부터 새로 생성된 이미지를 분류하지 못하지만, ImageNet DNN은 가짜 이미지로 트레이닝 한 결과 EA로부터 새로 생성된 이미지를 제대로 분류하여 가짜 이미지로 트레이닝한 효과가 있다는 것을 보여준다.

결론

본 논문에서는 특정 noise나 비슷한 패턴을 사용하여 DNN을 속일 수 있다는 것을 많은 실험을 통해 보였다. 또한 하나의 DNN을 속이는 이미지는 다른 DNN도 속일 수 있으며 DNN을 사용하는 모든 곳에서 악용될 수 있음을 의미한다. 본 실험으로 white noise를 얼굴 또는 지문으로 바꾸어 각종 시스템에 접근할 수 있으며, 이러한 이미지는 사용자가 다른 사람이 시스템을 해킹 또는 잘못된 접근을 하고 있다는 것을 알아채지 못할 수 도 있기 때문에 매우 위험하다. 최근 이미지를 인식하는 기능이 탑재된 자율주행 등 다양한 분야에서 DNN이 사용되고 있다. 특히 자율주행의 경우 이미지를 잘못 인식하여 잘못된 행동을 할 경우 큰 사고가 발생할 수 있다. 따라서 본 논문에서 제안한 방법 등 DNN 속이는 다양한 방법과 해결책을 연구할 필요가 있다.

Reference

[1] https://arxiv.org/pdf/1412.1897.pdf
[2] https://en.wikipedia.org/wiki/Compositional_pattern-producing_network
[3] https://towardsdatascience.com/introduction-to-evolutionary-algorithms-a8594b484ac

--

--