본문 바로가기

Deep Learning/인공지능 개념 정리

CNN이 이미지에 더 효율적인 이유

320x100
320x100



이미지를 다루데에는 CNN을 가장 많이 사용한다.


convolution이 이미지 연산에 특화되어 있기 때문이다.


근데 왜 특화 되어 있다 말할 수 있는 걸까?


convolution layer와 fully connected layer를 비교해보면 이에 대한 답을 찾을 수 있다.



훨씬 적은 모델 파라미터 요구 개수


입력 이미지 크기가 [ 200 x 200 ]라고 가정했을 때


(1) fully connected layer의 경우



node를 1개로만 둬도 40,001개(가중치 40,000 + 바이어스 1)의 모델 파라미터가 필요하지만



(2) convolution layer를 사용하는 경우



3x3 커널 100개를 사용한다해도 1,000개(커널 900 + 바이어스 100)만 필요하다.



결과적으로 cnn연산이 훨씬 적은 계산량을 요구하므로 학습을 더 빠르고 효율적으로 진행할 수 있다.



flatten과정에서 손실되는 정보


fully connected layer를 사용하기 위해선


2D image를 1D array로 바꾸기 위해 flatten연산을 해야하는데 이 과정에서 공간 정보 손실이 발생하게 된다.


하지만 convolution layer의 경우 커널이 2D 형태로 만들어지기 때문에 정보 손실을 막을 수 있다.