본문 바로가기
ML, DL Basic

딥러닝의 역사 알아보기

by mjk0618 2023. 10. 18.

ChatGPT의 등장 이래 대규모 언어 모델에 대한 연구가 가속화되고, 관련 뉴스가 연일 전해지며 인공지능은 전 세계적인 트렌드가 되었습니다. 그러면서 자연스럽게 AI, 머신러닝, 딥러닝에 대한 관심도 증가하고 있습니다. 그런데 그들이 각각 무엇을 의미하는지에 대해서는 정확히 알지 못하는 경우가 대부분입니다. 결론적으로 머신러닝은 인공지능 모델을 학습하는 방법론이며, 딥러닝은 그 하위 분야입니다. 또한 딥러닝이 최근 갑작스럽게 등장하고, 빠르게 발전하는 분야라는 오해도 매우 흔합니다. 사실 딥러닝에서 사용되는 대부분의 개념은 역사가 생각보다 깊습니다. 이런 내용들에 대해서 조금 더 구체적으로 알아보기 위해서 관련 내용을 정리해보았습니다.

 

이 게시글은 이언 굿펠로우(Ian Goodfellow), 요슈아 벤지오(Yoshua Bengio), 애런 쿠르빌(Aaron Courville)의 저서인 심층 학습(Deep Learning)을 읽고 정리한 내용을 바탕으로 작성되었습니다. 도서 내용이 전부 담겨있는 것은 아닙니다. 한 챕터마다 관련 내용을 한 엮어서 하나의 게시글로 정리하려합니다. 추후 작성되는 게시글은 관련 글을 한 번에 모아볼 수 있도록 목차를 함께 작성할 예정입니다. 저는 도서글 구매해서 읽었지만, 깃허브에서 PDF 파일을 다운받을 수도 있습니다.

 


딥러닝 개요

1842년, 최초의 프로그래머라고 불려진 에이다 러브레이스에 의해 프로그래밍이 가능한 컴퓨터가 처음 등장했을 때, 사람들은 기계가 지능을 갖출 수 있을지 궁금해했습니다. 인공지능 초창기에 이 분야는 인간은 지적으로 풀기 어렵지만, 컴퓨터에게는 비교적 쉬운 문제, 즉 일련의 형식적이고 수학적인 규칙들로 서술할 수 있는 문제들을 빠르게 풀어냈습니다. 그런데 시간이 지나면서 인공지능의 진정한 난제는, 사람들은 쉽게 해내지만 형식적으로 서술하기 어려운 과제를 푸는 것이라는 점이 밝혀졌습니다. 

 

흔한 예시로는 눈으로 사물을 구별하는 문제가 있습니다. 사과와 오렌지를 구별하는 것은 어려운 문제가 아니지만, 어떤 근거로 이러한 문제를 해결했는지를 서술하라고 하면 정말 난감합니다. 색깔과 질감으로 구분했다고 말할 수 있을까요? 그렇지 않습니다. 흑백 사진이어도 우리는 둘을 어렵지 않게 구분할 수 있을 것이며, 밤에 찍은 사과 사진이 오렌지처럼 보이는 일은 거의 없을 것입니다. 이처럼 매우 간단한 행동을 논리적으로 정의하는 것이 기계에게는 정말 어려운 문제입니다. '기계 학습을 다시 묻다'라는 책에는 에코리즘이라는 단어가 등장합니다. 이 책의 저자는 자연에서 생명체가 상황을 헤쳐나가는 방법은 환경으로부터 학습한 결과이며, 이 과정을 기계적인 계산으로 이해할 수 있다고 하며 계산 학습의 영역을 확장합니다. 그리고 이런 학습 능력을 갖춘 알고리즘을 바로 에코리즘(ecorithm)이라고 합니다.

 

처음에는 이런 직관적인 문제에 대한 하나의 해결책으로 개념 계통구조(hierarchy of concepts)를 이용해서 컴퓨터가 경험으로부터 배우고 세상을 이해하게 만들었습니다. 개념 계통구조에서 각 개념은 자신보다 더 간단한 개념들과의 관계를 통해서 정의됩니다. 경험으로부터 지식을 수집하기 때문에 인간이 직접 이들의 관계를 지정해줄 필요가 없습니다. 컴퓨터가 학습한 연결 관계를 그래프로 표현한다면, 여러 층으로 이루어진 깊은 그래프가 만들어질 것입니다. 그래서 이러한 인공지능 접근 방식을 심층 학습, 즉 딥러닝(Deep Learning)이라고 부릅니다.

 

인공지능 초창기에는 세계에 관한 지식을 형식 언어(formal language)를 이용해서 하드코딩하는 프로젝트도 있었습니다. 논리추론 규칙들을 이용해서 형식 언어로 된 문장을 자동으로 추론하고자 하였습니다. 이런 방식을 지식 베이스(knowledge base)라고 부릅니다. 대표적으로 Cyc 프로젝트가 있는데, 이는 하나의 추론 엔진이자 CycL이라는 언어로 이루어진 문장들의 DB를 구축하는 것이었습니다. 하지만 Cyc의 추론 엔진은 결과적으로 큰 성공을 거두지 못했습니다.

 

하드코딩 방법이 실패하면서 AI 시스템에는 원본 자료에서 패턴을 추출하여 스스로 지식을 획득하는 능력이 필요함을 깨달았습니다. 이것이 바로 기계 학습, 즉 머신러닝(Machine Learning)입니다. 머신러닝의 대표적인 알고리즘으로는 로지스틱 회귀, 나이브 베이즈(Naive Bayes)등이 있습니다.

 

간단한 기계 학습 알고리즘은 데이터의 표현(representation)에 의존합니다. 기계는 데이터의 표현에 있는 정보의 조각인 특성(또는 특징, feature)과 결과(outcome)의 상관관계를 학습합니다. 하지만 어떤 특징을 추출해야 할 지조차 알아내기가 어려운 경우가 많습니다. 앞에서 언급한 사과의 예시를 생각해보겠습니다. 사과의 기하학적인 형태는 단순하지만, 사과가 잎사귀로 가려지거나, 그림자가 드리우거나, 테이블의 역광에 반사되어 번들거리는 부분이 있다면 문제가 복잡해집니다. 

 

이러한 문제의 한 가지 해법은 데이터의 표현을 출력으로 사상(mapping)하는 방법 외에 그 표현 자체까지도 인공지능 시스템이 기계 학습 알고리즘으로 배우게 하는 것입니다. 이를 표현 학습(representation learning)이라고 부릅니다. 그 대표적인 예시가 자동부호기(autoencoder) 입니다. 오토인코더는 입력을 잘 표현하는 어떤 벡터로 변환하는 인코더(encoder)와 그 벡터를 원래의 데이터 형식으로 되돌리는 디코더(decoder)로 이루어집니다. 오토인코더는 이 과정에서 원본 데이터의 정보를 최대한 유지할 수 있도록 훈련됩니다.

 

 

특징 집합을 설계하거나 학습하기 위해서는 변동 인자(factor of variation)를 추출하는 것이 목표입니다. 문제는 관측 가능한 데이터에 영향을 주는 변동 인자가 너무 많다는 것입니다. 따라서 이러한 변동 인자들을 풀어헤쳐서(disentangle) 무관한 인자들을 골라내는 능력이 필요합니다. 그런데 이런 작업에는 인간 수준으로 정교하게 데이터를 이해해야만 하는 경우가 많습니다. 그런데 문제를 풀기 위한 표현을 얻는 것이 애초에 문제를 푸는 것만큼이나 어려울 때는 표현 학습이 크게 도움이 되지 않습니다.

 

반면에 딥러닝은 데이터를 조금 더 간단한 표현을 통해 나타내어 표현 학습의 문제를 해결합니다. 딥러닝을 이용하면 컴퓨터가 간단한 개념들로 복잡한 개념을 구축할 수 있습니다. 대표적인 예시가 순방향 심층 신경망(feedforward deep neural network), 다른 이름으로는 다층 퍼셉트론(Multilayer Perceptron, MLP)입니다.

 


 

딥러닝의 역사적 추세

딥러닝의 역사는 1940년대로 거슬러 올라갑니다. 딥러닝은 단지 새로운 것처럼 보일 뿐인데, 단순히 그동안 인기가 없다가 최근 인기를 얻었기 때문이기도 하고, 심층 학습이나 딥러닝이라는 이름으로 불린 것이 최근의 일이기 때문입니다. 이 분야는 여러 연구자의 관점에 따라 이름이 여러번 바뀌었습니다.

 

 

이 분야는 변화의 물결이 세 번 있었습니다. 먼저 1940년대에서 1960년대에는 사이버네틱스(cybernetics)라고 불렸고, 1980년대에서 1990년대에는 연결주의(connectionism)이라고 불렀습니다. 그리고 2006년부터 딥러닝이라는 이름으로 되살아났습니다.

 

초창기 학습 알고리즘 중 일부는 생물학적 학습을 위한 계산 모형, 즉 뇌를 본뜬 형태였습니다. 그래서 인공 신경망(Artificial Neural Network)이라고 불렸습니다. 이는 생물학적 뇌에서 영감을 받아서 학습 시스템을 구축하자는 관점에서 비롯되었습니다. 이런 신경과학적인 시각은 두 가지 착안에서 유래합니다. 먼저 뇌는 생물이 지능적으로 행동할 수 있음을 보여주는 증거이기 때문에, 뇌이 계산 원리를 역공학으로 파악해서 기능을 복제하자는 것입니다. 또 다른 하나는, 뇌와 지능에 깔린 원리를 이해하는 것은 흥미로운 일이며, 이런 근본적인 과학적 질문에 영감을 제공하는 기계 학습 모형은 공학적인 응용 문제를 푸는 능력과는 무관하게, 그 자체로 유용하다는 관점입니다. 그런데 현 세대의 기계 학습은 신경과학적 관점을 뛰어넘어 다수준 구성(multiple levels of composition) 학습이라는 조금 더 일반적인 원리에 호소합니다.

 

현대적인 심층 학습의 가장 이른 형태는 신경과학적 관점에서 비롯된 단순 선형 모델입니다. 이들은 $n$개의 입력값 $x_1, \dots, x_n$을 하나의 $y$에 연관시키는 역할만 수행합니다. 여기서 가중치를 학습하여 $f(\boldsymbol x, \boldsymbol w)=x_1w_1+\dots+x_nw_n$을 계산합니다. 이것이 바로 사이버네틱스에 해당합니다.

 

그런데 선형 모형에는 한계가 많습니다. 가장 유명한 것이 바로 XOR 문제입니다. XOR은 주어진 입력이 같을 때는 0을 출력하고, 다를 때는 1을 출력하는 논리 연산입니다. 다음과 같이 AND나 OR 연산은 경우 하나의 직선으로 표현할 수 있지만 XOR 연산은 불가능합니다. 선형 모델에서 발견된 결함은 이내 생물에서 영감을 받은 학습이라는 일반적인 착안까지 공격받게 되는 계기가 되었습니다. 이 때 딥러닝에 대한 인기가 처음으로 크게 떨어졌습니다.

 

 

신경 과학은 딥러닝에 중요한 영감을 주는 원천으로 간주되지만, 더이상 유력한 지침으로 작용하지는 않습니다. 신경과학의 역할이 줄어든 이유는, 단순히 우리가 뇌를 잘 알지 못하기 때문입니다. 현대의 딥러닝은 선형대수, 확률, 정보 이론, 수치 최적화 등 다양한 응용 수학의 근본 분야에서 영감을 많이 받습니다. 물론 뇌의 작동 방식을 알고리즘 수준에서 이해하고자 하는 작업은 여전히 활발하게 진행되고 있고, 이를 Computational Neuroscience라고 부릅니다.

 

1980년대 연결주의 또는 병렬 분산 처리(parallel distributed processing)를 동력으로 신경망 연구의 두 번째 물결이 시작되었습니다. 연결주의는 인지과학의 맥락에서 등장하였는데, 단순한 계산 단위를 연결해서 네트워크를 만들면 지능적인 행동이 나타난다는 착안에서 비롯되었습니다. 연결주의 운동에서 제기된 일부 개념은 현대 딥러닝에서도 여전히 핵심적인 개념으로 자리잡고 있습니다. 대표적인 예시가 바로 분산 표현(distributed representation)입니다. 분산 표현은 시스템의 각 입력을 여러 개의 특징으로 표현해야 하며, 각 특징이 가능한 많인 입력의 표현에 관여해야 한다는 개념입니다.

 

연결주의 운동의 또 다른 주요 성과는 내부 표현들을 가진 심층 신경망을 훈련하는 데 역전파 알고리즘을 성공적으로 적용했다는 것과, 이런 역전파 알고리즘을 널리 알렸다는 것입니다.

 

그런데 당시 신경망과 기타 인공지능 기술들에 기초한 회사들이 투자자의 눈길을 끌기 위해 비현실적인 주장을 내놓았습니다. 반면에 인공지능 연구는 그러한 비합리적인 기대를 충족하지 못했습니다. 게다가 kernel machine이나 그래프 모형과 같은 기계 학습의 다른 분야들이 진전을 보이자 다시 한번 이 분야의 인기가 크게 떨어졌습니다.

 

세 번째 물결은 2006년 제프리 힌턴(Geoffrey Hinton)이 심층 믿음망(deep belief network)이라는 신경망을 탐욕적 층별 사전훈련(greedy layer-wise pretraining)이라고 부르는 전략을 이용해서 효율적으로 훈련할 수 있음을 보이며 다시 시작되었습니다. 이 덕분에 연구자들은 이전보다 더 깊은 신경망을 훈련할 수 있게 되었고, 깊이의 이론적 중요도에 관심을 갖게 되었습니다. 그리고 이러한 추세를 반영하여 심층 학습, 딥러닝이라는 용어가 널리 쓰이게 되었습니다.

 

아래 그림은 시간이 흐르면서 벤치마크용 데이터셋의 크기가 얼마나 빠르게 증가했는지를 보여줍니다.  이러한 추세는 사회의 디지털화에 힘입었습니다. 사람들이 컴퓨터로 하는 활동이 점점 많아지면서, 이를 기록하는 자료도 따라서 늘어났습니다. 그리고 더 많은 컴퓨터가 네트워크에 연결되며 기록된 자료를 중앙집중화하고 기계 학습 프로그램에 적합한 형태로 정리하기가 용이해졌습니다. 소위 빅데이터 시대에 접어들게 된 것입니다.

 

 

현대에 와서 딥러닝이 흥하게 된 또 다른 이유는 큰 모형을 실행하기에 충분한 컴퓨팅 자원이 마련되었기 때문입니다. 신경망이 크면 좀 더 복잡한 과제들을 정확하게 처리할 수 있습니다. 이러한 추세는 현재까지 이어지고 있으며 앞으로도 지속될 것으로 보입니다. 다음 그래프는 시간에 따른 뉴런 당 연결 수가 증가한 추세를 보여줍니다.

 

물론 생물학적 뉴런들이 특별히 빽빽하게 연결되어 있는 것은 아닙니다. 위 그래프에서 알 수 있듯이 이미 수십 년 전부터 기계 학습 모형들의 뉴런당 연결 수는 동물보다 훨씬 많습니다. 하지만 총 뉴런 수를 따지면 다음 그래프에서 보듯이 비교적 최근까지도 인공 신경망의 뉴런 수는 한참 부족합니다. 그래도 시간이 지남에 따라 신경망의 크기가 계속 커지고 있는 것을 볼 수 있습니다.특별히 새로운 기술이 등장하지 않는 한, 이 추세에 따르면 사람의 뇌가 갖는 뉴런의 수를 따라잡으려면 적어도 2050년대는 되어야 할 것입니다.

 

 

초창기 딥러닝 모델은 개별 물체를 인식하는 데 사용되었습니다. 그마저도 여백이 거의 없는 작인 이미지에 물체가 빈틈없이 담겨야 했으며, 최대 두 종류의 물체만을 식별할 수 있었습니다. 반면 최근에는 거의 천 가지가 넘는 물체를 인식하는 신경망들이 많이 있습니다. 사물 인식 대회인 ILSVRC(Imagenet Large Scale Visual Recognition Challenge)에서 합성곱 신경망, CNN이 처음 등장하며 월등한 성적으로 우승하며 딥러닝이 혜성처럼 인기를 끌게 되었습니다. 이전까지만 해도 상위 5개의 카테고리에 대한 오답률이 26.1%에 달했지만, CNN은 이를 15.4%로 끌어내렸고, 현재는 3.6%까지 감소하였습니다.

 

딥러닝은 음성 인식에도 큰 영향을 미쳤습니다. 음성 인식의 오류율은 1990년대부터 꾸준히 개선되다가 2000년대 정체를 맞이하였습니다. 그런데 딥러닝이 도입되면서 정확도가 크게 개선되었습니다. 이 시기에 딥러닝 모델의 규모와 정확도가 증가하면서, 딥러닝으로 처리할 수 있는 과제의 범위도 증가했습니다. 

 

딥러닝의 발전은 소프트웨어 기반구조의 발전에도 크게 기여했고, 다른 과학 분야의 발전에도 영향을 미쳤습니다. 예를 들어 딥러닝은 제약회사들의 신약 개발을 위해 분자들이 상호작용하는 방식을 예측하는 데 성공적으로 사용되며, 인간의 두뇌를 3차원으로 모형화하는 데 필요한 현미경 사진들의 파싱 작업에도 사용됩니다. 이후에도 다양한 과학 분야에서 딥러닝은 점점 더 많이 등장할 것입니다. 

 


 

정리하면 딥러닝은 머신러닝의 한 접근 방식으로, 인간의 놔에 관한 지식과 통계학, 응용 수학에서 많은 영향을 받았습니다. 그리고 보았듯이 수십 년의 역사를 가지고 있습니다. 최근에는 딥러닝의 인기와 유용함이 빠르게 증가했는데, 하드웨어 성능의 증가와 빅데이터, 새로운 기법들이 등장한 덕분입니다. 딥러닝은 현재도 계속해서 발전하고 있는 분야이며, 지금 이 시각에도 수 많은 연구자와 엔지니어들은 딥러닝이 실생활에 유용하게 사용될 수 있도록 끊임없는 연구와 개발을 진행 중입니다.

댓글