글 수 92

딥러닝이 탄생할 수 있었던 진짜 이유

조회 수 995 추천 수 0 2019.02.01 18:00:04


딥러닝이 처음 주목을 받기 시작했었던 것은 2012년 ILSVRC(ImageNet Large Scale Visual Recognition Competition)였습니다. 페이페이 리가 설립한 ImageNet에서 주최하는 대회로, 15만장의 사진을 1000개의 카테고리로 얼마나 정확하게 분류하는지 경쟁합니다.

 

image01.jpg

 

 

 

여기서 딥러닝의 아버지로 불리는 제프리 힌튼의 AlexNet이 놀라운 성적으로 1등을 차지합니다. 에러율에서 2위와 무려 10%의 차이가 납니다. 2~5위 까지는 거의 비슷한 수치인 것을 보면 그만큼 AlexNet이 압도적인 성능을 가졌다고 할 수 있습니다. 다른 팀들은 대부분 SVM 같은 전통적인 머신러닝 기법을 사용한 반면, 힌튼은 신경망 방식의 딥러닝 모델에 기반하였습니다.

image02.png

 

 

 

많은 사람들은 힌튼이 우승했던 이유가 CNN(Convolutional neural network) 덕분이라고 알고 있습니다. CNN은 이전의 신경망처럼 모든 노드들이 완전히 연결되어 있지 않고 컨볼루션과 풀링을 사용해 이미지의 특징을 뽑아냅니다. 여러 층을 지날 수록 단순한 특징에서 복잡한 특징으로 추상화됩니다.

 

image03.jpg

 

 

 

하지만 CNN은 이미 그 전부터 존재하던 기술이었습니다. 현재 페이스북의 AI 수장인 얀 르쿤이 1989년 손글씨 숫자를 CNN으로 인식하는 소프트웨어를 개발하였고 실제 상용화되기도 했습니다. 딥러닝의 Hello World라고 할 수 있는 MNIST가 바로 그때 만들어진 데이터셋입니다.

 

얀 르쿤의 LeNet은 이미지 인식에 뛰어난 성능을 보였지만 한계가 있었습니다. 단순한 손글씨 정도는 학습이 가능했지만, 해상도가 높거나 복잡한 사진일 경우 정확도가 현저히 떨어졌습니다. 그래서 SVM 같은 다른 머신러닝 기법에 자리를 내줄 수 밖에 없었습니다.

 

 

 


일반적인 머신러닝과 마찬가지로 신경망의 딜레마는 최적화와 일반화 사이의 균형입니다. 훈련 데이터를 가장 잘 분류할 수 있도록 최적화하는 것이 중요합니다. 동시에 처음 보는 테스트셋에서 좋은 결과를 얻는 일반화 능력이 필요합니다. 보통 최적화가 잘 되면 일반화가 떨어지고, 일반화를 높이면 학습 시 최적화가 안됩니다.

 

고차원의 이미지를 잘 분류하도록 최적화하려면 CNN을 여러 계층으로 붙여 딥러닝 같은 깊은 신경망을 구성해야 합니다. 하지만 이럴 경우 오차의 미분값인 그래디언트가 점점 사라지는 현상이 발생했습니다. 이런 그래디언트 소실(vanishing gradient) 때문에 학습이 오래 걸리거나 아예 불가능하기도 합니다.

 

image04.jpg

 

 

 

그래디언트 소실이 발생하는 가장 큰 원인 중 하나는 시그모이드 같은 활성화 함수(activation function)라는 것이 밝혀졌습니다. 각 뉴런의 입력과 가중치의 곱을 모두 합하여 출력 신호로 변환하는 곳입니다.

 

neuralnetworkexample.jpg

 

 

 

신경망에서 활성화 함수가 없다면 입력과 가중치의 행렬 계산만 있어 선형 변환만 가능합니다. 가설 공간을 세부적으로 분류하기 위해서는 반드시 활성화 함수를 거쳐 비선형으로 바꿔야 합니다.

 

image05.png

 

 

 

시그모이드 함수는 가운데 부분만 변화가 있고 입력이 좌우로 커져도 항상 고정된 값이 나옵니다. 그래서 출력값이 높을 경우 활성화 함수를 거치면서 정보가 사라져 버리는 문제가 발생합니다. AlexNet은 ReLU를 사용하여 이를 해결하였습니다. 아래 그림에서 보는 것처럼 입력이 커져도 그 변화를 그대로 출력에 반영합니다. 그래서 그래디언트를 최대한 보존하여 깊은 계층으로 전달할 수 있었습니다.

 

image06.png

 

 

 

깊은 신경망의 두 번째 문제점은 과대적합입니다. ReLU로 그래디언트 소실을 막고 학습이 잘 되어도, 훈련 데이터에 너무 과도하게 맞춰져 테스트셋을 제대로 판단하지 못합니다. 계층이 늘어나면 정보를 기억할 수 있는 가중치의 개수가 증가합니다. 만약 훈련 데이터의 양보다 가중치 공간이 더 크다면, 최악의 경우 모든 훈련 데이터를 하나하나씩 별도로 구분할 수도 있습니다. 

 

image07.jpg

 

 

 

제프리 힌튼은 드롭아웃이란 기법으로 이 문제를 해결했습니다. 훈련 시에는 랜덤하게 신경망의 연결을 끊어버립니다. 이렇게 하면 특정 노드에 의존하지 않아 일반화 능력이 향상됩니다. 학습이 끝나고 실제 테스트를 할 때는 드롭아웃을 사용하지 않습니다.

 

인터뷰 기사를 보면 은행의 부정 방지 메커니즘에서 영감을 얻었다고 합니다. 은행에 갈 때마다 행원들의 업무가 자주 바뀌는 것을 보았습니다. 직원 사이의 유대 관계를 줄여야만 부정한 협업을 막을 수 있기 때문입니다. 마찬가지로 뉴런들의 연결을 임의로 깨뜨려야지 나쁜 패턴을 기억하지 못할 거라 생각하고 드롭아웃이란 새로운 기술을 적용하였습니다.

 

image08.png

 

 

 

지금까지 살펴본 것처럼 딥러닝이 탄생할 수 있었던 가장 큰 이유는 ReLU와 드롭아웃 덕분입니다. 신경망의 계층이 깊어져도 최적화와 일반화가 잘 되어서 수십만장의 사진도 정확하게 분류할 수 있습니다. 현재도 그래디언트 소실과 과대적합을 막기 위해 계속 새로운 기술이 개발되고 있습니다. 앞으로 이런 노력들을 통해 딥러닝이 더욱 발전하길 기대합니다.

 

 

 

< 인공지능 개발자 모임 >

- 페이스북 그룹에 가입하시면 인공지능에 대한 최신 정보를 쉽게 받으실 수 있습니다.

https://www.facebook.com/groups/AIDevKr/

List of Articles
제목 글쓴이 날짜 조회 수
빈 주차공간을 찾아서 알려주는 인공지능 만든 개발자 깊은바다 2019-02-09 545
자신의 이름을 음성으로 만들어 주는 사이트 깊은바다 2019-02-04 424
딥러닝이 탄생할 수 있었던 진짜 이유 file 깊은바다 2019-02-01 995
딥러닝 이미지 편집 프로그램 - GAN Paint 깊은바다 2019-01-12 3379
고해상도 GAN - A Style-Based Generator Architecture for GAN 깊은바다 2018-12-15 462
새로운 인공지능 기술 GAN 깊은바다 2018-11-24 963
비지도학습으로 고양이를 판단하는 구글브레인의 딥러닝 모델 file 깊은바다 2018-10-01 912
Spiking Neural Networks: 생물학적 신경망을 모방한 차세대 신경망 [2] 깊은바다 2018-08-27 641
소프트웨어 2.0 깊은바다 2018-08-14 242
딥러닝 역사 깊은바다 2018-07-10 410
딥러닝을 이용한 사용자 선호도 기반 의상 추천 알고리즘 깊은바다 2018-06-26 1040
남세동의 딥러닝 이야기 깊은바다 2018-06-22 476
이미지 탐지기 쉽게 구현하기 - Tensorflow Hub 깊은바다 2018-06-20 1687
꽃이름이 궁금해? 다음 앱 AI에 물어봐! 깊은바다 2018-06-07 193
텐서플로와 케라스 코드 비교 깊은바다 2018-06-06 2193