brunch

You can make anything
by writing

C.S.Lewis

by 라인하트 Sep 07. 2019

인공지능의 이해(3/6):딥러닝

딥 러닝 (Deep Learning)의 역사

   인공신경망 알고리즘은 탄생 후 오랫동안 주목받지 못했습니다. 2004년 토론토 대학교의 제프리 힌튼 (Geffrey Hinton) 교수와 연구진들은 인공신경망을 한 차원 높이는 딥러닝 (Deep Learning) 알고리즘을 개발하였습니다. 하지만, 아직도 시기상조였습니다. 딥러닝 알고리즘을 구현하기 위해서는 엄청난 양의 데이터와 빠른 연산을 할 수 있는 컴퓨터가 필요했고, 심층 인공 신경망은 다수의 은닉층을 가진 경우에 제대로 동작하지 않았기 때문에 사람들은 기술 자체를 등한시하고 있었습니다. 


   제프리 힌튼 교수는 심층 인공 신경망을 지속적으로 연구하였습니다. 가중치와 바이어스(편향성)에 대한 초기값을 잘 설정한다면 역전파 알고리즘의 문제점을 해결할 수 있다는 것을 발견했습니다. 또한, 빅데이터 기술과 컴퓨터 성능의 비약적 발전으로 딥러닝은 새로운 전기를 맞이하게 되었습니다. 


   2012년에 딥러닝의 역사에서 획기적인 사건이 이미지넷이 주최하는 이미지 인식 경진 대회 (ILSVRC, large Scale Recognition Competition)에서 일어났습니다. 이미지넷 대회는 인공지능이 1,000개가 넘는 카테고리로 분류된 백만 개의 이미지를 인식하여 얼마나 정확하게 이미지를 구분하는 지를 겨룹니다. 2012년 토론토 대학의 제프리 힌튼 교수팀은 CNN 기반의 딥러닝 알고리즘인 알렉스넷(AlexNet)으로 압도적인 우승을 차지하였습니다. 알렉스넷의 정답률은 83.6%로 였고, 기존의 인식 오류율을 26%에서 16%까지 획기적으로 낮추었습니다. 



   

  사람은 직관적으로 이미지를 구분하는 쉬운 작업이지만, 직관이 없는 기계는 매우 어려운 작업입니다. 알렉스넷이 이미지넷 대회에서 우승하자, 인공 신경망 기술인 딥러닝은 모든 이들의 관심을 받았습니다. 딥러닝 기술이 발전하면서 2015년 이미지넷 대회에서 사람들의 오류율인 5%를 넘어섰고, 2017년 대회에서는 2.3%까지 떨어졌습니다. 



머신러닝과 딥러닝의 차이

   문제의 해답을 찾기 위해서는 과거에는 사람들은 정확한 함수를 만들고 컴퓨터에게 계산을 맡겼습니다. 머신러닝은 사람들이 대충 가설식을 세우고 컴퓨터가 학습을 통해 최적화된 함수를 만들어서 계산을 하게 합니다. 기계가 학습한다는 의미는 가설식의 비용(Cost) 또는 손실(Loss)이 최소화되는 가중치 (Weight)를 찾는 과정입니다. 최적의 가중치를 찾기 위해서는 데이터가 많을수록 좋습니다. 머신러닝은 가설식을 세우는 사람의 개입이 필요합니다.


   개와 고양이 사진을 분류하는 인공 지능을 예로 들어 봅니다. 머신러닝은 기계가 학습하기 전에 사람들이 개의 특징과 고양이의 특징을 정의합니다. 가설식을 위한 변수를 x1은 수염, x2는 털, x3는 귀, x4는 눈동자 등으로 정의하고, 방대한 이미지를 입력하면서 각 변수의 최적화된 가중치 'w'를 찾아냅니다.  


   딥러닝은 사람의 개입이 최소화됩니다. 사람은 개의 이미지 데이터와 고양이 이미지 데이터만 기계에게 입력합니다. 딥러닝 알고리즘은 자동으로 개의 특징과 고양이의 특징을 찾아서 정의합니다. 딥러닝 알고리즘이 찾아낸 개와 고양이의 특징들은 사람이 이해할 수도 있고 못할 수도 있습니다. 딥러닝 알고리즘이 직접 특징(Feature)을 정의하기 때문에 몇 개의 변수를 사용하는 이유와 특징이 어떻게 정의되었는 지를 사람이 이해할 수 없습니다. 


   딥러닝과 전통적인 머신러닝의 차이점은 세 가지로 정리할 수 있습니다. 우선은 데이터량에 따른 성능의 차이입니다. 딥 러닝은 데이터 많을수록 성능이 뛰어나지만, 머신러닝은 데이터가 적은 환경서도 효과를 발휘합니다. 두 번째로 딥러닝은 그래픽 처리 장치 (Graphic Processing Unit)가 포함된 고사양의 컴퓨터가 필요하지만, 머신러닝은 저사양의 컴퓨터에서도 실행할 수 있습니다. GPU는 그래픽을 빠르게 처리하기 위해 행렬과 같은 숫자 계산에 특화된 CPU입니다. 세 번째는 딥러닝은 머신러닝에 비해 학습 시간이 굉장히 오래 걸립니다. 머신러닝은 수초에서 수시간 정도라면 딥러닝은 몇 주 단위입니다. 




딥러닝이 진보된 머신러닝이 아니다 

   머신 러닝과 딥러닝은 기계가 학습을 통해 최적의 답을 찾는다는 점에서 같지만, 문제를 해결하는 방법은 완전히 다릅니다. 단순히 머신러닝보다 딥러닝이 진보된 개념이라고 볼 수 없습니다. 머신러닝의 장점이 드러나는 분야와 인공 신경망을 통한 딥러닝의 장점이 드러나는 분야가 다릅니다. 따라서, 문제에 어떻게 접근하는 것이 더 효율적인가에 따라 선택할 수 있습니다. 


   사람의 키를 기반으로 몸무게를 예측하는 시스템을 만든다고 가정해 봅시다.  키와 몸무게에 대한 일반적인 공식은 '몸무게 = 키 - 100'입니다. 방대한 데이터를 활용하여 키와 몸무게의 정확한 상관관계를 실제값과 예측값의 차이를 통해 찾아낼 수 있을 것입니다. 데이터를 기준으로 몸무게와 키의 상관 관계식이 '몸무게 = 키- 99.5'라는 답을 찾을 수도 있습니다. 또한, 성별에 따른 나이에 따른 변수들도 쉽게 추가할 수 있습니다. 이런 경우는 전통적인 머신러닝이 효율적입니다.



   

   폭풍 예측 시스템을 만든다고 가정해 봅시다. 과거의 폭풍에 관한 데이터와 폭풍 발생 몇 개월 전의 날씨 데이터가 있습니다. 사람들은 데이터를 샅샅이 뒤져서 특정 패턴을 찾아낼 것입니다. 또는 폭풍이 발생하는 원인들을 나열하고 원인들의 가중치를 바탕으로 발생 가능성을 예측할 것입니다. 이는 전통적인 머신 러닝이 효율적입니다.




딥러닝의 결과를 사람이 해석할 수 없다

   딥러닝은 학습능력이 뛰어나고 어렵고 복잡한 문제를 잘 해결합니다. 하지만, 사람들은 컴퓨터가 설정한 가중치가 어떤 값을 가지고 어떤 의미와 특징을 갖는 지를 알 수가 없습니다. 딥러닝 알고리즘을 이용한 문제 해결은 논리적이라기보다 실험적 접근을 합니다. 기계가 결정한 값이나 변수나 특징을 이해할 수 없지만 결과만 좋다면 사용합니다. 치밀하고 정교하게 프로세스를 설계하는 것이 아니라 한 번 실험해보고 잘 적용되면 채택합니다. 즉, 딥러닝을 통해 기계가 내놓은 결과값을 인간의 지적 능력으로 이해할 수 없는 단계입니다.  




참고자료


https://brunch.co.kr/@itschloe1/8



머신러닝 알고리즘에 대해 더 깊이 알고 싶을 때


매거진의 이전글 인공지능의 이해 (2/6): 인공 신경망
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari