hojeomi blog
Day 13. CNN 본문
0. Intro
- convolution: 커널에 적힌 값으로 입력값을 계산하는 연산
- kernel: 틀
- 최근 트랜드: 파라미터 갯수를 줄여야 함(어떤 테스트셋에서라도 좋은 결과를 보이기 위해서는 파라미터가 적을수록 좋음)
- 뒷단의 dense layer를 줄이고 앞단에 convolution layer를 많이 쌓아서 파라미터를 줄이는 것이 트랜드
- 이를 위해 가장 많이 쓰이고 있는 것이 1x1 convolution
1. 커널 크기 계산
- 출력크기 = 입력크기 - 커널크기 + 1
- 예) 28x28 입력을 3x3 커널로 2D-Conv 연산을 하면 26x26
2. Stride
- 커널로 컨볼루션 연산을 한 번 한 뒤, 몇 칸 이동하는지
- 예) stride=2: 두 칸 이동
3. Padding
- 가장자리에 어떤 값을 덧대줌으로써 컨볼루션 연산 후에도 입력크기가 유지되도록 함
- 예) No padding: 덧대지 않음, zero padding: 0으로 가장자리를 덧댐
4. ILSVRC에서 우승한 여러 CNN 기법들
- AlexNet
- VGGNet
- GoogleNet
- ResNet
- DenseNet
4-1) AlexNet
- ReLU를 합성함수로 이용함
- 경사하강법에서 최적화가 쉬움
- vanishing gradeint 문제 극복: 시그모이드 및 tanh 함수는 뉴런이 커질수록 기울기가 0이 커지는 vanishing gradient 문제를 가지지만, ReLU는 이를 극복함
- GPI(graphical programming interface) 향상을 위해 2개의 GPU를 이용함
- Local response normalization, Overlapping pooling
- Data augmentation(증가)
- Dropout
- 네트워크의 일부를 생략하는 것. 여러 개의 모델을 만드는 대신에 모델 결합에 의한 투표효과와 비슷한 효과를 내기 위해 학습 사이클이 진행되는 동안 무작위로 일부 뉴런 생략
- regularization 효과: 학습을 시키다 보면 학습 데이터에 의해 각각의 넷트의 weight들이 서로 동조화 되는 현상(co-adaption)이 발생할 수 있는데(신경망 본질의 이슈) 무작위로 생략 및 학습을 통해 이런 동조화 현상을 막을 수 있음
4-2) VGGNet
- 3x3 convolution을 통해 깊이를 증가시킴(층이 늘어남) → 하지만, 파라미터 갯수는 줄어듬
4-3) GoogleNet
- It combined network-in-netwrok(NiN) with inception block
- inception block: 채널 dimension을 줄임으로써 파라미터 수를 줄임
4-5) ResNet
4-6) DenseNet
hoya012.github.io/blog/DenseNet-Tutorial-1/
'AI > Course' 카테고리의 다른 글
Day 14-2. Transfomer (0) | 2021.02.05 |
---|---|
Day 14-1. RNN (0) | 2021.02.05 |
Day 12-2. CNN (0) | 2021.02.02 |
Day 12-1. 최적화 (0) | 2021.02.02 |
Day 11-1. 조건부 확률, 베이즈 정리 (0) | 2021.02.02 |
Comments