Date | 15/11/05 18:02:05 |
Name | Azurespace |
Subject | 엥? 딥러닝 그거 바보 아니냐? |
참고: http://arxiv.org/pdf/1312.6199v4.pdf 지금까지 사물 인식에 사용되는 대부분의 방법론들은 모두 동일한 기반을 두고 있습니다. 바로 사물을 구성하는 특징을 추출해낸 다음, "이러한 특징을 얼마만큼 지닌 물체가 있는데, 우리가 아는 물체 중에서 가장 가까운 물체는 뭐가 있을까?" 라는 질문에 대한 답을 구하는 것입니다. 딥 러닝이 등장하기 이전의 방법론들 또한 그랬고, 딥 러닝 또한 그렇습니다. 다만 딥 러닝은 이미지의 국소적인 특징을 추출하여 더 큰 특징을 조합해내는 능력을 가지고 있을 뿐이죠. 잘 만들어진 모델은 물체의 웬만한 특징들을 잘 추출해냅니다. 당연히 그러니까 인식 정확도가 높겠죠? 그런데 문제는 아무리 신경망을 거대하게 잘 만든다고 하더라도, 어떤 사물이 가지고 있는 특징을 모두 추출해내어 이용하는 것은 불가능하다는 것입니다. 이건 마치 0과 1 사이의 모든 수를 나열하려고 하는 것과 비슷한 행위가 될 것입니다. 어떤 feature set을 뽑아내도 거기에 속하지 않는 다른 feature를 만들어내기란 어렵지 않을 것이기 때문이죠. 그런데 딥 러닝이 이미지로부터 추출해내는 feature는 고작해야 수백개 정도라고 봤을 때... 이미지에서 오직 딥 러닝 네트워크가 추출해내는 feature만을 제거하거나, 원하는 양만큼만 남긴다면 어떻게 될까요? 각각의 이미지에서 왼쪽 그림과 오른쪽 그림을 내용적으로 다른(conceptually different) 그림이라고 생각할 사람은 존재하지 않을 겁니다. 가운데 회색 배경의 그림은 왼쪽과 오른쪽 이미지의 차이를 나타내는 것입니다. 좌우측은 명백히 같은 대상에 대한 사진이죠. 그러나 딥 러닝 네트워크의 관점에서 볼 때는 그렇지 않습니다. 네트워크의 입장에서 오른쪽 이미지들은 모두 Struthio camelus, 즉 낙타로... 아니, 타조로 보입니다. 이처럼 네트워크에게 실제와 전혀 다른 결과를 내놓도록 하는 이미지를 Adversarial Example이라고 정의하고 있습니다. Wyoming 대학교의 한 AI 연구실에서는 위 연구결과를 보고 재미있다고 생각했던 것 같습니다. 원래 이 연구실에서는 유전 알고리즘(Genetic Algorithm)과 같은 진화적 알고리즘을 이용하여 로봇에 지능을 부여하는 연구를 하던 곳인데요. "이런거 우리 전문이잖아? 한번 Adversarial example을 만드는 알고리즘을 만들어 볼까?" http://www.evolvingai.org/files/DNNsEasilyFooled_cvpr15.pdf 이 사람들의 원래 목적은 저 위에 나온 이미지처럼, 기존 이미지를 거의 고치지 않았지만 정반대의 결과가 나오는 이미지를 만들어내는 것이었습니다. 해서 적용한 다목적 진화 알고리즘을 진짜진짜 간략하게 설명하면.
정도로 나타낼 수 있습니다. 뭐 GA 자체도 파고들면 여러가지로 복잡한 기법들이 많고, 논문에서도 자세하게 설명하지 않고 있고요. 근데 이 알고리즘은 예상치 못한 결과를 내놓습니다. 원본 그림과 별로 비슷하지 않은데, 그렇다고 네트워크의 예상 결과와도 들어맞지 않는 이미지들을 내놓은 거죠. 달리 말해서 실제 사물과 별로 닮지 않은 패턴이나 그림으로도 딥 러닝 네트워크를 속일 수 있다는 것입니다. 그리고 어떤 네트워크라도 비슷한 방법을 통해서 속일 수 있을 것이라는 전망과 함께요. 더불어서, 한 네트워크를 속이는 데 성공한 이미지는 다른 구조의 네트워크도 속일 수 있을 가능성이 높다고 합니다. 개인적으로는 두 번째로 소개한 연구가 더 큰 파급효과를 가지지 않을까 생각합니다. 첫 번째 연구에서는 딥 네트워크를 속일 수 있다는 것을 증명했지만, 한편으로는 원래 이미지를 조작해서 만들어낸 이미지에 대한 결과죠. 아무런 수정 없는 이미지들에 대해서만이라도 제대로 동작할 수 있다면, 딥 러닝을 별 문제없이 현실에 적용해도 괜찮습니다. 달리는 자동차에 달린 카메라는 feature를 조작하지 않고 네트워크에 보낼 테니까요. 그러나 실제 사물과 관계없는 어떤 문양이나 패턴을 이용해서 네트워크를 속일 수가 있다면, 이건 사람이 마음먹기에 따라서는 못된 짓도 얼마든지 할 수 있습니다. 무인 자동차들이 상용화된 후에, 컴퓨터에게만 인간으로 보이는 어떤 패턴을 도색한 차량이 난폭운전을 하고 다닌다면 어떻게 될까요? 심지어 어떤 구조의 네트워크가 사용되었는지 모른다 하더라도, 다른 방법으로 우회해서 악용은 가능할 것입니다. 저에게도 몇 가지 가능한 방법이 떠오르네요. 그런데 딥 러닝만의 문제도 아니에요. 위에서 말했다시피 기존 방법이라고 피해갈 수 있는 문제가 아닙니다. 연구자들에게 주어진 숙제라고 할 수 있겠습니다. * 수박이두통에게보린님에 의해서 자유 게시판으로부터 게시물 복사되었습니다 (2015-11-16 21:22) * 관리사유 : 8
이 게시판에 등록된 Azurespace님의 최근 게시물
|