Deep learning, a subfield of machine learning, utilizes multi-layer neural networks to automatically learn features from data and solve complex problems. Initially hindered by computational and algorithmic limitations, it advanced significantly after 2000 due to innovations like gradient descent, long short-term memory (LSTM), ReLU functions, and dropout algorithms. Deep learning excels in solving nonlinear problems, mimicking brain structures, and hierarchical abstraction, making it a cornerstone technology in AI.
딥러닝 정의
딥러닝Deep Learning은 머신러닝의 3가지 패러다임에서 신경 모형 패러다임에 속한 다. 1950년대부터 계속돼온 연결주의론의 최신 버전이라고 할 수 있다. 연결주의 론에서 그동안 장애물로 여겨졌던 문제들, 즉 비선형 문제, 다층 신경망에서의 효 과적인 학습모델, 역전파 시 지역최솟값의 함정, 신경망의 층수가 늘어날 때 수렴 의 어려움, 문제의 규모가 커질 때 나타나는 컴퓨터 성능의 한계, 레이블된 디지털 데이터의 부족 등이 하나씩 해결되면서 최근에는 인공지능 분야에서 가장 파괴적 인 기술 분야로 자리잡고 있다.
2000년대 초까지 머신러닝의 주류를 이뤘던 것은 통계학 기반의 분류, 회귀 및 군 집 모델이었다. 특히 분류나 회귀와 같은 지도학습에서 기존의 머신러닝은 학습 데이터의 특성과 이러한 특성을 기반으로 새로운 데이터를 구별하는 학습 모델을 사람이 사전에 정의했다. 그러나 딥러닝은 이러한 것들을 컴퓨터가 스스로 할 수 있게 한다. 예를 들면, 앞서 설명한 붓꽃의 종을 구별하는 태스크가 있다고 했을 때 머신러닝은 사람이 붓꽃의 특성들을 정의하고 데이터세트를 만들고 나서 컴퓨 터가 데이터세트를 기반으로 붓꽃을 구별하는 판별식을 결정하는 방법이라고 한 다면 딥러닝은 알고리즘에 의해 컴퓨터가 붓꽃의 사진을 보고 스스로 특성을 찾아 내고 판별해 내는 방법이라 할 수 있다.
딥Deep이라는 말은 신경망의 층ayer이 많고 각 층마다 고려되는 변수가 많다는 뜻이 다. 굳이 구별하자면 2~3개의 층으로 돼 있는 신경망을 쉘로우 러닝 shallow Learning 이라 하고 그 이상인 것을 딥러닝이라고 한다. 신경망의 층수가 10개 이상이면 아 주 깊은 학습Very Deep Learning이라고 한다. 딥러닝에서 깊이, 즉 층의 개수는 은닉층 hidden layer 개수에 하나를 더하면 된다. 은닉층은 입력층과 출력층 사이에 있는 층을 말한다. 이러한 이유로 딥러닝을 심층신경망DNN: Deep Neural Network이라고도 한다.
뉴런에 해당하는 신경망 계층의 각 노드들은 매우 단순한 기능을 한다. 따라서 몇 교정 •개의 신경망으로 이뤄진 쉘로우 러닝은 적용범위가 매우 제한적이다. 결국 더 복 잡한 문제를 풀기 위해서는 신경망의 계층 수를 늘리고 뉴런과 연결되는 가지branch 의 수도 많아야 한다. 고등동물의 뉴런이 하등동물의 그것보다 많은 것과 같은 논 리다.
그러나 딥러닝의 신경망 계층 수를 늘리면 연산에 필요한 복잡도가 제곱 크기로 늘어난다. 당연히 컴퓨터의 계산량도 이에 비례해서 많아진다. 문제의 크기에 따 라 현재 사용하고 있는 컴퓨터로 아예 계산을 하지 못할 수도 있다. 그럼에도 신경 망의 깊이를 늘릴 수밖에 없는 이유는 무엇일까? 그 이유를 다음 3가지로 요약할 수 있다.
첫째, 머신러닝이나 쉘로우 러닝으로는 풀지 못했던 어려운 문제를 딥러닝은 풀 수 있다. 기하학에서 직선으로 표현하지 못하는 것을 곡선의 조합으로 표현할 수 있는 것과 유사하다. 간단한 예가 바로 1969년 마빈 민스키 박사가 제시한 XOR' 문제다.
둘째, 딥러닝이 모방하고 있는 뇌의 구조 자체가 딥 아키텍처다. 뇌신경 분야 중 비교적 잘 정리된 시각 피질visual cortex 관련 연구를 보면 처음 입력된 빛의 신호가 무수히 많은 뉴런을 거쳐 형상화된다고 한다.
셋째, 동물이나 사람이 인지하는 처리 절차가 여러 계층으로 체계화돼 있다. 예를 들면, 먼저 학습한 간단한 개념을 가지고 다양하게 조합하면서 더 복잡한 개념을 추상화한다.
그럼 딥러닝에서는 몇 개 정도의 신경망 층 수가 적당할까? 뇌의 신경세포인 뉴런 은 약 1억 개 정도가 있는데 1초에 약 100번 정도 전기 신호를 보낸다고 한다. 사 람이 간단한 상황을 인지하는 데 걸리는 시간은 약 0.1초라고 하니까 이러한 경우를 딥러닝에 적용하게 되면 대충 '10단계 정도의 신경망 깊이가 필요하지 하다.'라 고 가정해 볼 수도 있겠다. 딥러닝 아키텍처에서 최적의 층수를 결정하는 것은 그 자체로도 하나의 연구과제다.
딥러닝의 역사: 2000년대 이전
맥컬록과 피츠의 신경망 이론과 헵Hebb의 학습이론을 바탕으로 1958년 프랭크 로 센블래트가 퍼셉트론 이론을 발표한 이후 신경망 이론은 구체적인 학습 모델을 찾 지 못해 큰 진전을 보지 못했다. 1965년 이박넨코vakhnenko와 라파Lapa는 『Cybernetic Predicting Devices』라는 논문에서 'Group Method of Data HandlingGMDH'이라는 네트워크 훈련 방법 을 제시한다. 아마도 GMDH는 최초의 다층 피드 포워드 퍼셉트론의 딥러닝 시 스템일 것이다. GMDH에서는 기존에 사용하던 활성화 함수activation function 대신 Kolmogorov-Gabor' 다항식을 이용한 활성화 함수를 사용한다. 학습 데이터세 트를 가지고 회귀 분석을 통해 은닉층을 계속 확대해 나가면서 학습시키고 난 후, 검증 데이터세트를 가지고 불필요한 신경망들을 제거하는 개념이다. 신경망을 제거할 때는 소위 결정 규제화decision regularization 기준에 따른다. 이러한 딥러닝 학습 방식으로 인해 신경망 층과 각 층에서의 뉴런의 개수는 문제마다 다르게 결정 된다. 1979년 쿠니히코 후쿠시마Kunihiko Fukushima;ma가 발표한 네오코그니트론Neocognitron 모델은 최초로 신경생리학Neurophysiology의 전문지식이 융합된 인공신경망이다. 그 의 네오코그니트론 모델은 신경생리학분야에서 노벨상을 수상한 데이비드 허블 David H. Hubel과 토르스텐 위젤Torsten Wiesel의 연구를 기반으로 한다. 허블과 위젤의 연구는 고양이의 시각 과정에서 뇌의 시각 피질의 동작 구조를 밝힌 것이다. 후쿠 시마의 연구에서는 최초로 컨볼루션 신경망을 소개하면서 구체적인 구현 방법을 제시한다. 그가 제시한 방법은 오늘날 딥러닝에서 사용하고 있는 경사감소법, 지 도학습 기반의 피드포워드 신경망, 그리고 컨볼루션 신경망 등의 개념과 거의 유 사하다. 그러나 후쿠시마는 역전파 기법과 지도학습 모델에서 필요한 가중치를 고 려하지 않았다. 그는 역전파 기법 대신에 "자율 형성self-organization" 방법을 사용한 다. 또한 그의 신경망은 깊은 구조deep architecture를 갖고 있음에도 범용적인 딥러닝 문제를 심각하게 고려하지 않았다. 대신 그의 딥러닝 모델은 역전파가 없는 국부 적인 비지도학습 방법을 채택했다. 후쿠시마의 연구는 나중에 이미지 인식 분야에 많은 영향을 준다. 역전파 기법에서 경사감소법은 학습모델의 가중치를 결정하는 방법이다. 즉, 경 사감소법은 가중치를 포함한 피드포워드 함수값이 예상하는 값과 레이블된 실제 값과의 차이를 최소화하는 가중치를 찾는 것이다. 이때 실제값과 예상값의 차이인 에러를 제곱한 것, 즉 목적함수의 형태가 포물선 모양의 2차평면으로 표현되는데 최저점을 찾은 것이 목표다. 최저점을 찾는 과정이 마치 경사진 언덕을 내려가는 것과 같은 모양이어서 경사감소법이라고 한다. 또는 최급경사법Steepest Descent이라고 하기도 한다. 경사감소법은 1908년 프랑스의 수학자 쟈크 하다마드Jacques Hadamard에 의해 소개 됐다. 그는 미분 방정식의 해를 구하는 방법으로 하강법method of descent이라고 명명 했다. 가중치가 고려된 최적화 문제에서 경사감소법을 적용한 것은 아서 브라이슨 Arthur E. Bryson과 유치 호Yu-Chi Ho의 최적제어 분야의 저서다". 그들은 이 책에서 체 인 룰chain rule에 의해 정보가 상위층에서 하위층으로 전달되는, 즉 역전파되는 메커 니즘을 보였다. 이후 경사감소법 기반의 역전파 이론을 신경망에 적용한 경우는 폴 워보스가 처 음이다. 1974년 워보스는 자신의 박사논문에서 처음으로 경사감소법 기반의 역 전파 알고리즘을 신경망에 적용했다. 그러나 그가 졸업할 당시가 바로 첫 번째 인 공지능의 겨울 시기여서 그는 자신의 박사논문을 대중에 공개하지 않고 있다가, 1981년에서야 비로소 컨퍼런스에서 발표하게 된다.
워보스의 논문은 데이비드 파커David Parker7 와 얀르쿤Yann LeCund,에 의해 재발견된다. 파커와 르쿤의 연구는 거의 같은 시기에 독립적으로 이뤄졌으며 르쿤은 1985 1년에 완성한 역전파에 관련된 자신의 박사논문을 1986년에 저널을 통해 공개한다 9. 그러나 파커와 르쿤의 연구는 당시 인공신경망 분야에서 크게 주목받지 못했 다. 역전파 학습모델이 인공신경망 학계에 본격적으로 알려진 것은 1986년 데이비 드 러멜하트David Rumelhart, 제프리 힌튼Geoffrey Hinton, 로날드 윌리엄스 Ronald Williams 가 『Learning representations by back-propagating errors』라는 논문을 네이처 Nature에 발표하면서부터다. 깊은 구조를 가진 다층 신경망에서 효과적인 학습모델 을 찾지 못하고 정체 상태에 있던 인공신경망 연구는 그들의 논문을 기점으로 다 시 활기를 띠기 시작한다.
그러나 아이러니하게도 딥러닝 문제를 해결하기 위해 만들어졌던 역전파 모델은 실제로 적용된 분야는 쉘로우 러닝 문제였다. 즉, 그때까지도 깊은 구조를 가진 신경망에서 최적해에 수렴하지 못하고 실패하는 문제를 확실하게 해결한 것은 아니었다. 1990년대에 들어서면서 비로소 역전파에서 사용되는 경사감소법의 기본적 문제점들을 충분히 이해하기 시작했다. 경사감소법을 이용해 에러를 역전파하는 과정에서 경사도가 급격히 감소하는 vanishing 문제 또는 계산 영역을 벗어나는exploding 현상이 발생한다. 이를 장기간 지 연 문제long time lag problem라고 하는데, 이러한 문제를 이해하고 해결하기 위해 1990년대에 많은 연구들이 발표됐다. 1991년 독일의 컴퓨터공학자인 셉 호크라이터 Sepp Hochreiter는 자신의 박사논문10에 서 그동안 딥러닝이 가지고 있는 근본적인 문제점을 분석하며 그 해결책을 제시한다. 그는 출력층의 정보를 계속 메모리에 저장해서 역전파에 이용하는 장단기 기 억법LSTM; Long Short-Term Memory을 개발해서 경사감소소멸vanishing gradient descent문제를 해결했다. 장단기 기억법은 나중에 순환신경망Recurrent Neural Network의 핵심이론으로 사용된다. 그 밖에도 에러 함수의 2차 미분인 헤시안+Hessian 방법을 이용해 경사감 소소멸 현상을 없애려는 연구가 시도되었다. Moller, 199311; Pearlmutter, 199412 경사감소소멸을 해결하기 위한 또 다른 접근법은 순환신경망RNN: Recurrent Neural Network을 비지도 학습 방법으로 쌓아가는 방법이다. 순환신경망은 1992년 유어겐 슈미츠후버Jürgen Schmidhuber가 그의 지도학생인 셉 호크라이터의 장단기 기억법을 개선하여 만든 방법이다13. 그는 이 연구에서 과정 응축history compression이라는 방법 으로 에러의 정보 손실을 최소화했다. 즉, 결과값을 지도학습으로 역전파하기 전 에 가능하면 초기 층에서 어느 중간 단계까지는 어떤 합리적인 비지도학습 방법으 로 예측해서 불확실한 중간 단계 층의 개수를 최소화하는 방법이다. 이 방법은 나 중에 토론토 대학의 제프리 힌튼 교수의 심층신뢰망DBN: Deep Belief Network에 영향을 준다.
딥러닝이라는 말이 몇십 년 동안 인공지능 분야에서 언급되긴 했지만 공식적으로 처음 사용된 것은 리나 데히터 Rina Dechter가 1986년에 AAAIJAssociation for the Advancement of Artificial Intelligence of Learning While Searching in Constraint- Satisfaction-Problems』이라는 논문에서였다. 그러나 그녀가 사용한 딥러닝은 지금의 신경망 분야는 아니었다. 딥러닝이라는 용어가 신경망 분야에서 처음으 로 사용된 것은 2000년에 이고르 아이젠버그!gor Aizenberg, 나움 아이젠버그 Naum Aizenberg, 주스 반더빌oos Vandewalle이 출간한 「Multi-Valued and Universal Binary Neurons: Theory, Learning and Applications』에서였다. 그들은 이 책에서 "많 은 연구들이 '딥러닝'을 통해 민스키와 페퍼트가 지적한 퍼셉트론의 'XOR'을 극복 하려고 했다"라고 표현했다. 그들은 이 책에서 'XOR'의 해결 방안으로 복소수를 가진 가중치를 이용하는 방법을 제안하기도 했다.
딥러닝의 역사: 2000년대 이후
2006년 제프리 힌튼, 사이먼 오신데로Simon Osindero, 이-화이 테Yee-Whye Teh는 심층 신뢰망이라고 하는 딥러닝에 매우 효과적인 알고리즘을 발표한다14. 이 알고리즘 은 1992년에 슈미츠후버가 발표한 RNN 기반의 학습모델과 유사하다. 인공지능 분야의 많은 전문가들은 힌튼 교수가 발표한 이 논문이 2000년대 딥러닝의 부활을 가져온 계기가 됐다는 점에 동감한다. 그들은 MNIST Mixed National Institute of Standards and Technology database의 필기체 디지털 이미지를 분류하는 태스크에 심층신뢰망 알고리즘을 적용해 1.25%라는 에러율을 보여줬다. MNIST 데이터베이스에는 60,000개의 디지털 필기체 학 습 데이터와 10,000개의 테스트용 데이터가 있는데, 매년 이 데이터베이스를 가지 고 필기체 인식률을 높이는 다양한 연구들이 기존의 단점들을 해결하는 새로운 기 법들을 선보이며 보고되고 있다. 예를 들면, 머신러닝 알고리즘 중 하나인 서포트 벡터 머신은 1.4%의 에러율을 보였고, KNN은 2.8%~ 4.4%의 에러율을 보였다. 피드포워드 기반의 역전파를 이용한 다른 신경망 알고리즘은 1.51% ~ 2.95%의 에러율을 보였다.
심층신뢰망은 제한된 볼츠만 머신RBM: Restricted Boltzmann Machine이라고 하는 사전 학 습방법pre-training을 이용해 깊은 신경망 구조에서 나타나는 경사감소소멸 현상을 해결했다. RBM은 볼츠만 머신에서 파생된 것인데, 두 모델의 공통점은 대칭적으 로 연결된 입력노드와 은닉노드 중에서 어떤 연결이 의미 있는지를 확률적으로 판 단하는 것이다. 한편 두 모델의 차이점은 RBM은 같은 층에서는 노드간 연결이 제 한돼 있고 오로지 입력층에서 은닉층으로의 연결만 허용되는 반면, 볼츠만 머신은 입력층과 은닉층 간의 연결, 그리고 입력층 및 은닉층의 각각 내부 노드간 연결이 모두 가능하다. RBM은 입력층과 은닉층이라는 두 개의 층으로 이뤄져 있다. RBM의 목적은 깊은 신경망 학습모델에서 일반적으로 나타나는 에러의 정보 손실 을 최소화하는 것이다. 즉, 입력층에서 관찰된 데이터의 특성이 다음 단계인 은닉 층으로 에러율을 최소화하면서 전달되는 것인데, 일종의 비지도학습 형태로 반복 해서 이뤄진다. 물리학에서 나오는 에너지라는 개념을 도입해 입력층과 은닉층이 평형을 이룰 때 두 층이 이루는 에너지가 최소가 된다는 원리를 이용했다. 처음 단 계에서 입력층과 은닉층의 에너지가 최소가 되면 이때 사용된 은닉층은 입력층의 역할을 하고 다음 은닉층과 다시 RBM 계산을 반복한다. 이렇게 반복적인 RBM은 출력층에 도달할 때까지 반복적으로 진행된다. 2010년대에 들어서면서 딥러닝의 발전을 가속화한 것은 ReLURectified Linear Unit라는 활성화 함수와 드롭아웃Dropout 알고리즘의 발견이다. 신경과학자들은 뉴런이 신호를 보낼 때 그림 8.2와 같이 시그모이드sigmoid 형보다 는 ReLU 형태로 신호를 활성화한다는 연구를 발표했다. 인공신경망 학자들은 이 러한 신경과학 연구 결과에 영감을 얻어 딥러닝에서 전통적으로 사용돼 왔던 시그 모이드 활성화 함수 대신 ReLU 함수를 사용하기 시작한다.
ReLU는 입력값이 0보다 작으면 함수값이 0을 나타내고, 0보다 크면 ax+b와 같은 1차함수를 갖는 활성화 함수를 말한다. 0에서 함수값이 꺾이기 때문에 힌지hinge 함 수라고 하기도 하고, 경사를 갖는 모양이어서 램프ramp 함수라고도 한다.
ReLU 활성화 함수를 사용했을 때 얻는 장점은 먼저 경사감소소멸을 줄일 수 있다 는 것이다. 그 이유는 첫 번째 역전파에서 경사감소법을 사용할 때 고깔 모양을 하고 있는 시그모이드의 1차 미분값은 입력값이 커지면 급격히 줄어 들지만 ReLU의 1차 미분값은 일정한 상수값을 유지하면서 경사감소소멸을 최소화하기 때문이다. 두 번째는 임계치인 0보다 작은 모든 입력값에 대해 0으로 활성화하는 ReLU 성질 때문에 데이터 표현을 좀 더 희소하게sparse 만들어 데이터의 특성을 찾는 데 도움 을 준다. 희소하다는 말은 구성요소 가운데 값을 갖는 요소가 많다는 뜻이다. 즉, 0값을 갖는 요소를 특성에서 제외하게 되므로 좀 더 고유성을 띤 특성 벡터를 얻을 수 있다.
경사감소소멸 문제와 함께 딥러닝에서 가장 성능에 영향을 주는 것이 오버피팅이 다. 오버피팅은 딥러닝을 포함한 머신러닝에서 노이즈까지 포함된 학습 데이터에 과도하게 학습된 모델이 테스트나 검증에서는 정확성이 오히려 떨어지는 것을 말 한다. 2012년 힌튼과 그의 동료들은 이러한 오버피팅을 줄이는 규제화 알고리즘으로 드롭아웃 알고리즘을 발표한다
딥러닝의 학습 과정에서 어떤 뉴런은 이전 층에 있는 특정한 뉴런에서 출력된 값 에 민감하게 반응하는 경우가 있는데, 만약 이 두 뉴런이 연결되면 나중에 오버피 팅을 유발할 가능성이 있다. 특히 학습 데이터의 규모가 크지 않은 경우에는 더욱 가능성이 높다. 드롭아웃 알고리즘은 이러한 연결을 효과적으로 배제함으로써 오 버피팅을 줄이는 규제화를 구현하였다. 드롭아웃의 개념은 다음과 같다. 먼저 각 층에 있는 노드를 어느 정도의 확률로 제 거할 것인지를 정한다. 이때 확률을 p라고 하며 보통 0.5를 사용한다. 각 층에 있는 노드를 확률p 기준으로 임의로 제거하고 축소된 규모thinner의 신경망으로 학습 한다. 이때 일반적인 피드포워드 기반의 역전파 방식을 사용한다. 학습이 완료되 고 테스트를 할 때에는 원래대로 모든 노드를 고려하고 노드마다 가지고 있는 가 중치에 확률 p를 곱한다. 앞 단계에서 확률 p로 드롭아웃된 노드로 학습한 결과를 보상하는 의미다. 드롭아웃 알고리즘을 이용해 앞에서 설명한 MNIST 필기체 인식 태스크를 수행한 결과 0.95%의 에러율을 보였다. RBM 기반의 심층신뢰망 알고리즘보다 0.3% 포 인트 개선된 결과다. 특히 심층신뢰망에 드롭아웃 알고리즘을 결합했더니 에러율 이 0.79%까지 개선됐다. 오늘날 드롭아웃 알고리즘은 컴퓨터 비전이나 음성인식, 컴퓨터 신경과학 등 다양한 분야에 핵심적으로 사용되고 있다.
인공지능의 핵심기술: 딥러닝의 미래
2000년대에 들어서면서 딥러닝이 급속도로 발전한 배경에는 혁신적인 알고리즘의 개발과 더불어 컴퓨터 하드웨어의 발전도 큰 몫을 차지한다. 컴퓨터의 중앙처리장치인 CPU는 2년에 두 배씩 빨라지고 있으며 메모리 용량은 매년 두 배로 커지고 있다. 더욱 저렴한 가격으로 보급되는 컴퓨터를 네트워크로 연결해 누구나 고성능 의 슈퍼컴퓨터를 만들어 사용할 수가 있게 됐다.
최근에는 딥러닝 알고리즘에 GPU16 기반의 프로그래밍 기법이 등장하면서 획기 적인 성능 향상을 가져왔다. 2000년대 초반에 컨볼루션 신경망의 선구자인 얀 르 쿤은 인공신경망에 적용된 GPU의 성능이 CPU보다 약 100배 이상 빠른 연구 결 과를 확인하면서 딥러닝에서 GPU의 역할을 주목하기 시작했다.
컴퓨터 그래픽 분야에서 단순한 이미지 처리용으로 사용됐던 GPU가 숫자 연산 집 약적인 범용 프로세서로 재탄생하면서 딥러닝을 가속화하는 핵심적인 역할을 하 기 시작한다. 예를 들면, 2006년에 첼라필라Chellapilla와 그의 동료들은 GPU를 이용 해 필기체를 분석하는 연구를 통해 CPU만을 사용했을 때보다 4배 이상의 성능 향 상을 보였다 17. 2007년에 얀 르쿤은 그의 동료들과 함께 최초로 GPU를 역전파 알 고리즘을 적용하는 데 사용했다
2012년 구글은 구글 브레인이라는 프로젝트에서 16,000개의 서버로 구성된 디지 털 브레인을 3일 동안 1,000만 개의 이미지를 교육시킨 후 임의의 사진 속에서 고 양이를 찾아내는 데 성공했다. 구글의 디지털 브레인을 만들기 위해 구글이 사용 한 컴퓨터에는 일반 CPU만 장착된 것으로 17억 개의 신경망과 같은 기능을 할 수 있는 시스템이었다. 구글 브레인 프로젝트가 성공적으로 끝나고 1년 뒤에 바이두의 인공지능 연구소 수석과학자인 앤드류 응해 스탠포드 대학 컴퓨터과학과 교수은 구글 브레인과 동일한 성능 을 단 3대의 컴퓨터로 해결했다. 바이두 시스템과 구글 브레인의 유일한 차이점은 GPU의 사용 여부였다. 바이두는 여기서 더 나아가 서버를 16대로 확장하고 112 억 개의 신경망을 가진 디지털 브레인을 구축했다. 바이두는 이 디지털 브레인을 컴퓨터 비전, 음성인식, 자연어 처리 등의 분야에 사용하고 있다. 최근 우리나라에 인공지능 쓰나미를 몰고 온 세기의 대결의 승자 알파고도 GPU를 사용한다. 이 세기의 대결에서 사용된 알파고의 두뇌는 176개의 GPU와 1,202개 의 일반 CPU로 구성돼 있다. 알파고의 두뇌는 물리적으로 미국 실리콘밸리에 있 는 구글 데이터센터에 위치해 있다. 알파고를 설계한 팀은 영국에 있는 구글 딥마 인드이지만 GPU를 이용해 대규모 연산을 지원하는 시스템을 구축하는 데는 실리 콘밸리에 있는 구글 본사의 엔지니어가 협업했을 가능성이 높다. 최근 구글 본사 의 인공지능 연구팀도 GPU를 적극 활용하는 쪽으로 방향 전환을 하고 있다. GPU가 인공지능, 특히 딥러닝에서 각광받는 이유는 무엇일까? 어떤 관점에서는 GPU가 CPU보다 우리의 두뇌를 더 닮았다고 볼 수 있다. 인간의 대뇌 피질에 있 는 약 100억 개의 뉴런은 매우 간단한 기능을 수행한다. 단순한 기능을 하는 무수 히 많은 뉴런들이 시냅스로 연결되어 감각세포가 감지한 외부 자극을 여러 단계의 처리 과정을 거쳐 정보화하는 것이다. 최근에 사용되고 있는 GPU는 4,000개 이상의 코어로 구성돼 있다. 각 코어의 성 능은 일반 CPU의 그것보다 20%~30% 정도지만 4,000개가 합쳐지면 800~1,200 배의 성능 향상을 보일 수 있다. 특히 GPU는 메모리에서 데이터를 읽고 쓰는 속도가 일반 CPU보다 몇십 배 빠르다. 이러한 산술적인 성능 향상이 실제로 가능한 이유는 딥러닝에서 차지하는 대부분의 컴퓨팅 과정은 행렬과 행렬, 행렬과 벡터의 단순 반복 계산으로 이뤄져 있기 때문이다. 즉, 행렬과 벡터에 저장돼 있는 여러 데이터들이 같은 연산 명령instruction으로 동시에 계산되는 것이다. 이러한 계산을 효율적으로 하는 것이 바로 GPU다. 오늘날 GPU는 딥러닝 분야에서 하드웨어 플 랫폼의 사실상 표준de facto으로 자리잡고 있다. 최근 딥러닝이 급격히 발전하게 된 배경 중 하나는 인공지능이 배울 교재가 풍부 해졌다는 것이다. 즉, 인공지능인 딥러닝의 학습교재는 디지털 데이터인데, 이 디 지털 데이터가 디지털 카메라로 시작된 디지털 기기의 대중화로 폭발적으로 증가 하고 있다. 2015년에 조사기관에서 발표한 자료에 의하면 디지털 사진으로 대화를 주고받는 인터넷 서비스인 스냅챗Snapchat 으로 매 60초마다 284,722개의 사진이 공 유되고 있으며, 유튜브에서는 300시간 분량의 새로운 동영상이 매 60초마다 업로 드된다고 한다. 2015년 기준으로 사진 공유 사이트인 플리커Flickr에는 약 7억 3천 만 개의 사진이 저장돼 있으며 매일 200만 개의 새로운 사진이 업로드된다. 오늘 날 매일 생산되는 디지털 데이터의 규모는 8ZB19에 달한다. 요즘 출시되는 노트 북 PC의 저장 용량이 1TB 정도이니, 8ZB의 디지털 데이터를 저장하려면 이런 노 트북 PC가 80억 대가 필요하다. 2012년 미국 프린스턴 대학의 컴퓨터과학과를 중심으로 시작된 이미지넷ImageNet 도 딥러닝의 학습교재를 만드는 데 매우 중요한 역할을 수행하고 있다. 이미지넷 은 영어에 나오는 단어를 사전식으로 분류한 워드넷WordNet 서비스 구조를 이용 해 전 세계에서 업로드된 디지털 이미지를 계층적인 데이터베이스 형태로 제공한다. synonym set 또는 synset이라고 해서 의미가 같은 것들을 묶어 계층적으로 카테고리화한다. 예를 들면, 악기라는 주제에는 두 가지 synset이 있는데 하나는 일반악기이고 다른 하나는 전자악기다. 일반악기 아래에는 현악기, 건반악기, 관 악기, 타악기 등으로 구별되는 식이다. 현재 이미지넷에는 약 1,400만 개의 이미 지와 21,841개의 synset을 확보하고 있다. 각 이미지는 아마존의 메커니컬 터크 Mechanical Turk20라는 서비스를 이용해 정확한 레이블과 주석이 붙여져 있다. 스탠포드, 프린스턴, 구글의 후원을 받는 이미지넷 프로젝트는 매년 ILSVRCImageNet Large Scale Visual Recognition Challenge라고 하는 이미지 분석 대회를 개최해서 이미지 분석 분 야에서 딥러닝의 기술 발전에 공헌하고 있다. 캐나다고등연구원 CIFAR; Canadian Institute for Advanced Research에서 운영 중인 프로그램 중 에서 기계 및 두뇌 학습Learning in Machine & Brain 분과가 있는데, 이를 현재 토론토 대 학의 교수와 구글의 연구원을 겸임하고 있는 제프리 힌튼이 2004년부터 이끌고 있 다. 힌튼과 그의 동료들은 이 프로그램을 통해 딥러닝에 필요한 레이블된 디지털 이미지를 계속 수집하고 있으며, 지금은 약 8,000만 개의 이미지가 저장된 데이터 베이스를 확보 중이다. 여기에는 CIFAR-10, CIFAR-100이라는 두 종류의 데이터 베이스가 있는데, 각각 10개, 100개의 카테고리로 이미지를 구별해 놓고 누구든지 자유롭게 내려받아 사용할 수 있게 했다. 이 밖에도 컴퓨터비전 연구를 위해 앞서 설명한 MNIST의 필기체 이미지 데이터베 이스나 칼텍Caltech의 컴퓨터 비전 그룹에서 제공하는 데이터베이스가 있다. 딥러닝의 발전을 가속화한 요인 중 하나로 오픈소스로 제공되는 개발 프레임워크를 들 수 있다. 여기서 프레임워크라고 하는 것은 딥러닝을 개발할 때 공통적으로 사용되는 기능들을 미리 만들어 라이브러리 형태로 제공하고, 운영체제 수준 아래 의 시스템 소프트웨어나 하드웨어 플랫폼을 잘 사용할 수 있게 해주는 역할을 한 다. 마치 자동차 생산 공정에서 자동차에 공통으로 적용되는 각종 뼈대와 모듈의 역할과 유사하다. 다른 관점에서 예를 들면, 히말라야를 등정할 때 베이스캠프의 역할이 바로 프레임워크다. 등반대가 최종 등정 과정에만 집중하게 해주는 베이스 캠프가 도입되면서 히말라야 등정이 보편화되고 완등에 성공할 확률이 급속도로 증가했다. 딥러닝 프레임워크는 주로 대학교를 중심으로 개발되고 있다. 예를 들면, 캐나다 몬트리올 대학의 시아노 Theano, 미국 뉴욕 대학의 토치Torch, 캘리포니아 버클리 대 학의 카페Caffe가 대표적이다. 구글은 최근 구글 브레인에서 사용한 디스트빌리프 DistBelief를 보강해 텐서플로우TensorFlow라는 딥러닝 프레임워크를 공개했다. 스타트 업으로는 최초로 스카이마인드Skymind라는 회사가 딥러닝포제이 DeepLearning4J라는 프레임워크를 오픈소스로 제공하고 있다. 딥러닝포제이는 유일하게 자바Java에 특 화된 프레임워크이며, 이미 대중화된 분산컴퓨팅 오픈소스인 하둡Hadoop과 스파크 Spark와 함께 사용할 수 있게 최적화돼 있다. 오픈소스로 공개된 딥러닝 프레임워크 덕분에 많은 딥러닝 개발자들은 공통적으로 자주 사용되는 기능에 시간을 소비할 필요가 없이 자신의 딥러닝 아이디어를 쉽고 빠르게 구현할 수 있게 됐다. 인공지능이 이미 사람의 능력을 앞지르는 경우가 점점 늘어나고 있다. 50여 년 전 처음으로 시도됐던 퍼셉트론 수준과 비교해 보면 경이롭기까지 하다. 숫자를 빠르 게 계산하는 것은 일찌감치 기계가 사람을 앞질렀고 이제 보드게임과 일반상식을 겨루는 퀴즈 대회에서도 사람을 능가한다. 인류의 마지막 보루로 여겨졌던 바둑에 서도 결국 기계가 승리했다.
그러나 지금까지 보여준 인공지능은 어느 한 특정한 기능을 잘 수행하는 정도다. 예를 들면, 계산을 잘 하고, 체스와 바둑을 잘 두고, 일반상식을 척척 알아맞힌다. 어떤 경우에는 의사보다 정확히 환자의 병명을 가려낸다. 그런데 만약 세계 바둑 챔피언을 이긴 알파고에게 강아지가 있는 사진을 고르라고 하면 아마 무한 루프를 돌지도 모른다. 구글의 연구원들이 16,000대의 서버를 가지고 3일 동안 학습시킨 구글 브레인은 이제 겨우 고양이 사진을 골라낼 수 있는 수준에 도달했다. 아직까 진 유치원생 수준인 것이다. 오늘날 최첨단 로봇은 계단을 오르내리는 데 매우 불 안정한 모습을 보이고 자갈길을 걸으면서 중심을 잡는 데 상당히 어려워한다. 심 지어 고꾸라지기도 한다. 하지만 분명한 것은 지금 인공지능의 기술 수준은 매우 중요한 변곡점에 와있다는 사실이다. 최근 우리는 알파고를 통해서 컴퓨터가 스스로 진화하는 것을 확인했 다. 강화학습이라는 시행착오 학습법으로 알파고는 사람이 몇십 년이 걸려 쌓아온 바둑 기술을 1년만에 스스로 터득했다. 다음 단계로 인공지능 과학자들이 주목하 고 있는 것은 알파고가 바둑에서 터득한 지식을 다른 분야에 적용할 수 있는 추론 능력 여부다. 바둑에서 나오는 포석과 패의 원리를 다른 상황에 응용할 수 있다면 강인공지능 Strong Artificial Intelligence 또는 일반 인공지능 AGI; Artificial General Intelligence이 완성되는 것이다.
책 제목 : 알고리즘으로 배우는 인공지능, 머신러닝, 딥러닝 입문
지은이 : 김의중