반응형
- 컨볼루션 신경망(CNN, Convolutional Neural Network)
- CNN등장 배경 : 신경망 학습을 위해서 “입력된 2D이미지 들을 1차원 배열로 축소”해야 하는데, 축소할 때 공간정보 손실이 발생하더라도 입력 Data의 속성을 잘 간직하고 있다.
- 특성맵 : 깊이축에 있는 각 차원은 하나의 특성이고 rank 2 tensor인 output [ : , : , n]은 입력에 대한 필터 응답을 나타내는 2D공간상의 맵이다.
- 합성곱연산은 입력특성맵에서 작은 패치들을 추출하고 이런 패치에 같은 변환을 적용하여 출력특성맵(output feature map)을 생성
- 공간적 계층구조 학습 - 합성곱층은 입력 tensor의 여러 위치에 동일한 기하학적 변환을 적용하여 공간방향의 지역패턴을 찾는다. 이는 이동불변성(Translation Invariant)을 가진 표현을 만들어 합성곱 층을 데이터 효율적으로 만들어 모듈화 한다.
- 첫 번째 합성곱이 지역패턴학습 ==>>> 두 번째 합성곱이 첫 번째 층의 특성으로 구성된 더 큰 패턴 학습방식. 따라서 ConvNet은 매우 추상적으로 복잡한 시각적 개념학습이 가능하다.
- 컨브넷은 flatten()이나 전역풀링 층으로 끝나는 경우가 많다.
- CNN 은 합성곱과 MaxPooling이 쌓여 구성된다.
- SeparableConv2D(깊이별 분리 합성곱층) - ConvNet으로 가볍고 효율적인 합성곱층 대안
- 매우 깊은 CNN을 만들 때 배치정규화 층과 잔차 연결을 추가적으로 하는 것이 일반적이다.
- 핵심 Parameters : 패치크기, 특성맵의 출력길이(합성곱으로 계산할 필터의 개수)
- 합성곱 커널 : 합성곱 층의 필터를 하나의 행렬로 합친 것
- 패딩(Padding)
- 입력과 동일한 높이와 너비를 가진 출력을 갖고 싶을 때 패딩은 입력 특성맵의 가장자리에 적절한 행과 열을 0으로 추가한다.
- zero padding이라고도 함
- Conv2DTranspose : Upsampling을 학습하는 합성곱층
- MaxPooling
- 입력특성맵에서 윈도우에 맞는 패치를 추출하고 각 채널별로 최댓값을 출력한다.
- 합성곱과의 최대 차이점은 MaxPooling은 보통 2x2와 stride 2로써 특성크기의 절반크기로 DownSampling 한다.(합성곱은 전형적으로 3x3과 stride 1사용)
- DownSampling : 처리할 특성맵의 가중치를 줄이고 연속적인 합성곱층이 (원본입력에서 커버되는 영역측면에서) 점점 커진 윈도우를 통해 바라보도록 만들 때 필터의 공간적인 계층구조를 구성한다.
- 특성이 특성맵의 각 타일에서 어떤 패턴이나 개념의 존재여부를 인코딩하는 경향이 있기 때문에 AvgPooling보다 MaxPooling이 더 잘 작동한다.
- MaxPooling은 분류작업에는 잘 맞지만 분할작업에는 풀링 윈도우안의 위치정보가 완전히 삭제된다. 하지만 Stride합성곱은 위치정보를 유지하면서 특성 맵을 다운샘플링하는 작업에 잘 맞기에 특성위치고려하는 Model은 stride사용
- 배치정규화층 Model 미세조정 시 이 층들을 동결(Trainable=False)해야 한다.
- 이유 : 내부 평균과 분산이 계속 업데이트되어 Conv2D층에 적용할 매우 작은 업데이트를 방해
- 전이학습(Transfer Learning)
- 기존에 학습한 이미지에서 학습정보를 가져와 내 프로젝트에 활용하는 것으로서 미리 학습한 가중치값을 사용하여 예측률을 올리는 방법
반응형
- 배치정규화(Batch Normalization)
- 입력 Data를 평균 0 분산 1로 재배치하는 것으로 다음층으로 입력될 값을 일정하게 재배치하여 정규분포로 만듦
- Sequence Data와 잘 맞지 않다. 이 경우, 배치에 있는 각 Sequence를 독립적으로 정규화하는 Layer Normalization층을 사용
- Layer Normalization – 각 Sequence안에서 데이터를 개별적/독립적으로 구함
- 정규화층이 역전파 과정에서 Gradient를 잘 전달하도록 돕는다 : Layer Normalization 추가~
- 활성화함수 이전에 배치정규화 수행배치 ‘relu’ 함수의 활용도가 극대화된다.
- 이유: 배치정규화가 입력평균을 0으로 만들지만 ‘relu’는 0을 기준으로 값을 통과 또는 삭제시키므로 활용도 극대화~
728x90
반응형