" 망이 넓고, 깊을 수록 성능이 좋다."
구글넷은 이 점을 지적했음
깊고 넓은 네트워크 정말 좋기만 해 ?
1. 학습 시키는데 오래걸린다. -> 연산량이 많고, 파라메터가 많다.
-파라메터 수를 어떻게 하면 줄일 수 있을까?
A : 1x1 conv, Tensor factorization
1x1 conv : 여러개의 입력 feature가 있을 때, 채널 방향으로 연산을 하여서 filter의 개수만큼 output이 생성되어서 width와 height는 변하지 않음에도 채널의 크기를 filter의 개수만큼 자유롭게 변화시킬 수 있다. 이를 통해 채널 수를 줄일 수 있다면 당연히 파라미터 수도 줄겠죠.
Tensor factorization : 행렬을 분해해 다른 행렬로 factorization 하는 경우
-연산을 효율적으로 하려면 어떻게 해야할까?
A : matrix 연산이 dense 해야한다.
주로 CNN에서는 kernel을 stride만큼 옮겨가면서 닷프로덕트(?)를 하는 metrics연산이 제일 많은 비중을 차지한다.
이런 metrics 연산이 너무 sparse하게 된다면 연산의 효율성이 떨어져서 고성능 GPU로 빨리하기 위해서는 메트릭스 연산이 dense해야한다.
2. 학습이 어렵다 -> gradient vanishing, over fitting
- 깊은 layer까지 정보가 전달되려면 어떻게 해야할까?
A : auxiliary layer
auxiliary layer를 만들어서 얘가 오차나 label값을 알려줌
- Overfitting이 덜되는 general한 구조는 어떻게 만들어야 할까?
A : sparse한 convolution
메트릭스는 dense해야지 연산이 효율적인데,
오버피팅이 덜 되게 하려면 네트워크 자체는 sparse해야함.
3. Inception Module
Sparse convolution & dense metrics
concatenation 미국식 [kənˌkætəˈneɪʃn] 영국식 (사물·사건의) 연속
-여기서 나온 모든 피쳐를 이어서 붙이는것, 하나의 metrics로 만듬
4. GoogLENet 구조
'머신러닝-딥러닝 > study' 카테고리의 다른 글
[pytorch] 파이토치로 시작하는 Image Segmentation (1) (0) | 2021.12.16 |
---|---|
1. 머신러닝,딥러닝 개요 (0) | 2021.04.29 |
(ch.4) 자연어처리 - 단어를 숫자로 표현 (0) | 2020.12.30 |
(ch.4) 자연어처리란? (Natural Language Processing) (0) | 2020.12.29 |
(ch.1) Image Classification - ZFNet, NIN (0) | 2020.12.28 |