인공지능의 현재와 미래에 대한 짧은 문답의 재구성
AI분야의 슈퍼 구루인 앤드류 응Andre Ng 스탠포드 겸임 교수가 회사에 방문했습니다. Computer science를 전공하는 대학원생이라면 인공지능 특히 기계 학습(Machine Learning) 강의 영상을 안 본 사람이 없을 정도로 유명한 분이죠. Google Brain팀의 설립자이기도 하고, 현재는 Landing.ai라는 컨설팅 회사를 운영중입니다. 이 포스트는 그의 강연 내용을 듣고 나서 제 뇌피셜로 재구성한 것이니, 정확도는 0에 수렴함을 이해해주세요.
흔히들 AI는 하나의 연속면에 있는 것으로 인식합니다. 스팸 필터, 자율주행 자동차, 챗봇, 알파고, 그리고 더 나아가서 스스로 사고하고 학습하는 로봇에 이르기까지 하나가 발전하면 나머지도 따라서 진보하고 있다고 예상합니다. 예를 들면, 알파고의 발전에 근거하여 AI 특이점이 가까워졌다고 예상하는 거죠. 이에 반해 AI분야에 조금이라도 이해가 있는 사람들은 narrow / general AI를 구분해서 인식합니다.
먼저 narrow (혹은 shallow) AI는 아주 좁고 잘 정의된 문제를 풀기 위해 특화된 모델들을 말합니다. 앤드류가 예시로 들은 것 중 하나가 GPS 내비게이션 - 1960년대 만들어진 A*라는 심플한 알고리즘으로 다양한 조건을 고려한 최단 경로를 찾아줍니다. 그리고 대부분의 이메일 시스템에서 제공하는 스팸 메일을 걸러주는 필터도 있죠. 알파고도 바둑에서 임의의 수를 둠으로써 기대할 수 있는 집을 계산하는데 특화된 narrow AI입니다. 자율주행자동차는 수많은 narrow AI의 집합이구요. 대부분의 상업적인 성과는 narrow AI에서 나왔습니다.
한편, General AI는 업계 외 사람들이 인공지능의 지향점이라고 생각하는 로봇이나 인공생명체의 지능을 말합니다. SF 창작물에서는 오래 전부터 다뤄졌지만, Andrew Ng교수는 우리가 죽기 전에 이 분야에서 큰 성과가 나올 가능성은 아직 못 찾고 있다고 합니다. 사람들은 흔히 두 분야가 같은 발전선상에 있다고 착각해서, narrow AI가 빠르게 발전하니까 조만간 general AI도 큰 일이 오지 않을까 기대반 걱정반 썰을 푸는데, 이 분야 슈퍼 구루가 보기엔 다 근거없는 상상일 뿐이죠.
사회적 현상으로 재미있는 부분이 있습니다. 자연어로 상호작용을 하는 챗봇이나 로봇류는 마치 general AI인 것처럼 마케팅을 하지만, 실제로는 narrow AI로 구현되어 있습니다. 사용자들은 뭔가 일상적인 대화를 하려고 하지만, 얼마 지나지 않아서 자연어 단축키 입력도구로 자리 잡죠.
지금은 우리가 소프트웨어를 프로그래밍하지만, 앞으로는 가르치게 될 것이다. programming computer와 teaching computer가 같은 의미로 사용될 것이다.
아쉽게도 Andrew Ng의 설명은 여기까지였습니다. 하지만 제 박사 논문 주제와 관련 있는 시각이어서, 제 나름대로의 한 번 썰을 풀어볼께요. 일반적인 의미의 프로그래밍은 컴퓨터가 어떤 동작을 수행해야 하는지 명확하게 instruction을 제공하는 수단입니다. 로봇을 예로 들자면, “앞으로 가다가 적외선 센서에 장애물이 1미터 이내로 감지되면 오른쪽으로 30도 꺾는다. 반복” 라고 지시를 내리는 게 프로그래밍이죠. 반면 teaching은 예시나 지식의 전달로 이루어집니다. 예를 들어, “로봇, 그 쪽으로 가면 벽에 부딪치니까 안돼. 지금은 오른쪽으로 돌아서 나오는 거야.”
두 방식의 차이는 무엇일까요? Teaching은 진입 장벽이 낮습니다. 프로그래밍 언어를 모르는 일반인들도 간단한 인공지능을 학습시킬 수 있죠. 하지만 teaching computer라고 가르치는 사람들(주로 domain expert)에게 편하기만 한 방식은 아닙니다. 인간은 보편적으로 작업의 난이도를 인식하는 능력을 가지고 있는데, 그게 컴퓨터한테는 적용이 되지 않기때문에, 한참을 가르치고 나서도 컴퓨터가 얼마나 믿을만 한지 모르는 상황이 발생하죠. 관련 연구로 Why PBD Systems fail라는 Tessa Lau의 논문이 있습니다. 예를 들면, 내가 컴퓨터한테 1+1을 가르쳤더니, 523+43는 쉽게 푼다. 그래서 1–1 도 쉽게 할수 있겠지라고 믿었더니? “-”가 무슨 뜻인지를 모르겠다네?
반면 Programming은 컴퓨터로 하여금 철저하게 규칙대로 움직이게 하기 때문에, 뭔가 문제가 발생했을 때 잘게잘게 쪼개 들어가면 결국 규칙을 수정하는게 가능하죠. Teaching은 수많은 데이터를 제공해서 간접적으로 컴퓨터를 조작하는 것이라서, 사용자의 이해도와 조작성이 떨어지기 마련입니다.
작년에 한참 이슈가 되었던 Cathy O’neil의 TED talk — “인공지능 모델은 학습 데이터에 내제된 편향성도 함께 학습하기 때문에 인간보다 편향성이 작을 수 없다”. 이에 대한 앤드류 응의 반론은, “일단 편향성이 인지되고 나면, 알고리즘이나 데이터에서 그 편향성을 보정하는 게 인간을 재교육하는 것보다 훨씬 쉽다."
인공지능의 투명성은 얼마전 지인과 SNS에서 장시간 논의를 했던 주제이다. 그 때 포인트는 AI(특히 machine learning의 경우) 동작 원리가 완벽하게 투명한데 왜 transparency를 지적하느냐였음. 하지만, 앤드류 응 교수의 포인트는 동작원리에 대한 투명성이 아니라, 큰 기업들이 수집한 데이터를 어떻게 가공해서 어떤 식으로 사용하는지 파악할 길이 없다는 것이었음.
“AI가 왜 잘 작동하는지 설명할 수 없다면 어떻게 믿고 쓸 수 있나?” — 인턴이 이런 질문을 했음. 앤드류 응이 답하길,
누구에게 어떤 목적으로 설명하는지에 따라 상황은 완전히 달라진다. 먼저, 청자가 엔지니어라면, 쉽게 설명할 방법이 없다. 아직도 ML(머신러닝)은 중세의 석공들이 다리를 만드는 과정과 흡사하다. 중세의 석공들은 짓던 다리가 무너지는 시행착오를 여러 번 거치면서 다리를 완성하는데, 완성된 다리가 왜 무너지지 않는지는 체계적으로 설명을 하지 못하고 경험칙으로 전수되어왔다. 현재의 인공지능이 그런 상황이라고 보면 된다. 지금도 나는 단순한 인공지능모델이 아무 문제없이 동작하는 걸 볼 때마다 깜짝 놀란다. 체계적인 이론이 확립되기 전까지는 직관과 경험을 통해 해결안을 찾을 수 밖에 없다.
하지만, 일반 사용자에게 양자 택일 (e.g. 한 이메일이 스팸이거나 아닌 경우)처럼 단순한 결과를 제시하는 상황이라면, 어려운 설명은 필요치 않다. 사용자가 이해할 수 있고, 판단에 도움이 되는 정보를 잘 디자인해서 제공하면 된다.
마지막으로, 사용자와 AI가 함께 작업을 수행해야 하는 경우도 있을 수 있다. 자율주행차의 경우가 그러하다. 평상시에는 AI가 운전을 하지만, 순간적으로 사용자의 개입이 필요한 상황이 오면, 빠르게 상황을 설명하고 올바른 선택을 내릴 수 있게 도와야 한다.
앤드류 응은 다시 한 번 UX의 중요성을 강조했습니다. 사용자 입장에서 필요로 하는 AI explanation의 종류에는 어떤 것들이 있을까요?
1. 아무것도 설명하지 않기: “나만 믿고 따라와!” — 정확도가 진짜 100%에 수렵하거나, 잘못 되도 큰 문제가 없는 경우.
2. 확신도 Confidence level: “이번엔 90% 정확하다고 생각해” — 조금 자신감이 떨어진 AI이다. 항상 비슷한 확신도라면 굳이 보여줄 필요가 없다.
3. 결과 미리보기: “내가 시키는 대로 하면 이렇게 될거야" — 정답이 존재하지 않거나 애매모호한 경우, 차라리 먼 결과를 미리보여주는 것이 사용자에게 필요한 정보일 수도 있다. 좀 더 세부적으로 들어가자면, 결과를 어떤 식으로 설명하는지도 중요하다. 예를 들어서 lower-bound가 확실하고 제품의 특성 상 리스크를 관리하는게 중요하다면, “최악의 경우도 …는 될 수 있다고 보장할께”식으로 설명하는게 어떨까?
4. 퉁쳐서 설명하기: “사람들이 너가 산 물건이랑 같이 이거 샀데" — 아마존에서 관련 상품 추천할 때 자주 쓰는 설명법이다. 실제로 쓰이는 모델은 아마 훨씬 복잡할 테지만, 퉁쳐서 설명하는데에는 다 이유가 있다.