http://aikorea.org/cs231n/convolutional-networks/
요약. To summarize, the Conv Layer:
- 크기의 볼륨을 입력받는다.
- 4개의 hyperparameter가 필요하다:
- 필터 개수 ,
- 필터의 가로/세로 Spatial 크기 ,
- Stride ,
- 제로 패딩 .
- 크기의 출력 볼륨을 생성한다:
- (i.e. 가로/세로는 같은 방식으로 계산됨)
- 파라미터 sharing로 인해 필터 당 개의 가중치를 가져서 총 개의 가중치와 개의 바이어스를 갖게 된다.
- 출력 볼륨에서 번째 depth slice ( 크기)는 입력 볼륨에 번째 필터를 stride 만큼 옮겨가며 컨볼루션 한 뒤 번째 바이어스를 더한 결과이다.
흔한 Hyperparameter기본 세팅은 이다. 뒤에서 다룰 ConvNet 구조에서 hyperparameter 세팅과 관련된 법칙이나 방식 등을 확인할 수 있다.
.
ConvNet 구조 내에 컨볼루션 레이어들 중간중간에 주기적으로 풀링 레이어를 넣는 것이 일반적이다. 풀링 레이어가 하는 일은 네트워크의 파라미터의 개수나 연산량을 줄이기 위해 representation의 spatial한 사이즈를 줄이는 것이다. 이는 오버피팅을 조절하는 효과도 가지고 있다. 풀링 레이어는 MAX 연산을 각 depth slice에 대해 독립적으로 적용하여 spatial한 크기를 줄인다. 사이즈 2x2와 stride 2가 가장 많이 사용되는 풀링 레이어이다. 각 depth slice를 가로/세로축을 따라 1/2로 downsampling해 75%의 액티베이션은 버리게 된다. 이 경우 MAX 연산은 4개 숫자 중 최대값을 선택하게 된다 (같은 depth slice 내의 2x2 영역). Depth 차원은 변하지 않는다. 풀링 레이어의 특징들은 일반적으로 아래와 같다:
- 사이즈의 입력을 받는다
- 3가지 hyperparameter를 필요로 한다.
- Spatial extent
- Stride
- 사이즈의 볼륨을 만든다
- 입력에 대해 항상 같은 연산을 하므로 파라미터는 따로 존재하지 않는다
- 풀링 레이어에는 보통 제로 패딩을 하지 않는다
일반적으로 실전에서는 두 종류의 max 풀링 레이어만 널리 쓰인다. 하나는 overlapping 풀링이라고도 불리는 이고 하나는 더 자주 쓰이는 이다. 큰 리셉티브 필드에 대해서 풀링을 하면 보통 너무 많은 정보를 버리게 된다
'개발 > ML+ Data Science' 카테고리의 다른 글
CRISP-DM 분석 방법론이란? (0) | 2020.01.05 |
---|---|
KDD 방법론이란? (0) | 2020.01.05 |
model의 feature importance 시각화 하는 template (0) | 2019.11.10 |
Pandas DataFrame에 dict적용하기 (0) | 2019.11.10 |
KFold에서 1개의 set의 score만 낮게 나온다면? (0) | 2019.11.08 |