현대 인공지능의 키워드는 심층학습(Deep Learning)이다. 심층학습은 인공신경망 기법을 활용한 방법론으로, 복잡한 데이터를 학습하여 패턴을 인식하는 기술이다. 심층학습은 특히 분류(Classification)나 군집(Clustering)을 통한 사물의 인식에 가장 좋은 성능을 보여준다. 또한 심층학습은 데이터를 학습해 데이터를 생성하는 모델(Generative Model), 행위의 결과(Reward)로부터 학습하는 강화학습(Reinforcement Learning) 등 새로운 방법으로 진화되고 있다. 결과론적으로 심층학습이 보여주는 성과는 비단 연구계뿐만 아니라 산업계의 트렌드까지 변화시키고 있다. 그러나 심층학습은 만능이 아니다. 층학습은 여전히 불완전한 기술이며, 그 한계가 명확하기 때문이다. 최근 심층학습을 필두로 한 인공지능에 대한 관심사가 나날이 커짐에 따라 이 기술에 대한 오해도 역시 커지고 있는 실정이다.
텐서플로우, 토치, 카페 등 수 십여 종의 심층학습 공개SW는 분명 연구자의 진입장벽을 현저히 낮췄다. 현재 심층학습에 널리 활용되는 그래픽 연산처리장치(Graphical Processing Units, GPU)는 사실 활용이 매우 어렵다. 수천 개의 연산코어를 동시에 활용하기 위해서는 SW뿐만 아니라 HW에도 넓은 이해가 필요하기 때문이다. 그러나 공개SW는 이러한 장벽을 낮췄다. 연구자가 GPU에 대한 지식이 없어도 공개SW 솔루션을 통해 쉽게 활용할 수 있기 때문이다. 또한 심층학습에 활용되는 방법들이 공개SW를 통해 공유되면서 최신 연구결과를 손쉽게 적용할 수 있다는 것 역시 장점이다. 이러한 장점은 오히려‘공개SW를 활용하면 인공지능을 쉽게 구현할 수 있다’는 오해를 낳았다.
공개SW 활용해 심층학습을 구현하는 것 자체는 쉽다. 그러나 제대로 된 인공지능 시스템을 만들기란 여전히 먼 길이다. 그 이유는 데이터에 있다. 심층학습은 말 그대로 정보를 학습하는 기법인데, 그 원료가 데이터다. 데이터를 학습에 활용하기 위해서는 많은 비용이 필요하다. 사실 심층학습은 도구일 뿐이다. 따라서 이에 필요한 데이터를 수급하는 것이 무엇보다 선결돼야 할 과제이다. 많은 연구자들이 양질의 데이터를 확보하기 위해 골머리를 앓고 있다. 국내 인공지능 관련 스타트업 역시 데이터로 인해 어려움을 겪고 있다. 하지만 데이터를 확보됐다고 해도 끝은 아니다. 이것을 다양한 심층학습 기법에 적용해 볼 컴퓨팅 자원이 필요하다. 심층학습은 기본적으로 경험적인 결과다. 무수히 많은 모수들을 조정해가며 최적의 결과를 도출하는 접근이 일반적이기 때문에, 컴퓨팅 자원은 인공지능 구현에 있어 다다익선이다. 따라서 공개SW를 활용한 심층학습의 구현은 도구적인 관점에서 진입장벽이 낮아졌을 뿐이지, 공개SW가 있기 때문에 쉽게 인공지능을 구현할 수 있는 것은 아니다.
심층학습의 난제
그렇다면 현재 심층학습이 겪고 있는 어려운 문제는 무엇일까? 이 칼럼에서는 그 문제를 크게 세 가지로 나누어 살펴보겠다. 첫 번째는 학습(Training)과 시험(Testing) 데이터의 분포에서 찾을 수 있다. 일반적으로 심층학습의 성능을 측정할 때는 시험 데이터의 예측 성능을 활용한다. 그러나 보통 시험 데이터는 전체 데이터의 일부를 활용한다. 다시 말하자면, 전체 데이터가 100이라고 가정 할 때, 학습에는 80이 활용되고 나머지 20을 시험 데이터로 사용한다는 것이다. 바로 이 부분이 학습-시험 데이터가 동일한 분포에서 나왔다는 것이다. 이것이 시사하는 바는 무엇일까? 예를 들어 시뮬레이션 환경에서 로봇 팔이 물체를 집는 알고리즘을 심층학습을 활용해 구현했다고 보자. 여기서 시험 데이터가 여전히 시뮬레이션 환경에서 생산됐다면, 학습된 인공지능이 물건을 집는 행위를 잘 처리할 수 있을 것이다. 그러나 이 인공지능을 실제 로봇 팔에 적용한다면 필연적으로 실패할 가능성이 높다. 그 이유는 시뮬레이션 환경과 실제 환경이 매우 다르기 때문이다. 실제 환경에서는 중력, 공기와의 마찰, 관성, 기계의 갑작스런 오작동 등 고려해야 할 요소가 매우 많다. 따라서 실제 환경에 적용 하기 위해서는 학습 데이터를 실제와 가깝게 구현하던가, 시뮬레이션 환경을 실제에 가깝게 구성해야 할 필요가 있다. 어느 쪽도 만만치 않다. 또 다른 예로는, 고전게임기 ATARI 2600의 벽돌깨기(Breakout) 게임을 구현한 강화학습에서도 찾을 수 있다. 벽돌깨기 인공지능은 게임 인공지능의 혁신적인 결과 중 하나였지만, 벽돌깨기 게임의 명도를 20% 올렸을 때는 제대로 작동하지 않는다. 인간이 보기에는 큰 차이가 아니지만 인공지능이 바라보기에는 전혀 다른 문제라는 것이다.
심층학습의 두 번째 한계는 지속적인 학습이 불가능하다는 점이다. 우리는 흔히 인공지능을 실시간으로 학습할 수 있는 것처럼 오해할 수 있다. 그러나 현재 심층학습의 기술로는 지속적인 학습이 어렵다. 예를 들어 100만 개의 데이터로 학습한 인공신경망 모델이 있다고 가정하자. 여기에 10만 개의 데이터가 추가됐을 때, 이미 학습된 신경망에 추가적으로 10만 개를 학습하여 성능을 더 향상시킬 수 있을까? 이에 대한 결론은“알 수 없다”가 답이다. 10만 개를 학습하여 성능이 올라갈지, 아니면 110만 개를 다시 학습하여 성능이 향상될지는 알 수가 없다. 효율의 관점에서 봤을 때는 10만 개를 추가적으로 학습하는 것이 타당해 보인다. 그러나 현재는 10만 개를 추가적으로 학습하던 110만 개를 다시 학습하던 일단 시도를 해 보고 선택하는 것이 일반적이다. 이러한 현상의 원인은 인공신경망의 구조적인 특성에서도 유추할 수 있다. 인공신경망을 학습하는 행위는 수학적으로 비용함수의 최소값을 찾는 과정이다. 그러나 비용함수의 차원은 인공신경망의 가중치 개수이며, 보통 수백만 개를 넘어서기 때문에 결과적으로 수백만 차원의 비선형 함수에서 최소값을 찾는 문제로 귀결된다. 보통 5차원만 넘어서도 차원의 저주(Curse of Dimensionality)로 인해 해석적으로 최소값을 구하기 어렵고, 수치적인 근사로 찾는 방법이 일반적이다. 따라서 100만 개로 학습한 최적의 인공신경망을 10만 개로 추가 학습한다고 해도 의미 있는 결과를 보장할 수 없다.
심층학습의 마지막 한계는 설명가능성이 낮다는 점이다. 현재 심층학습의 성능은 비록 설명이 불가능해도 학계에서 받아들여지고 산업계에 활용될 만큼 높다. 그만큼 높은 성능이 현대 인공지능의 붐을 이끈 원동력이다. 그러나 어떠한 방법론을 쓰던 성능이 좋기만 하면 되는 분야가 있는 반면, 그 인과관계를 철저히 규명해야 하는 분야도 있다. 예를 들어 자율주행차가 사고를 냈는데, 그 원인을 특히 심층학습에서 찾으려 한다면 매우 어려울 것이다. 그 이유는 현재 심층학습 기술의 설명가능성은 매우 낮기 때문이다. 인공지능의 설명가능성은 보수적인 관점에서 인공지능이 우리의 삶과 공존할 수 있는 마지노선일 것이다. 한편으로는 설명가능성에 집중하기보다, 경험적으로 인공지능을 도입하는 것이 효율적이라면 응당 도입해야 한다는 관점도 있다. 현재 많은 과학기술들은 그 역효과를 철저히 규명하고 보장하기는 어렵다. 기술을 먼저 도입하고 나서 발생하는 문제를 단계적으로 대처해 나가자는 관점이다. 그러나 인공지능이 점점 고도화됨에 따라 인공지능이 인적·물적 피해의 직접적인 원인이 될 수도 있다. 이것이 설명 불가능하여 모든 책임을 단순히 인공지능을 사용한 주체에 부과한다면 매우 부조리할 가능성이 높으며 사회적 문제를 야기할 것이다.
결론
지금까지 심층학습의 한계에 대해 논의했다. 현재 심층학습의 성능은 이러한 한계가 무색할 정도로 좋기 때문에, 제기된 문제에 대해 낙관적인 연구자들도 많다. 그러나 성공적으로 심층학습을 사용하여 높은 성능을 내기 위해서는 많은 도전이 기다리고 있다. 물론 앞서 제기한 문제들의 해결이 궁극적인 사람 수준의 인공지능을 구현하기 위한 필요조건은 아닐 수도 있다. 하지만 적어도 심층학습에 대한 막연한 호의나 상상은 지양해야 할 것이다. 현재 심층학습 기술은 한계가 분명하며 이를 극복하기 위한 노력이 이어지고 있는 상황이다. 지속적인 학습을 위해 학습하는 방법을 학습하는 메타 학습, 심층학습의 인과관계를 규명하는 설명 가능한 인공지능(Explainable AI) 연구는 심층학습을 한 단계 더 발전시키는 계기가 될 것이다.