[딥러닝논문리뷰] 과연 딥러닝은 전지전능한가?
오랜만에 글을 씁니다. 이번에 소개할 논문은 Gary Marcus의 Deap learning: a critical appraisal 입니다.
이 논문은 한 달 전쯤 아카이브에 공개되자 마자 여러 논란을 불러왔습니다. 그도 그럴 것이 이 논문은 딥러닝의 한계점에 대해 다루고 있기 때문입니다.
개인적으로는 실제로 딥러닝을 연구하시는 분들에게는 이미 널리 알려져 있었지만 대중들에게는 잘 알려지지 않은 이야기들을 일목요연하게 잘 정리했다는 점에서 높이 평가하고 싶습니다만, 이 논문에서 딥러닝의 목적이라고 이야기하는 artificial general intelligence나 이를 위해 저자가 제시한 해결방향 등에는 여전히 논란의 여지가 있을 것 같습니다. 따라서 이 글에서는 논문에서 제시한 딥러닝의 한계점 10가지에 대해서만 살펴보겠습니다.
Deep learning thus far is data hungry
딥러닝 모델을 하나 제대로 학습시키기 위해서는 정말 많은 데이터가 필요합니다. 예를 들어, AlexNet, ResNet, GoogLeNet 등에 사용된 ImageNet 데이터베이스에는 총 1400만여 장의 이미지가 포함되어 있습니다. 반면에 사람은 몇 개의 예시만 가지고서도 금방 학습을 하죠.
논문 중 예시로, 독일어에 10살에서 21살 사이의 여자 형제를 가리키는 schmister 라는 단어가 있다고 합니다. 사람은 이 것에 대해 한 가지 예시만을 배우고도 나에게 schmister 가 있는지 혹은 지인 중에 schmister 가 있는 사람이 있는지 손쉽게 추론할 수 있습니다. 더 나아가서는 지금은 schmister 가 없지만 예전에 있었는지 여부까지도 쉽게 답을 찾을 수 있습니다.
사람은 이렇게 추상적 개념을 학습하는 데 아주 뛰어납니다. 그 동안의 무수한 학습의 결과 덕분이 아닌가 생각할 수도 있지만 연구에 따르면 신생아나 한 살 미만의 아이들도 적은 수의 예시로부터 추상적인 개념을 학습하는 능력이 있다고 합니다. 추상적인 개념을 학습한다는 것은 곧 주어진 문제를 일반화(generalization) 한다는 것입니다. 이렇게 되면 새로 주어진 문제가 기존에 배운 예시 중에 없을 때도 일반화된 해결 방법을 기반으로 그 문제에 잘 대처할 수 있게 되죠. 하지만 딥러닝은 이런 능력이 사람에 비해 현저하게 떨어지고, 따라서 딥러닝으로 어떤 문제를 풀기 위해서는 가능한 종류의 예시를 모두 학습시켜 줘야 합니다.
Deep learning thus far is shallow and has limited capacity for transfer
딥러닝의 '딥(deep)'은 구조적 측면에서의 딥입니다. 즉, 많은 층을 가지는 네트워크란 뜻이죠. 딥러닝이라는 단어 자체가 컴퓨터가 어떤 심화된 학습을 통해서 문제를 해결할 수 있게 되는 것 같은 인상을 주지만 사실은 그렇지 못합니다. 위에서도 얘기했듯이 딥러닝은 여전히 주어진 문제에 대해 아주 얕은 수준의 이해밖에 하지 못합니다. 그렇기 때문에 딥러닝은 전이학습(transfer learning)에 한계를 보입니다.
예시로 든 것이 딥마인드에서 발표했던 벽돌깨기 게임을 하는 딥러닝 모델입니다. 이 모델은 강화학습으로 학습된 모델인데 스스로 게임을 잘 할 수 있는 방법을 터득하고 벽돌깨기 챔피언들을 이기는 성과를 거두었습니다. 하지만 사실 딥러닝 모델이 게임을 잘 하는 방법을 터득했다는 말은 맞지 않습니다. 딥러닝 모델은 게임의 노하우를 알게된 것이 아니라, 그저 가능한 수많은 선택지 중에 점수가 가장 높아지는 방법을 선택한 것 뿐입니다. 실제로는 이 방법을 사용하면 왜 점수를 많이 받게 되는지에 대해서는 전혀 이해하지 못하고 있죠. 따라서, 벽돌깨기 게임에서 중간에 단순한 장애물을 놓자 이 모델은 전혀 작동하지 못합니다.
Deep learning thus far has no natural way to deal with hierarchical structure
딥러닝을 이용함으로써 획기적으로 발전된 분야 중 하나가 자동번역이나 음성인식 같이 언어와 관련된 분야입니다. 그런데 사실 딥러닝은 언어를 다루기에 적합한 방법은 아닙니다.
언어는 계층적인 구조를 가지고 있습니다. 영문법을 배우면 맨 처음에 나오곤 하는 문장 형식과 같은 작은 구조들이 계층적으로 쌓여있는 모양이죠. 그런데 딥러닝은 이런 구조를 이해하지 못합니다. 좀 더 정확히는 이런 구조를 나타낼 수 있는 딥러닝 모델이 현재 존재하지 않습니다. 이런 근본적인 구조적 문제를 해결하지 못하는 이상, 현재 딥러닝이 언어 관련 분야에서 보이고 있는 좋은 성능은 곧 한계에 부딪칠 것입니다.
Deep learning thus far has struggled with open-ended inference
딥러닝은 open-ended 문제에 취약합니다. 가령 언어의 경우, 앞뒤에 어떤 문장이 붙느냐에 따라 문장에 대한 해석이 완전히 달라지는 경우가 있습니다. 또는 기존에 알고 있는 지식에 따라서도 뜻이 달라질 수 있습니다. 일부러 반대로 이야기 함으로써 뜻을 강조하는 반어법이나 직접적으로 이야기하지 못하고 돌려 말하는 것이 그 예시가 될 수 있습니다. 하지만 딥러닝 모델은 표면적으로 나타난 것만을 이해하기 때문에 이런 문맥을 살필 수 없습니다.
Deep learning thus far is not sufficiently transparent
딥러닝 모델은 기본적으로 블랙박스입니다. 안에서 무엇이 어떻게 돌아가는지 비록 수식적으로는 알아도 우리가 이해할 수 있는 방식으로는 알지 못합니다. 예를 들어, 이미지에서 고양이를 구분해 내는 딥러닝 모델이 이미지의 어떤 부분을 보고 고양이인지 아닌지 판단하는지 알지 못하죠.
이런 딥러닝의 불투명성은 딥러닝을 더욱 다루기 어렵게 만듭니다. 덕분에 엔지니어들은 딥러닝 모델의 수많은 하이퍼파라미터들을 어떻게 조정해야하는지, 이 모델의 문제점이 무엇이고 모델의 성능을 올리기 위해서 어떻게 해야하는지 알 수 없습니다.
Deep learning thus far has not been well integrated with prior knowledge
딥러닝에서는 문제에 대한 배경지식이 별로 고려되지 않습니다. End-to-end learning이라고 해서 raw signal을 그대로 넣어서 바로 원하는 답을 찾아내는 방식이 선호되기도 합니다. 특히 머신러닝 컴피티션 사이트인 kaggle에서는 주어진 입력값으로부터 보다 좋은 성능을 뽑아내는 것이 주를 이루지요.
이렇게 아무런 배경지식 없이도 문제 해결에 유용한 특징을 뽑아낼 수 있는 것이 딥러닝의 가장 큰 장점이기는 하지만, 배경지식의 적절한 사용은 문제 해결에 큰 도움을 줄 수 있습니다. 하지만 배경지식을 어떻게 딥러닝 모델과 융합할 지에 대한 문제는 남아있습니다. 아직 이런 종류의 질문이 심각하게 고려된 적이 없기 때문입니다.
Deep learning thus far cannot inherently distinguish causation from correlation
상관 관계와 인과 관계는 언뜻 비슷하게 느껴지지만 엄연히 다릅니다. 가령 사람의 키와 그 사람이 알고 있는 단어의 개수 사이에는 상관 관계가 있지만 인과 관계는 존재하지 않습니다. 하지만 딥러닝 모델이 과연 이 것을 구분할 수 있을까요? 만약 딥러닝 모델이 상관 관계를 인과 관계로 알고 학습한다면 그 상관 관계에 부합하지 않는 케이스가 나타났을 때 적절한 답을 내놓을 수 없을 것입니다.
Deep learning presumes a largely stable world, in ways that may be problematic
딥러닝에서는 아주 안정적인 세계를 가정하고 문제를 풀어나갑니다. 가령 바둑같은 경우는 한정된 공간에서 정해진 룰을 따라서만 진행되죠. 하지만 당연하게도 실제 세상은 그렇지 않습니다. 주식 시장의 변동을 예측하거나 하는 문제에는 아주 많은 요소들이 다양하게 영향을 미치고 그 범위도 정해져있지 않기 때문에 딥러닝이 좋은 성능을 내기가 어렵습니다. 구글에서 독감 유행 주기를 예측하기 위해 만든 Google Flue Trends는 처음에 좋은 성능을 보였지만 2013년의 신종 독감 유행을 전혀 예측하지 못하고 그 영향으로 이후에도 빗나간 예측을 내놓았습니다.
Deep learning thus far works well as an approximation, but its answers often cannot fully trusted
딥러닝은 다양한 분야에서 좋은 성능을 보이고 있지만 검은색과 노란색 줄무늬를 스쿨버스로 착각하는 것과 같은 실수를 하기도 합니다. 사람이 물체를 인식하는 것과는 전혀 다른 알고리즘으로 작동되기 때문에 (사람이 인식하는 방식을 "흉내"내고 있기 때문에) 사람이 생각하기에는 말도 안 되는 실수를 하게 되는 것입니다. 이 문제를 극복하기 위한 연구가 진행되고 있지만 아직까지 이렇다 할 해답을 찾지는 못하고 있습니다.
Deep learning thus far is difficult to engineer with
마지막으로 딥러닝은 사용하기 까다로운 도구입니다. 앞에서도 언급되었던 딥러닝의 특성들, 즉 모든 상황에 대응할 수 있을 만큼 많은 데이터가 필요한 것과 딥러닝 모델의 학습 내용이 불투명한 것 때문에 엔지니어들은 딥러닝 모델을 디자인하고 튜닝하는데 어려움을 겪습니다. 전통적인 프로그래밍과 달리 문제점을 파악하고 디버깅하는 과정이 어렵고, 개선하고자 무언가를 수정하더라도 그것이 향상된 결과로 이어질지도 알 수 없습니다.
구글의 한 엔지니어는 딥러닝에 대해 "고금리 신용카드"라고 표현하기도 했습니다. 당장 눈 앞의 한정된 문제에 사용하기엔 아주 유용하고 좋아보이지만 이게 장기적인 관점에서 제대로 작동할 지에 대한 보장이 없기 때문입니다.
@홍보해
홍보 감사드립니다.
👌👌👌👌👌👌👌👌🎆
굉장히 좋은 글이네요. 팔로우하고 갑니다!! 항상 새로운 기술들은 마치 표현하신 것처럼 전지전능해보이지만 실상은 그렇지 않죠. 이 점을 잘 설명해주셔서 많은 도움이 되었습니다.
감사합니다. 요 몇 년간 딥러닝에 대한 인식은 언론에 의해 과장된 면이 많았죠. 그 부분을 딱 꼬집어주는 논문이었던 것 같습니다.
딥러닝에 대해서 한 번 더 생각하며 글을 읽었습니다. 저도 글 주제를 제가
공부하는 논문 리뷰로 생각하고 있습니다. 팔로우해서 많이 배워 가겠습니다.
읽어주셔서 감사합니다.
좋은 글 감사드립니다. 딥러닝의 한계를 극복하려면 신경과학이나 심리학 등의 연구가 병행되어야 할 것 같습니다.
감사합니다. 아무래도 지금처럼 딥러닝에 대한 맹신적인 태도로는 곧 기술적 한계가 드러날 것 같습니다.
좋은 글 잘봤습니다.
역시 general intelligence를 개발하는데는 꽤 많은 한계가 있는 딥러닝입니다.
당장 두가지 일을 한꺼번에 하는 모델 개발도 힘드니까요.
감사합니다. 말씀하신 대로 컴퓨터가 일반화된 지능을 가지기까지 아직 갈 길이 먼 것 같습니다.
고금리 신용카드라니 정말 기가 막힌 비유네요. 딥 러닝에 이런 측면도 있었군요.!!
네, 참 적절한 비유인 것 같습니다. 지금 지혜롭게 사용해야 나중의 수고를 덜텐데요...