본문 바로가기

ComputerScience/Machine Learning

AI - 13. Convolutional Neural Network

728x90

1. 영상인식?

- 영상 안의 물체를 인식하거나 분류하는 것.

2. 전통적인 영상 인식 시스템 구조

- 전처리 : 색상 변환, 영상 크기 변환, 대조비 변환 등의 작업

- 특징추출 : edge, curve, vertex등의 특징들을 추출하는 것

- 분류 : 추출된 특징들의 조합이나 가중치가 높은 특징이 많다 등의 근거로 분류

- 전통적인 영상 인식에서는 특징을 사용해서 분류를 한다. 

- 즉 개와 고양이를 구분지을 수 있는 적절한 특징을 가지고 분류 기준을 세우는 것이다.

3. CNN

- 사진이 입력으로 들어가면 은닉층에서 알아서 특징들을 추출한다. 

- 사진으로부터 컨볼루션 연산이 이루어지면 특징들을 추출한다. 계속 이 과정을 반복한다. fully connected layer가 되어 최종 분류할 class들과 연결이 된다.

- receptive field : 5 by 5 마스크 보다 3 by 3 마스크를 두번 사용하면 더 많은 깊이 정보가 저장되지만 더 디테일한 정보들을 잡아낸다.
- 컨볼루션 연산을 통해 특징을 뽑아서 특징맵(feature map)을 만든다.

- 특징맵에 대해서 pooling을 수행한다. n by n 에서 최대값을 뽑으면 max pooling, 평균값을 꺼내면 mean pooling이라고 한다.

- 풀링은 n by n에서 하나의 값만 뽑기 때문에 입력의 차원을 줄이는 연산이다.

- 다시 컨볼루션과 풀링을 여러번 되풀이한다.

-  처음에는 작은 영역에서 edge들만 추출되지만 

- feature map 이 깊어지면 더 큰 영역에서 특징을 추출한 것과 같은 효과인 것이다.

- 그렇게 최종 객체 모델이 만들어지면 fully connected layer에서 각각 가중치를 두고 최종 class 분류가 이루어진다. 이렇게 뽑아낸 특징들을 모두 출력 노드에 연결하여 weight에 따라서 class가 분류된다.

- convolution 연산은 주변 화소값들에 가중치를 곱해서 더한후 activation function을 통해 새로운 화소값을 계산한다.

- mask의 연산 과정은 아래와 같다.

- 꼭 필터의 수가 하나여야 할 필요는 없다.

- 그리고 필터의 값은 미리 정해진게 아니라 출력층의 개수를 설정하면 학습을 통해 정해진다.

- 이런식으로 전통적으로 특징을 설정하여 분류를 하는 방식을 대체할 수 있다.

4. 풀링, 서브 샘플링

- convolution 결과에서 n by n 구역에서 특정 하나의 값을 뽑음으로써 입력 데이터의 크기를 줄인다.

 

- 최대풀링은 영상처리 의미에서는 엣지, 선, 코너 등의 특징을 살려주는 측면이 있고 평균풀링은 노이즈 제거 효과가 있다.

- 풀링은 레이어의 크기가 작아지므로 계산이 빨라진다.

- 레이어 크기가 작아지면 신경망의 매개변수도 작아지기 때문에 오버피팅의 가능성이 줄어든다.

- 풀링을 하면 물체의 위치에 영향을 덜 받는다. 풀링을 통해 의미가 없는 영역이 잘려나가기 때문에 그렇다.

728x90
반응형