메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

적대 사례(Adversaries)에서 배우기

한빛미디어

|

2019-08-26

|

by Mike Loukides

531

적대 이미지 사례는 문제가 아니다.  AI와 상호작용하는 새로운 방법을 탐구할 기회다.

 

최근에 발표된 논문 「Natural Adversarial Example(자연적 적대 사례 연구)」는 머신러닝 시스템이 실제 자연물의 이미지를 잘못 인식한다는 사실을 지적했다. 다람쥐가 바다사자나 개구리로 분류되고, 독수리는 리무진으로, 버섯은 브레첼이나 못으로 분류되는 결과가 나온 것이다. 머신러닝 기술에 관심이 있는 사람이라면 이런 식으로 잘못 분류된 이미지 사례를 많이 접해봤을 것이다.

 

머신러닝 시스템이 ‘실수’를 할 수 있다는 사실을 받아들이는 것은 꽤 중요하다. 머신러닝 시스템은 실수할 뿐 아니라, 항상 실수할 것이다. 전통적인 소프트웨어 프로그래밍과 다르게 머신러닝 시스템에서 ‘완벽함’이란 불가능에 가깝다. 필자는 이를 ‘머신러닝의 역설(the paradox of machine learning)’이라고 부르는데, 이 역설 때문에 우리는 머신러닝 시스템을 다룰 때 각별한 주의를 기울여야 한다.

 

하지만 먼저 기억해야 할 세 가지가 있다. 

  1. 사람도 실수를 한다. 사람이 버섯 사진을 보고 “당연히 못은 아니지!”라고 말하기란 아주 쉽다. 하지만 사람들도 종종(혹은 꽤 많이) 무언가를 잘못 보거나 착시 현상을 겪지 않는가. 머신러닝이 하는 실수 몇몇은 사람이 하는 실수와 비슷하다. 장님거미 사진을 찾아보면 무당벌레와 닮은 점이 생각보다 많다는 걸 알게 될 것이다. 풀숲에 숨어 있는 갈색 개구리도 다람쥐와 비슷해 보이기 때문에 이 둘을 착각하는 게 크게 비난받을 만한 일도 아니다. 그러므로 머신러닝의 한계를 논할 때는 조금 관대한 마음을 갖는 게 좋다.

  2. 머신러닝 시스템이 하는 실수에는 사람의 실수와 완전히 다른 종류의 것이 있다. 머신러닝 시스템이 틀린 결과를 내놓았을 때, 과연 ‘정말’ 틀렸다고 말할 수 있을까? 혹시 사람의 실수와는 단지 범주가 판이하게 다른 것은 아닐까? 머신러닝 시스템은 데이터나 콘텍스트가 부족할 때 실수를 한다. 사람이 ‘사진’을 볼 때는 특정한 상황 속에서 어떤 사진을 보게 될지 예측할 수 있는 경우가 대부분이다. 하지만 기계는 맥락이 삭제된 상태에서 사진만 보게 된다. 또한 머신러닝 시스템은 배경 때문에 사물을 오인하기도 하는데, 가령 새가 없는 사진에서 모이통을 보고 새라고 인식하는 경우다. 하지만 사람은 관련 없는 정보를 무시하는 데 뛰어나기 때문에 이런 식의 실수는 하지 않는다.

  3. 사람은 실수 교정에 탁월하다. 이는 머신러닝 시스템과 사람의 가장 큰 차이다. 머신러닝은 ‘모른다’는 결과를 산출하지 못한다. 게다가 다음과 같은 응답은 더더욱 하지 못한다. ‘음, 제가 보기에는요, 못은 확실히 아닌데... 버섯이군요.’ 기계는 실수를 만회할 기회를 얻지 못하는 것이다.

이 마지막 지점에서 필자는 생각에 빠졌다. 왜 소프트웨어 프로그램은 자신의 실수를 시인할 수 없는 걸까? 특히 소프트웨어가 정적으로 멈춰 있는 상태가 아니라 계속해서 작동하는 상태라면 말이다. 소프트웨어는 어떤 물체를 다양한 관점에서 볼 수 있는 시스템으로서 다음과 같은 방식의 답을 할 수 있어야 한다. ‘처음에 못이라고 생각했던 이미지는 사실 버섯입니다.’ 이런 방식으로 구현된 시스템은 이미 어딘가에 존재할 것이다. 또한 잘못 내린 판단을 교정하는 능력은 자율주행 시스템에 필수 요소가 될 것이다. 

 

잘못을 교정하는 능력은 사람과 머신러닝 시스템이 협업할 때도 필수적이다. 협업의 당사자 중 하나(혹은 둘 다)가 절대 틀리지 않거나 틀림을 인정하지 않는 신탁 사제(oracle)와 같다면 협업은 불가하다. 어떤 시스템이 논란의 여지가 없는 단일 해답을 내놓게 설정되어 있다면, 사람들은 예측할 수 있는 방식으로만 대응할 것이다. 사람이 기계의 답을 받아들이면(즉 의문 없이 옳다고 생각하면), 기계는 아직 자신이 모르는 것에 대해 어떤 것도 알려주지 않기 때문에 진정한 효용을 잃게 된다. 반면 사람이 기계의 답을 받아들이지 않으면, 기계는 그냥 틀린 답을 주는 기계일 뿐이다. 마지막으로 기계가 특정 답이 아닌 어떤 행동 지침을 내놓게 설정한다면(예를 들어, ‘환자의 진단 및 치료’), 그 누구도 기계가 맞았는지 틀렸는지 확신할 수 없게 될 것이다.

 

이런 문제를 해결하는 방법은 ‘확률’을 제시하는 것이다. ‘기계가 이미지를 분류한다면 어떤 분류법이 가장 폐기될 확률이 높을까?’와 같은 방식으로 기계가 ‘왜’라는 질문을 하게 함으로써 학습을 강화하는 것이다. 머신러닝 시스템이 어떻게 결과를 냈는지 스스로 명확하게 설명하지는 못하겠지만, 신경망만으로도 확률에 가중치를 둔 대체 답안 목록을 만들 수는 있다. 어떻게 하면 대체 답을 제시해주고 인간이 직접 평가할 수 있게 하는 인터페이스를 만들 수 있을까? 어떤 종류의 인터페이스를 만들면 AI와 토론하거나 논쟁을 할 수 있을까? 시리(Siri)처럼 바보 같은 챗봇을 말하는 게 아니다. 결정이 필요한 사안에 대해 논리정연한 토론을 이어갈 수 있는 그런 시스템을 말하는 거다. 머신러닝 시스템에게 ‘네가 틀렸다’는 사실을 납득시킬 수 있게 된다면, 이는 인간에게 무엇을 의미하게 될까?

 

이런 점에서 적대 이미지 사례는 문제가 아니라 기회다. 고장난 분류기를 고쳐줄 단순한 기회가 아니라, AI와 새롭게 상호작용하는 방법을 탐구할 기회다. 우리는 현존하는 데스크톱, 웹, 모바일 애플리케이션이 제공하는 경험과 인터페이스를 넘어서야 한다. 사람과 기계의 협업을 위한 설계가 필요하다. 이는 AI 개발자들이 마주한 큰 도전이자 넘어야 할 산이다.

 

파이썬을 활용한 머신러닝 쿡북

 

---

마이크 루키데스 Mike Loukides

오라일리 미디어의 콘텐츠 전략 담당 부사장. 윈도우 프로그래밍 관련 외 주제의 많은 기술 서적을 편집했다. 특히 프로그래밍 언어, 유닉스, 유닉스 계열의 요즘 것들에 관심이 있으며, 시스템과 네트워크 운영에도 흥미가 있다. 『System Performance Tuning』의 저자이자 『Unix Power Tools』의 공저자며, 가장 최근에는 데이터, 데이터 분석, R 같은 언어나 매스매티카(Mathematica), 옥타브(Octave) 같은 툴을 가지고 놀며 책을 세상에 알리는 방법을 고민하고 있다. 마이크와 연락하고 싶다면 트위터 @mikeloukides나 링크드인 계정으로 연락하자.

 

*****
원문 : Learning from adversaries

번역 : 윤나리

댓글 입력
자료실