[딥러닝] GoogLeNet (1 x 1 convolution and Inception network)

zzwon1212·2024년 1월 29일
0

딥러닝

목록 보기
17/33

1. 1×11 \times 1 Convolution

  • 1×11 \times 1 convolution은 'Network in network'라고도 불리며, Convolutional Network를 design할 때 매우 유용하다.

  • 채널의 수가 너무 많은 경우 이를 (늘리거나) 줄일 수 있다. (Pooling layer의 경우 width와 height를 줄일 수 있는 반면)

  • 채널의 수를 그대로 유지하더라도 한 층을 더해주며 비선형성까지 더해주기 때문에 더욱 복잡한 함수를 학습할 수 있게 된다.

2. Inception module

  • 네트워크를 디자인할 때 1×11 \times 1, 3×33 \times 3, 5×55 \times 5, Pooling layer 등 어떤 layer를 사용할지 결정해야 한다. Inception network를 사용할 경우 고민하지 않아도 된다. 이것들을 전부 사용한다. 이로써 네트워크가 복잡해지지만 성능은 뛰어나다.

  • 단 계산 비용이 크다는 단점이 있다. 위 그림의 경우 5×55 \times 5 filter를 사용하여 120M의 계산 비용이 발생한다.

  • 이때 위 그림처럼 1×11 \times 1 convolution을 활용할 경우 계산 비용을 12.4M으로 줄일 수 있다.

  • 여기서 중간의 28×28×1628 \times 28 \times 16bottleneck layer라고 부른다.

  • bottleneck layer를 적절하게 설정한다면 성능에 큰 지장 없이 계산 비용을 줄일 수 있다.

3. Inception network

  • Inception network는 inception module이 반복되는 네트워크이다.

  • side branch에서는 softmax를 계산하며 이는 네트워크에 regularization effect를 가져다 주고, overfitting을 방지한다.


📙 참고

profile
JUST DO IT.

0개의 댓글

관련 채용 정보