데이터의 형태
이미지 데이터
- Red 채널, Green 채널, 그리고 Blue 채널까지 총 3개의 채널을 가짐
- 표기 방법 : Channel, Width, Height의 이니셜로 (C, W, H), (W, H, C)
레이어
-
하나의 물체가 여러 개의 논리적인 객체들로 구성되어 있는 경우, 이러한 각각의 객체를 하나의 레이어라 한다.
Linear 레이어
-
Fully Connected Layer, Feedforward Neural Network, Multilayer Perceptrons, Dense Layer... 등
-
선형 변환(Linear Transform)을 활용해 데이터를 특정 차원으로 변환하는 레이어
-
(입력의 차원, 출력의 차원)에 해당하는 Weight를 가지는 특성을 가짐
-
입력 피처 전체가 매 출력에 미치는 영향의 가중치를 모든 입력 피처 사이에 전부 고려
-
이미지처럼 지역성(Locality) 그 자체가 엄청나게 중요한 정보가 되는 경우, Linear 레이어는 그 중요한 정보가 모두 소실된 채 엄청나게 큰 파라미터 속에서 입력과 출력 사이의 관계 가중치를 찾아내야 하는 어려운 문제가 발생
Convolution 레이어
- 목적에 도움이 되는 정보는 선명하게, 그렇지 않은 정보는 흐리게 만드는 수십 개의 중첩된 필터를 훈련을 통해 찾아주는 것
- 필터 구조 안에 Locality 정보가 온전히 보존됨
- 인접한 픽셀들 사이에서의 패턴만 추출할 수 있다는 것 자체만으로도 불필요한 파라미터 및 연산량을 제거하고 훨씬 정확하고 효율적으로 정보를 집약시킬 수 있게 됨
Receptive Field
- Neural Network의 출력부가 충분한 정보를 얻기 위해 커버하는 입력 데이터의 Receptive Field가 충분히 커서 그 안에 detect해야 할 object의 특성이 충분히 포함되어 있어야 정확한 detection이 가능하게 됨
Pooling 레이어
1. Receptive Field
- Neural Network의 출력부가 충분한 정보를 얻기 위해 커버하는 입력 데이터의 Receptive Field가 충분히 커서 그 안에 detect해야 할 object의 특성이 충분히 포함되어 있어야 정확한 detection이 가능하게 됨
2. Max Pooling 레이어
- 영역 안에서 가장 값이 큰 대표 선수 하나를 뽑고 나머지는 무시하는 역할
장점
- translational invariance 효과
- 동일한 특징을 안정적으로 잡아낼 수 있는 긍정적 효과
- object 위치에 대한 오버피팅을 방지하고 안정적인 특징 추출 효과를 가져옴
- Non-linear 함수와 동일한 피처 추출 효과
- 중요한 피처만을 상위 레이어로 추출해서 올려줌으로써 결과적으로 분류기의 성능을 증진시키는 효과를 가짐
- Receptive Field 극대화 효과
- Convolutional 레이어를 아주 많이 쌓아서 Receptive Field를 크게 한다면 오버피팅, 연산량 증가, Gradient Vanishing 등의 문제가 발생
- 이를 해결하는 방법으로 Max Pooling 레이어, Dilated Convolution가 있음
Deconvolution 레이어
1. Auto Encoder
- Convolution의 결과를 역재생해서 원본 이미지와 최대한 유사한 정보를 복원해냄
2. Decoder 레이어
- Convolution 레이어를 거쳐 정보가 집약되는 것이 아니라 오히려 정보량이 많아지고 있음
- 우리의 AutoEncoder 구조가 얼마나 정보손실 없이 원본 데이터를 잘 압축하고 있느냐에 따라 Decoder가 뽑아낼 수 있는 최종적인 이미지의 퀄리티가 결정됨
- Convolution의 수학적 역연산으로서의 Deconvolution과는 다름
3. Upsampling 레이어
- Max pooling 레이어를 통해 Downsampling의 반대 작업을 수행
복원 방법
Nearest Neighbor : 복원해야 할 값을 가까운 값으로 복제
Bed of Nails : 복원해야 할 값을 0으로 처리
Max Unpooling : Max Pooling 때 버린 값을 실은 따로 기억해 두었다가 그 값으로 복원
4. Transposed Convolution
- Upsampling 기법의 일종
- Transposed Convolution을 계산하는 과정이 마치 convolution 연산을 거꾸로 계산하는 것과 비슷
참고 : https://realblack0.github.io/2020/05/11/transpose-convolution.html