전체 구조
- 완전연결: 인접하는 계층의 모든 뉴런과 결합 되어있는 것
- Affine계층: 완전연결된 계층

- CNN: 합성곱 계층(Conv)와 풀링 계층(Pooling)이 추가되며, Conv-ReLU-(Pooling)로 연결된다

합성곱 계층
완전연결 계층의 문제점
데이터의 형상이 무시된다. 완전연결 계층에 입력할 때는 3차원 데이터를 1차원 데이터로 평탄화해줘야한다.
- 특징 맵: 합성곱 계층의 입출력 데이터
- 입력 특징 맵: 합성곱 계층의 입력 데이터
- 출력 특징 맵: 합성곱 계층의 출력 데이터
합성곱 연산
- 합성곱 연산: 이미지 처리에서 말하는 필터(커널) 연산, 필터의 윈도우를 일정 간격으로 이동해 가며 입력 데이터와 필터에 대응하는 원소끼리 곱하고 총합을 구한다.
- CNN에서는 필터의 매개변수가 가중치에 해당한다.
- 편향은 필터를 적용한 후 데이터에 더해지는데, 항상 하나만 존재하고 필터를 적용한 모든 원소에 더한다.

패딩
- 패딩: 합성곱 연산을 수행하기 전에 입력 데이터 주변을 특정 값으로 채우는 것, 주로 출력 크기를 조정할 목적으로 사용한다.

스트라이드
- 스트라이드: 필터를 적용하는 위치의 간격

- 출력 크기: (OH, OW), 입력 크기: (H,W), 필터 크기: (FH, FW), 패딩: P, 스트라이드: S
OH = (H + 2*P - FH)/S + 1
OW = (H + 2*P - FW)/S + 1
3차원 데이터의 합성곱 연산
- 채널 쪽으로 특징 맵이 여러 개 있다면 입력 데이터와 필터의 합성곱 연산을 채널마다 수행하고, 그 결과를 더해서 하나의 출력을 얻는다. 이때 입력 데이터의 채널 수와 필터의 채널 수가 같아야 한다.
블록으로 생각하기
- 3차원 데이터를 다차원 배열로 나타낼 때: (채널(channel), 높이(height), 너비(width))
- (채널 수(C), 높이(H), 너비(W)), (채널 수(C), 필터 높이(FH), 필터 너비(FW))
- 필터(가중치)를 다수 사용하면 합성곱 연산의 출력으로 다수의 채널을 내보낼 수 있다. 필터를 FN개 적용하면 출력 맵도 FN개가 생성된다.


배치 처리
- 합성곱 연산에서의 배치 처리는 각 계층을 흐르는 데이터의 차원을 하나 늘려 4차원 데이터로 저장한다.
- (데이터 수, 채널 수, 높이, 너비)

풀링 계층
- 풀링: 세로, 가로 방향의 공간을 줄이는 연산, 최대 풀링
- 풀링의 윈도우 크기와 스트라이드는 같은 값으로 설정한다.
풀링 계층의 특징
- 학습해야 할 매개변수가 없다.
- 풀링은 대상 영역에서 최댓값이나 평균을 취하는 명확한 처리이므로 특별히 학습할 것이 없다.
- 채널 수가 변하지 않는다.
- 입력의 변화에 영향을 적게 받는다.