728x90

C4W2L06 Inception Network Motivation

- 합성곱 신경망을 설계할때 1 x 3, 3 x 3, 5 x 5 등 필터 크기를 지정해주어야 함.

 =>  인셉션 신경망에서는 모든 필터 크기를 다 사용함. 복잡하지만 성능은 더 좋아짐.

 

인셉션 신경망의 개요

- 필터 크기 지정없이 다양한 합성곱, 풀링 층을 사용함.

- 28 x 28 x 192 -> 1 x 1 x 192 x 64 => 28 x 28 x 64

- 28 x 28 x 192 -> 3 x 3 x 192 x 128 => 28 x 28 x 128

- 28 x 28 x 192 -> 5 x 5 x 192 x 32 => 28 x 28 x 32

- 28 x 28 x 192 ->  Max Pool 28 x 28 x 32 => 28 x 28 x 32

 * 다른 합성곱 연산 결과와 맞추기 위해서 최대 풀링의 경우 same, s=1 지정 필요

=> 아래의 인셉션 모듈의 출력은 28 x 28 x 256

- 필터나 풀링을 지정하기 보다 모두 사용해서 합한것을 학습함.

- 인셉션 모듈의 문제로 계산 비용이 있음.

계산 비용 문제

- conv2d 5 x 5, same, 32 연산 시 출력은 28 x 28 x 32

- 28 x 28 x 32 (output)  x 5 x 5 x 192 (각 출력을 계산하는데 필요한 연산수) = 120M

- 1 x 1 convolution으로 계산 비용을 크게 줄일 수 있음.

 

1 x 1 합성곱 연산 사용하기

- 28 x 28 x 192 입력에 1 x 1 x 192 x 16 연산 후, 5 x 5 x 16 x 32 합성곱 연산 수행

-  중간의 1 x 1 convolution으로 채널 수를 크게 줄임. 이를 bottleneck layer 병목층이라 부름.

- 28 x 28 x 16의 출력을 구하기 위한 계산량 : 28 x 28 x 1 x 1 x 16 x 192 = 2.4M

- 28 x 28 x 32 출력을 구하기 위한 계산량 : 28 x 28 x 32 x 5 x 5 x 16 = 10.0M

- 총 계산량 = 2.4M + 10.0M = 12.4M

* 1 x 1 합성곱 연산을 하지 않았을때 120M 연산량보다 1/10으로 줄어듦.

- 표현 크기를 줄이면 성능 저하가 일어날 수 있으나 보틀넥 레이어를 잘 구현하면 계산량을 잘 줄이면서 성능에 지장 주지않을수있음

 

 

300x250

+ Recent posts