본문 바로가기

카테고리 없음

[cs231n] Lecture 5: Convolutional Neural Networks

Convolution Layer

convolution은 좌상단에서 시작해서 하나의 결과값을 output activation map에 저장한다.

activation map의 크기는 slide를 어떻게 하느냐에 따라 달라진다.

한 layer에서 여러 개의 filter를 사용해 다양한 특징을 추출할 수 있다.

각 필터마다 각각의 map을 생성하며 필터들이 계층적으로 학습된다.

Stride

stride는 filter를 몇 칸씩 움직이는지를 결정하는 숫자이다.

stride가 2라면 두 칸씩 sliding하며 convolution을 수행한다.

7*7 이미지를 3*3 filter로 연산을 수행할 때 stride을 3으로 한다면 이미지에 fit되지 않는다.

불균형한 결과를 만들어내므로 수행되지 않는다.

이런 경우 padding을 활용할 수 있다.

Padding

zero-pad는 이미지 주변에 0값으로 padding을 주는 것이다.

zero-pad를 통해

- 출력 사이즈를 입력 사이즈와 같게 유지할 수 있고

- 모서리 정보도 잃어버리지 않고 연산할 수 있다

 

보통 filter 크기가 3*3일때 zero pad를 1, 5*5일 때 2, 7*7일 때 3으로 설정한다

 

Torch를 사용해 Conv Layer를 구현할 수 있다

W, H, D, padding, stride, filter 등의 크기를 지정할 수 있다.

Pooling Layer

Pooling layer은 representation을 더 작게 만들고 관리할 수 있도록 한다.

- 파라미터 개수를 줄여주고

- 공간적인 불변성을 확보한다

Pooling 기법 중 Max Pooling을 가장 많이 사용한다.

filter안에서 가장 큰 숫자만 남기는 방식이다