CNN의 발전과 활용, 왜 딥러닝인가?
🎙️ Yann LeCunCNN의 발전
동물의 시각 피질에서 뉴런은 시야 내의 특정 영역에 존재하는 특정 윤곽선 표현에 대해 반응한다. 특정한 영역의 특정한 표현을 감지하는 특정한 뉴런들이 존재한다.
Fukushima (1982)는 두 가지 이론에 입각해 이러한 뇌와 똑같이 동작하는 신경망neural net(NN)을 만들었다. 하나는 시야 전체에 대응하는 뉴런들이 있다는 것이고, 또 하나는 시야 내의 표현을 감지하는 간단한 세포들로부터 정보를 가져오는 복잡한 세포가 있다는 것이다. 그 결과, 사물이 움직여도 간단한 세포들의 활성화 여부들만 변화하고 복잡한 세포의 활성화에는 변화가 없을 거라는 이론이다. (합성곱 풀링Convolutional Pooling)
얀 르쿤 (1990)은 손으로 쓴 숫자를 인식할 합성곱 신경망Convolutional Neural Network(CNN)을 학습시키는데 역전파를 활용하였다. 유튜브에서 1992년 촬영된 다양한 스타일로 작성된 숫자를 인식하는 이 알고리즘의 시연 영상을 찾아볼 수 있다. 당시 문자/패턴 인식 분야에서, 앤드 투 앤드로 학습된 모델을 활용하는 것은 새로운 사례였다. 종래에는, 지도 학습된 모델과 특징 추출기를 함께 사용하는 것이 일반적이었기 때문이다.
이 새로운 CNN 시스템은 한 이미지 안에 여러 숫자가 적혀있는 것도 인식할 수 있었다. 이를 위해, 사람들은 CNN 시스템에 입력을 위한 작은 창을 만들고, 이 창이 전체 이미지를 훑고 지나가게 했다. CNN 시스템이 작동하면, 특정 숫자가 이미지 안에 있음을 알 수 있었다.
얀 르쿤의 시도 이후, 이러한 기술은 안면/인물 감지와 시맨틱 분할semantic segmentation(픽셀 단위의 인식)에도 적용되었다. Hadsell (2009)와 Farabet (2012)과 같은 사례가 있다. 이는 결국 업계에서 굉장히 유명해졌고, 점차 자율주행의 차선 추적에도 적용되었다.
1980년대엔 CNN을 학습시키기 위한 특별한 하드웨어가 논의되었지만, 점차 관심이 식었었다. 그러나 최근, 이는 다시 논의되기 시작했다.
(비록 당시에 이 단어가 사용되진 않았지만) 딥러닝 혁명은 2010년에서 2013년 사이에 일어났다. 학자들은 대규모의 CNN을 빠르게 학습시킬 수 있는 알고리즘을 연구했다. Krizhevsky (2012)는 AlexNet을 개발했다. 원래 사용되던 CNN 보다 훨씬 거대한 모델이었다. 이 모델은 ImageNet(130만 개의 샘플) 데이터에서 GPU를 통해 학습되었다. 고작 몇 주만에 AlexNet은 당시 최고의 성능을 내던 모델을 큰 성능 차이로 압도했다. – top-5 error rate에서 25.8% vs 16.4%의 성능차를 냈다.
AlexNet의 성공을 목도한 컴퓨터 비전(CV) 학계는 CNN에 매료됐다. 2011~2012년 사이에 CNN을 언급한 논문들은 모두 거부된 반면, 2016년 이후 대부분의 CV 논문들은 CNN을 활용한다.
수년 간, CNN 모델의 계층은 점점 깊어졌다: LeNet – 7, AlexNet – 12, VGG – 19, ResNet – 50. 그러나 그만큼 신경망은 출력과 모델의 크기, 정확도를 측정하는데 더 많은 연산 성능을 요구하게 되었다. 그러나, 최근 이슈가 되는 것은 이러한 신경망을 어떻게 압축하여 연산 속도를 빠르게 하느냐는 것이다.
딥러닝과 특징 추출
다계층 신경망은 데이터의 구성적 특징을 잘 활용하기에 강력하다. 한 계층에서 객체들의 조합은 다음 계층에서 하나의 객체를 구성한다. 우리는 이러한 계층을 여럿 쌓아서 신경망이 적절한 특징의 조합을 학습하도록 하여, 딥러닝 아키텍처라고 부르는 것을 만든다. 즉, 딥러닝 신경망은 본질적으로 계층적이다. (역주. 나뭇잎과 줄기, 꽃이 합쳐저 나무라는 하나의 객체가 되는 것을 생각하면 좋다.)
딥러닝은 컴퓨터 비전 분야에 폭발적인 발전을 야기했고, 이제 컴퓨터 비전은 객체를 분류하는 것을 넘어 영역을 정확히 감지하고, 객체의 공간적 특성을 감지하는 수준까지 발전했다. Mask-RCNN과 RetinaNet 구조가 이 분야의 발전을 주도하고 있다.
Mask RCNN은 이미지 내의 각 객체들의 영역을 분할하기 위해 등장헀다. 신경망의 입력과 출력은 모두 이미지이다. 이 구조는 또한 같은 이미지에서 동일한 유형의 서로 다른 객체를 식별하는 인스턴스 분할instance segmentation에도 사용할 수 있다. Facebook AI Research (FAIR)의 Detectron 시스템은 이러한 모든 SOTAstate of the art급 객체 탐지 알고리즘을 적용하였으며, 오픈 소스이다.
CNN의 대표적인 활용사례는 자율주행 자동차와 의료 영상 분석 분야이다.
딥러닝의 과학적/수학적 기반에 대한 연구가 꽤 진행되었음에도, 여전히 탐구할만한 흥미로운 주제들이 남아있다. 두 계층만으로도 모든 경우에 딥러닝 적용이 가능한데도 더 많은 계층을 쌓으면 성능이 좋아지는 것일까? 왜 CNN은 음성, 이미지, 텍스트 등의 데이터에서 잘 동작할까? 딥러닝이 볼록하지 않은 형태의 함수를 갖는 문제에서도 잘 작동하는 이유는 무엇일까? 필요 이상으로 큰 모델도 잘 작동하는 이유가 뭘까?
특징 추출은 표현의 차원을 확장하는 것으로 볼 수 있다. 이는 확장된 특징이 선형 분리 가능한 경향이 있기 때문인데, 고차원 공간의 데이터 포인트는 분리 가능한 축의 수가 많아서, 선형 분리 가능할 확률이 높기 때문이다.
초기 머신 러닝 전문가들은 고성능의 수작업으로 만들어진, 각 과업에 특화된 특징을 가진 인공지능 모델을 만들었다. 그러나 딥러닝의 발전으로, 모델들은 포괄적인 특징들을 자동으로 추출할 수 있게 되었다. 아래는 특징 추출에 일반적으로 사용되는 알고리즘 들이다.
- Space tiling
- Random Projections
- Polynomial Classifier (feature cross-products)
- Radial basis functions
- Kernel Machines
데이터의 구성적 특징 덕분에, 학습된 특징들은 계층이 쌓일수록 추상적 개념을 표현할 수 있는 특성을 갖는다.
- 이미지 - 가장 작게 보면, 이미지는 픽셀들의 집합으로 볼 수 있다. 픽셀들의 집합은 물체의 윤곽선을 구성하며, 윤곽선의 집합은 texton(여러 윤곽선을 갖는 도형)을 구성한다. 마침내 texton이 모여 사물을 구성하고, 이러한 사물이 모여 이미지가 된다.
- 텍스트 - 비슷하게, 문자 데이터에도 고유한 계층이 존재한다. 문자들은 단어를, 단어는 문장을, 문장은 글을 구성한다. 마침내 전하고자 하는 이야기를 담은 글이 탄생하는 것이다.
- 음성 - 음성 데이터에서도 샘플이 모여 주파수와 소리를 구성하고, 소리가 모여 음절, 음절이 모여 단어와 말이 된다.
표현을 학습하기
딥러닝을 단순히 생각하는 사람들은 이렇게 말한다. “모든 함수를 2개의 계층으로 구현할 수 있다면, 왜 굳이 더 깊은 층을 쌓아?”
예를들어, SVMsupport vector machine은 데이터의 범위span of data에서 선형 분류를 위한 초평면hyperplane을 찾는다. 즉, 추론이 학습 데이터의 범위 내에서 동작하는 것이다. SVM은 기본적으로 첫 번째 층이 “템플릿”, 두 번쨰 층이 선형 분리기인 아주 단순한 2 계층 신경망이다. 2 계층의 문제는 중간 계층의 복잡성과 크기가 입력 값의 크기 N에 대해 기하급수적으로 증가한다는 것이다. (어려운 문제를 해결하려면, 굉장히 많은 양의 템플릿이 필요하다.) 그러나 계층의 크기를 log(N)으로 확장하면 계층은 N에 대해 선형이 된다. 즉 시간과 공간 사이에 트레이드 오프가 발생하는 것이다.
비유하자면, 이는 게이트가 두 개 이하인 boolean 함수를 계산하는 회로를 설계하는 것과 같다. - 이렇게 해도 모든 boolean 함수를 구현할 수는 있다! 다만 복잡한 함수에서는 첫 계층의 시간 및 공간 복잡도(게이트의 수)가 순식간에 무한대로 수렴할 것이다.
심층적deep이 뭘까?
- SVM은 계층이 두 개 밖에 없어 심층적이지 않다.
- 결정 트리classification tree 모든 계층이 동일한 (원형)특징을 분석하기에 심층적이지 않다.
- 심층deep 신경망은 여러 계층을 갖고, 이를 쌓아서 점차 추상적인(고차원적인) 특징을 다룬다.
어떻게 모델이 표현(좋은 특징)representation을 배울까?
매니폴드 가설: 데이터는 저차원 매니폴드에 존재한다. 존재 가능한 이미지의 집합은 당연히도 무한하다. 이 중에, “자연스러운” 이미지의 부분 집합이 속해있다. 예를 들어서, 사람의 사진은 사람이 움직일 수 있는 얼굴 근육들의 자유도와 그 갯수의 크기 정도order of magnitude에 따라 무한히 많이 존재한다. 이상적인(그리고 비현실적인) 특징 추출기는 사진에 영향을 줄 수 있는 모든 표현을 학습한다.(각 근육들, 조명, 각도 등)
수업 후 Q&A:
- 얼굴 예시에서, 특징을 추출할 때 차원 축소 기술(예를들어, PCA)을 활용할 수 있나요?
- 답: 매니폴드의 표면이 초평면일 때만 작동할 겁니다. 즉, 아니요.
📝 Marina Zavalina, Peeyush Jain, Adrian Pearl, Davida Kollmar
Gio
27 Jan 2020