관리 메뉴

KorSA

CNN(Convolutional Neural Networks) 본문

Data Analysis/Data

CNN(Convolutional Neural Networks)

Praiv. 2022. 2. 14. 18:53
320x100

 

 

 

(이미지 출저: http://www.iro.umontreal.ca/~bengioy/talks/DL-Tutorial-NIPS2015.pdf)

 

 

이 글은 CONVOLUTIONAL NEURAL NETWORKS(CNN) INTRODUCTION을 읽고 요약한 글입니다.

 

 

 

이전에 ANN(Artifical Neural Networks)에 관한 글을 읽었는데, CNN은 ANN의 한계를 극복하기 위해 만들어졌다.

 

그 한계가 무엇인고 하니

ANN은 모든 뉴런들이 서로 연결되어 있는 구조여서 학습할 데이터가 크면 클수록 복잡성이 급격하게 증가하는 것이었다.

 

복잡성이 증가하면 그만큼 학습(Training)에 소요되는 시간도 길어졌고 컴퓨터 성능을 최대한 끌어올려 학습하는 경우 이 학습 시간이 연구를 하기엔 너무 오래 걸리는 것이었다.

 

이에 대한 대안으로 나온 모델이 Convolutional Neural Netowrks, CNN이다.

 

CNN은 모든 뉴런이 연결되어 있지 않다. CNN은 크게 4 단계의 레이어로 구성되는데 

첫번째가 Convolution,

두번째가 Subsampling,

세번째가 Activation,

마지막 네번째가 Fully Connected 이다.

이름 그대로 모든 뉴런이 연결되어 있는 지점은 마지막 레이어들 뿐이다.

 

Convolution 단계는 input으로 들어온 signal이 어떤 것인지 라벨링을 하는 단계이다. CNN 모델은 자신이 이전에 학습한 내용을 토대로 새로 들어온 input이 과거 보았던 어느 것(예를 들어 고양이)과 닮았다고 분류한다. 이 단계를 거치면 input signal은 특정 태그("고양이")를 달고 다음 단계로 이동한다.

 

Subsampling 단계는 input signal을 살짝 모호하게, 혹은 부드럽게("smoothened") 만든다. 고양이 100마리의 이미지를 학습한다고 할 때 이들 사이의 공통점을 찾아내기 위해서는 너무 디테일하게 들어가지 않는 게 좋다. 디테일은 100마리 모두 다를 것이기에 살짝 추상화를 하는 느낌이다. 이 과정에서 자연스레 학습 데이터의 크기나 색상 분포도는 줄어든다.

 

Activation 단계는 앞의 단계에서 정제된 신호들을 한 뉴런에서 다른 뉴런으로 전파하기 시작한다. 신호 전파 양상은 Activation Function에 따라 결정되고 일반적으로 Activation Function은 ReLU(Rectified Linear Unit) 함수가 빠르기 때문에 많은 사람들이 사용한다.

 

Fully Connected 단계는 input signal이 갈 수 있는 모든 경로가 연결되어 있기 때문에 높은 수준의 추론을 한다.

 

 

이론은 이 4단계로 진행된다고 하면 구현은 어떻게 해야 하나?

CNN 모델이 학습하는 방법은 영어 단어를 외울 때와 비슷하다. 영어 단어 카드를 만들고 한 장씩 넘기면서 아는 것은 버리고 모르는 것은 다시 카드 더미에 넣어둔다. 이 카드 더미를 쭉 읽어보며 새로 외운 카드는 버리고 아직 못 외운 카드는 버린다. 이 과정을 자주 반복하여 마침내 모든 영어 단어를 다 알게 되는 것이다. 카드 더미를 순차적으로 읽는 방법이 gradient descent 알고리즘이고 랜덤으로 카드를 꺼내어 읽는 방법이 stochastic gradient descent이다. 랜덤으로 카드를 읽게 되면 순차적으로 읽었을 때에 비해 편향(bias)이 줄어든다.

 

CNN 모델은 학습 뿐만 아니라 Feeback 과정도 있는데, 모델이 선택한 답과 정답지의 답이 다를 경우 그 결과를 피드백받아 기존에 지정한 weight 값을 수정한다. CNN 모델은 이 수정된 weight 값으로 다시 학습을 함으로써 틀리는 정도를 줄여나가게 된다. 이 과정을 구현한 알고리즘이 backpropagation of errors이다. 

 

이전에는 CNN 모델의 머릿 속에서 어떤 과정이 일어나는지 블랙 박스였다. 사람들이 알지 못했다는 의미이다. 그래서 현재는  DeConvolution Neral Net처럼 이 녀석의 머릿 속에서 무슨일이 벌어지고 있는지 확인하는 시도들도 나오고 있다. 

 

 

 

728x90
728x90
Comments