본문 바로가기

[문병로의 알고리즘여행] 쉬운 일은 쉽게 하자

중앙일보 2020.11.21 00:04 종합 27면 지면보기
문병로 서울대 컴퓨터공학부 교수

문병로 서울대 컴퓨터공학부 교수

컴퓨터 소프트웨어 분야의 전설적 인물인 애즈거 다익스트라는 AI(인공지능)를 미국인 특유의 천진난만함의 표현이라 했다. 2012년 딥 러닝 혁명이 일어나기 전까지는 인용할 만한 말이었다. 지난 8년간 놀라운 변화가 일어났다. 새 시대라고 말하기에 충분한 레벨이다. 한편으로는 AI가 감당하기 힘든 수준의 기대도 만연하고, 이 붐에 편승한 오버 클레임도 흔하다.
 

쉬운 일과 어려운 일 함께할 경우
잘할 수 있는 딴 일에 방해될 수도
쉽게 할 일과 어렵게 할 일을
조화시키는 것이 진짜 실력

프로젝트를 하다 보면 학생들은 흔히 전 과정을 첨단기법으로 도포해야 한다는 강박관념 같은 걸 가진다. 현재 필자의 연구실에서 하고 있는 기업 프로젝트에서도 여지없이 그렇다. 어려운 초반을 넘기면 중반 단계까지는 비교적 순탄하다. 첨단기법을 구사하는 재미를 느끼고 그 위력에 감탄한다. 필연적으로 만나게 되는 마지막 단계는 남아있는 작은 에러와 특수한 케이스들과의 전쟁이다. 대부분의 기계학습 프로젝트에서 반드시 거치는 단계다. 문제에 따라 1%일 수도 있고, 20%일 수도 있다.
 
흔히 마지막 단계에서 요즘의 대표적 첨단기법인 딥 러닝으로 끙끙대면서 겨우 0.5% 개선되는 일이 간단한 후처리 알고리즘 하나로 단숨에 2% 개선되기도 한다. 이럴 때 학생들은 첨단기법을 쓰지 않고 결정론적 알고리즘을 하나 덧붙이는 것에 대해 죄책감을 느낀다. 이런 것을 ‘땜질’한다고 생각하기도 한다. 경험이 부족한 착한 마음이 부르는 허세다.
 
필자는 학생들에게 쉬운 일은 쉽게 하라고 노래를 부른다. 쉬운 일을 어려운 일 속에 집어넣어 함께 해결하려다 보면 그 쉬운 일이 어려운 일을 방해한다. 비유하자면, 기업의 CEO가 일정 관리까지 직접 하는 것은 어울리지 않는다. 자신은 추상화 레벨이 높은 일을 하고, 단순한 일은 비서가 하도록 하는 것이 효율적이다. 첨단기법도 어울리는 수준까지만 기대하는 것이 좋다. 감당이 힘든 희소한 케이스들까지 과하게 부담 지우면 잘할 수 있는 다른 일들에 오히려 방해 거리를 만들게 된다.
 
알고리즘여행 11/20

알고리즘여행 11/20

노벨 경제학상을 받은 심리학자 대니얼 카너먼은 명저 『생각에 관한 생각』에서 인간의 사고를 시스템 1과 시스템 2로 나누었다. 시스템 1은 직관적이고 즉각적이고, 별 노력없이 자동으로 되는 사고다. 시스템 2는 느리고 시간이 걸리는 깊은 사고다. 현재까지의 AI가 잘하는 일이 주로 시스템 1에 속하는 일이다. 이미지 인식, 자연어 처리 분야가 대표적이다. 현재 AI는 시스템 1에서 시스템 2로 진입해보려고 꿈틀거리는 단계다. 아직은 요원하다. 현재로써 시스템 2는 레벨과 관점이 다른 여러 접근법들이 결합되지 않고는 힘들다.
 
때로는 품질을 조금 희생하면서 속도를 높인 근사 알고리즘이 유용할 때도 많다. 필자는 박사과정 때 40시간 걸리던 코드를 0.1% 미만의 품질 희생을 감수하고 근사 작업으로 바꾸어 1분으로 줄인 적이 있다. 10년쯤 전에는 투자 분야의 리밸런싱에 유용하지만 시간이 너무 걸려 현업에서 아무도 사용하지 못했던 유니버설 포트폴리오란 알고리즘을 미소한 품질 희생으로 순식간에 계산할 수 있는 근사 알고리즘으로 바꾸어 특허를 받기도 했다. 이런 일에는 중복 계산 해소, 지나친 엄밀함의 희생, 자료구조의 개선 등이 포함된다. 인간들이 해놓은 작업은 대부분 비효율이 숨어 있다.
 
품질이 0.1% 떨어지는 것은 대부분의 비즈니스에서 거의 영향이 없다. 쉬운 알고리즘을 첨단 알고리즘 뒤에 붙여 품질을 높이거나 근사 알고리즘을 써서 속도를 높였다고 아무도 시비 걸지 않는다. 우아하다는 것은 하나의 첨단기법으로 처음부터 끝까지 블랙박스처럼 끝내는 것이 아니다. 쉽게 할 일, 잡스럽게 할 일, 점잖게 할 일을 제대로 구분하는 것이 진정한 실력에 가깝다. 쉽게 할 일을 쓸데없이 어렵게 푼 논문이 드물지 않다. 이런 면에서 학교와 기업 모두 어느 정도는 일의 구분이 안 된 채 돌아가고 있다.
 
1980년대까지만 해도 결정론적 사고가 학계의 주류였다. 규칙은 인간의 논리를 알고리즘으로 옮기는 것이었고, AI에서의 추론도 그런 식이었다. 그런 분위기에서 인공신경망이나 유전 알고리즘같이 비결정론적인 접근법은 엄밀하게 사고하지 못하는 사람들이 하는 것이란 투의 시각이 있었다. 시대가 바뀌어 이제는 반대의 경향이 생겼다. 결정론적 논리로 상황에 대응하는 것은 딥러닝과 같은 비결정론적 기법을 제대로 구사하지 못해서 그런 것이 아닌가 하는. 과하면 좋지 않다. 조화를 이루어야 할 두 트랙이다.
 
문병로 서울대 컴퓨터공학부 교수
공유하기
광고 닫기