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님의 최근 게시물
|
근데 그럴 수 없는, 일상에 적용되어야 할 네트워크를 속일 수 있다는 것은, 그리고 근본적으로 해결이 안 될 수도 있다는 것은 큰 문제가 아닐 수 없습니다. 학계에선 이거 어쩔지...
그리고 이제 \'악의적\'인 공격은 없을지언정 크리티컬한 한계가 있습니다. 현재까지 알려진 모든 영상기법은 모두 노이즈를 포함하거든요. 그게 픽셀로 잡힙니다. 그리고 이 노이즈를 원천적으로 제거하는 방법이 없는데, 이 노이즈를 null 처리하는 방식에 있어서 \'전문가의 직관과 컨센서스\'보다 좋은 방식이 못 나오고 있는데, 그 직관과 컨센서스조차 결과물 재현의 엄밀성이 깨지다보니... 결국 학습할 때까지 골든 스탠더드로의 판정을 누군가 해줘야 하는데 이 부분에서 거의 인식론적인 공격까지 나오고 있습니다. 뭐 어차피 임상적으로 큰 줄기가 훼손되진 않으니까 이대로 가긴 갈텐데, 의학 자체가 가지는 과학적 엄밀성과 공학적 엄밀성의 약점이 CAD에서 그대로 드러나버려서... 아무튼 그 지점에서 \'기계가 인정하는 수준의 일반론\'의 확립 자체가 불가능한 것 아니냐는 의견이 조금씩 힘을 얻고 있습니다.
... 딥 러닝 자체도 새로운 방법론이 혜성같이 등장한 게 아니라, 엄청난 양의 데이터를 처리할 수 있게 되면서야 시도할 수 있게 된 거니까요. 그 이전에 인공신경망이 여러 방면에서 공격받았던 것들도 레지엔님이 말씀하셨던 그런 이유들 때문이었습니다. 노이즈에 취약하다던지 케이스에 따라서 일관적이지 않은 결과가 나온다던지.. 이게 다 신경망의 복잡도... 더 보기
... 딥 러닝 자체도 새로운 방법론이 혜성같이 등장한 게 아니라, 엄청난 양의 데이터를 처리할 수 있게 되면서야 시도할 수 있게 된 거니까요. 그 이전에 인공신경망이 여러 방면에서 공격받았던 것들도 레지엔님이 말씀하셨던 그런 이유들 때문이었습니다. 노이즈에 취약하다던지 케이스에 따라서 일관적이지 않은 결과가 나온다던지.. 이게 다 신경망의 복잡도에 비해 데이터가 부족하거나, 데이터의 복잡성에 비해 신경망의 뉴런이 부족하거나 하는 것 때문이었던 거죠.
그래서 그 하나의 답이 뭐냐면..
더 많은 돈과 더 많은 데이터.... 입니다... OTL
총의 방아쇠를 당기면 총알이 발사 된다는 사실은 아나, 그게 어떠한 원리로 총알이 나가는지 모르는 상태랑 비슷하다는게 제 소감이거든요.
첫번째처럼 그림이 사람이 봤을땐 똑같지만, 기계가 봤을 때 다른 결과가 나온다는 현상이 얘기될 뿐 그에대한 원인+해결방안이 어떻게되는지에 대하여는 제가 배웠던 내용을 바탕으로는 도저히 추론이 안되네요.
https://www.reddit.com/r/MachineLearning/comments/2lmo0l/ama_geoffrey_hinton/
당장 성과를 내야 펀딩이 따라오는 이공계 특성상 일단 결과가 잘 나오게 하는... 더 보기
https://www.reddit.com/r/MachineLearning/comments/2lmo0l/ama_geoffrey_hinton/
당장 성과를 내야 펀딩이 따라오는 이공계 특성상 일단 결과가 잘 나오게 하는 방법을 연구하는 사람이 많은 것은 사실입니다만, 중간 과정에 대한 고찰이 없다는 말씀은 지나친 비약입니다. 그 비밀을 밝혀내기 위해 연구하는 사람들도 있고, 힌턴도 그 중 한 명입니다.
그리고 ConvNet의 경우는 시각화를 통해서 어떤 식으로 feature들이 분리되고 통합되는지 역추적이 가능합니다. 보다 보면 인공신경망이 어떤 식으로 사물을 추정해내는지 어느 정도 이해한 것 같은 느낌(...)이 듭니다. Deep Visualization을 검색해보시면 동영상이 몇 개 나올 겁니다.
다만 인공신경망에 사용되는 뉴런은 실제 생명체에서 발견되는 뉴런과는 아주 다른 물건이기 때문에 인공신경망의 동작을 완전히 이해한다 하더라도, 그것이 과연 인간의 인지능력에 대한 결정적인 단서를 제공할 수 있을지는 저 개인적으로도 궁금합니다. (계산능력은 동등하다고 합니다만 어쨌든 동작방식이 다른 건 사실이니까요)
상황에 맞는 reddit 글/동영상들 추천해주셔서 감사합니다. 나중에 살펴보도록 하겠습니다!
1차 산업에 가까운(?) 곳이라 컴퓨터와 가까운 사람들이 우리 팀 외에는 별로 없다는 것이 장점이기도 하고 단점이기도 한 상황이네요.
올려주시는 글 늘 잘보고 있습니다. 회사 세미나때 이런 것도 있더라 하면서 딥러닝을 세미나시간을 통해 소개 좀 할까 하다가도
그 나이드신 양반들이 과연.... 얼마나 알아먹을까 싶은 생각에 말아버리곤 했어요.
실제로 압연기(여기서 제 직장의 업이 조금 ... 더 보기
1차 산업에 가까운(?) 곳이라 컴퓨터와 가까운 사람들이 우리 팀 외에는 별로 없다는 것이 장점이기도 하고 단점이기도 한 상황이네요.
올려주시는 글 늘 잘보고 있습니다. 회사 세미나때 이런 것도 있더라 하면서 딥러닝을 세미나시간을 통해 소개 좀 할까 하다가도
그 나이드신 양반들이 과연.... 얼마나 알아먹을까 싶은 생각에 말아버리곤 했어요.
실제로 압연기(여기서 제 직장의 업이 조금 드러날 것 같지만) 하나만 해도 워낙 많은 인자들이 들어가기에 무려 Neural Network를 활용해서 제어를 합니다.
(담당이 아니라 실제로 쓰는지는 모르겠지만, 무려 ANN 구현부 헤더에 SIEMENS라고 적힌 것 보면 상관이 영 없진 않은 것 같고요, 참고로 지멘스는 압연기 SW 만든 곳입니다)
얼마전에 아는 사람이 GA(Genetic Algorithm)을 가지고 과제도 하나 너끈히 해결하고 논문도 쓰고 하는 것 보면 참 기술 발전이 새롭다는 생각이 듭니다.
자극도 되고요. 지금은 R이라는 좋은 툴이 있어서 공부중 입니다. 이거 생각보다 좋더라구요~
여태 C/C++로 된 소스를 찾아 해매이다가 R로써 많은 고민들이 해결됐어요.
아직은 스크립트 언어고(무시하는 건 아닙니다만) 다른 언어들과의 연계성도 좀 부족하고 무엇보다 스탠드얼론으로 동작하는 애플리케이션 만들기가 조금 까다롭네요.
C#과는 잘 연결됩니다. 간단히 말하자면 매트랩 느낌이 좀 납니다.
딥러닝을 위시한 첨단(?) 알고리즘은 음.. 업무에 적용하기엔 장벽이 있는 것 같아요. (어려워서...)
공부해보면서 느낀건데 알고리즘 자체에 대한 지식도 중요하고 해당 업무나 데이터의 성격에 맞는 알고리즘이 무엇인가를 찾는 것도 중요한 것 같아요.
그래서 알고리즘 소개에 대... 더 보기
아직은 스크립트 언어고(무시하는 건 아닙니다만) 다른 언어들과의 연계성도 좀 부족하고 무엇보다 스탠드얼론으로 동작하는 애플리케이션 만들기가 조금 까다롭네요.
C#과는 잘 연결됩니다. 간단히 말하자면 매트랩 느낌이 좀 납니다.
딥러닝을 위시한 첨단(?) 알고리즘은 음.. 업무에 적용하기엔 장벽이 있는 것 같아요. (어려워서...)
공부해보면서 느낀건데 알고리즘 자체에 대한 지식도 중요하고 해당 업무나 데이터의 성격에 맞는 알고리즘이 무엇인가를 찾는 것도 중요한 것 같아요.
그래서 알고리즘 소개에 대한 글을 보면 이리저리 짱구 굴려가며 더 고민하게 되네요
아직은 학생의 마음(?)으로 공부해보려고 합니당
목록 |
|