본문 바로가기
DeepLearning

Deep Learning | CNN (Convolutional Neural Network)

by daewooki 2021. 7. 5.
반응형

Convolutional Neural Network (합성곱 신경망)

 

1998년 얀 레쿤 교수가 소개한 신경망, 이미지 인식 분야에서 강력한 성능을 냄.

음성인식이나 자연어 처리 등에도 사용가능하고 활용성이 매우 뛰어남.

 

 

What is Convolution?

 영상 처리 분야에서 convoulution(합성곱)이라는 것은 주로 filter 연산에 사용된다

영상으로부터 특정 feature들을 추출하기 위한 필터를 구현할 때 사용한다

 

, 3 by 3 또는 그 이상의 window 혹은  mask를 영상 전체에 대해 반복적으로 수행하면,  mask의 계수 값들에 따라 적절한 결과를 얻을 수 있다

쉽게 이야기하면 평면 행렬에서 지정한 영역의 값들을 하나의 값으로 압축한다고 생각하면 된다.

 

 

CNN이란?

합성곱(Convolution) 연산을 사용하는 ANN의 한 종류이다.

Convolution을 통해 3차원 데이터의 공간적 정보를 유지한 채 다음 레이어로 보낼 수 있다.

 

 

기본적으로 Convolution layer Pooling layer로 구성된다.

 

하나의 값으로 압축할 때 convolution layer weight bias를 적용하고, pooling layer는 단순히 값들 중 하나를 선택해서 가져오는 방식이다.

 

 

 

지정한 크기의 영역을 window라고 하고, window의 값을 오른쪽, 그리고 아래쪽으로 한칸씩 움직이면서 은닉층을 완성한다

움직이는 크기를 변경할 수 있고, 몇 칸씩 움직일지 정하는 값을 Stride라고 한다.

 

예를 들어, stride = 2 이면 두 칸씩 건너 뛰면서 필터를 적용하면 된다.

 

입력층의 윈도우를 은닉층의 뉴런 하나로 압축할 때, convolution layer에서 윈도우 크기만큼의 weight 1개의 bias를 적용한다

예를 들어 윈도우 크기가 3 by 3이라면 3X3개의 weight 1개의 bias가 필요하다.  3X3개의 weight 1개의 bias kernel이라고 한다

이 커널은 해당 은닉층을 만들기 위한 모든 윈도우에 공통으로 적용된다.

 

CNN의 가장 중요한 특징인데, 예를 들어 입력층이 28 X 28이라고 했을 때, 기본 신경망으로 모든 뉴런을 연결하면 784개의 가중치를 찾아내야 하지만, convolution layer 에서는 9개의 가중치만 찾아내면 된다

따라서 계산량이 매우 적어져 학습시간이 줄어든다.

 

반응형

댓글