Backbone 이해하기: CNN
CNN 기본 개념 다지기
컨볼루션 레이어 : 컴퓨터 비전 task를 수행하는데 유용한 특징들을 학습
Activation Func : 네트워크에 비선형성을 가해주는 역할
Pooling layer : feat map에 spatial agg를 시켜준다.
1. 컨볼루션 layer
- 네트워크가 유용한 feature들을 학습할 수 있도록함.
filter(=kernel)
- 인풋 이미지를 특정 크기의 필터를 이용하여, 컨볼루션 연산을 시행하여 필터 영역에 대한 특징을 추축함. - 예시로는 output이 2x2가 나옴
1. stride(S) : filter를 얼마만큼의 간격으로 움직일 것인가?
- 위와 같이 output의 size를 (SN−F+1)로정의할 수 잇음.
- 입력이미지가 작아지게 된다는 것(컨볼루션 레이어를 거치면 작아지는 것을 의미한다.)
2. Padding(P) : feature map의 크기를 일정 수준으로 유지
- zero padding : 0으로 채운 pixel을 주변에 채워넣어주는 것임
- output size : (SN−F+2P+1)로 변하게 됩니다.
Activation Func
- 모델이 비선형성을 가질 수 있도록 만듦.
- 비선형성이란, 데이터의 분포로부터 선형성만으로는 분류 못하는 것을 가능하게 비선형함수를 이용하여 구할 수 있게됨.
- 컨볼루션 레이어만으로는 선형성을 판별할 수 있음 - 이를 activation func을 이용하여 비선형성을 가질 수 있도록 함.
Pooling Layer
-
feature map에 spatial aggregation을 시킴.
-
down sampling이 됨.
224x224 --> 112x112 (output size)
4x4 --> 2x2 (output size)
-
max pool이라면 : 가장 큰 값들만 가져오게 됨.
-
avg pool이라면 : 값들의 평균을 가져옴.
-
장점 :
모델의 파라미터 수가 줄어듬.
receptive field가 달라지게 됨.