728x90
반응형
Fully Connect Layer
- Dense Layer라고도 함
- 한 층(layer)의 모든 뉴런이 다음 층(layer)의 모든 뉴런과 연결된 상태
- 1차원 배열의 형태로 평탄화된 행렬을 통해 이미지를 분류하는데 사용되는 계층
- [TensorFlow] - Neural Network MNIST 데이터 처리
- 한 장의 컬러 사진은 3차원 데이터로 FC(Fully Connected) 신경을 학습시켜야 할 경우에, 3차원 사진 데이터를 1차원으로 평면화 시켜야 함
→ 이미지 데이터 평면화 과정에서 공간 정보 유실로 인한 정보 부족으로
인공 신경망에서 특징을 추출 및 학습이 비효율적이고 정확도를 높이는데 한계가 있음
- 데이터 형상의 무시 = 이미지의 공간적(spatial)한 정보 무시
- 학습해야 할 가중치(w)가 많음
CNN(Convolutional Neural Network)
- 각 레이어의 입출력 데이터의 형상 유지가 가능
- 이미지의 공간 정보를 유지하면서 인접 이미지와의 특징을 효과적으로 인식
- 복수의 필터로 이미지의 특징(공간적 정보를 포함하는) 정보 추출 및 학습
- 필터를 공유 파라미터로 사용하기 때문에, 일반 인공 신경망과 비교하여 학습 파라미터가 매우 적음
- 이미지의 특징을 추출하는 부분과 클래스를 분류하는 부분으로 나누어짐
- 선언된 크기의 filter를 image에 override하면서 feature 추출
- 추출된 feature에서 도드라진(중요한) feature 추출
- 최종 추출된 feature 기반으로 분류
→ CNN은 Convolution과 Pooling으로 이루어짐
Convolution Layer
- CNN 신경망에서 입력된 이미지에서 다시 한번 특징을 추출하기 위해 커널(필터, 윈도)을 사용하는 기법
Channel
- 컬러 이미지는 3개의 채널로 구성
- 흑백 명암만을 표현하는 흑백 사진은 2차원 데이터로 1개의 채널로 구성
Filter (or kernel)
- 필터는 일반적으로 (5, 5)나 (3, 3)과 같은 홀수의 정사각 행렬로 정의
- 픽셀 하나를 중심으로 주변의 특징점 찾는 것을 기본으로 하기 때문에 중심 각면의 갯수 + 1 = 2*n+1(홀수)
- CCN에서 학습의 대상은 필터 파라미터(filter가 가진 w와 b가 학습되어짐)
- 입력 데이터를 지정된 간격으로 순회하며 채널별로 합성곱을 하고 모든 채널(컬러의 경우 3개)의 합성곱의 합을 Feature Map으로 만듦
- 이미지로부터 filter(=kernel) 1개로부터 1개의 feature map을 만듦
- 분류자가 잘 분류할 수 있는 특징값들이 모여 있는 activation map을 만들 수 있도록 하는 filter(=kernel)의 w값을 학습으로 찾는 것이 목표
- feature map(=activation map)이 다양할수록 분류자가 다양한 특징을 보고 분류할 수 있음
- 다양한 feature map을 생성할 수 있도록 kernel을 여러 개 생성하여 다양한 feature map을 나타낼 수 있도록 학습
- 필터의 w, b는 feature map 만드는 동안 변화가 없다
- → 학습 결과에 따른 backpropagation에 따라 w가 업데이트 됨
- backpropagation에 따른 NN의 한계 문제점이 그대로 나올 수 있음
- NN 한계 개선 방안을 동일하게 고려해서 적용해야 함
- 개발자가 지정하는 파라미터
- filter(=kernel)의 w, h의 크기
- 몇 개의 feature map을 생성할지에 대한 filter(=kernel) 갯수
1x1 Convolution Layer
- 채널 조정용 (채널을 줄이거나 늘릴 수 있음)
- convolution 연산량을 경량화하기 위해 사용
- Fully Connected를 대체할 수도 있다.
※ FC 약자가 2가지 의미로 쓰임
- Fully Connected
- Fully Convolution
feature 픽셀 하나당 w가 곱해지는 형태
feature map의 크기는 padding 없이 유지하되
feature의 채널의 크기만 줄어드는 형태
→ feature 갯수 줄이는 형태(모델 크기 감소)
Stride
- 필터는 입력 데이터를 지정한 간격으로 순회하면서 합성곱을 계산
- 지정된 간격으로 필터를 순회하는 간격을 Stride라고 함
- Output Size: (N-F) / stride + 1
- N: Input pixel size
- F: Filter size
- 입력 데이터가 여러 채널을 갖을 경우 필터는 각 채널을 순회하며 합성곱을 계산한 후, 채널 별 feature map을 만듦
- 각 채널의 feature map을 합산하여 최종 feature map으로 반환
- 입력 데이터는 채널 수와 상관없이 필터 별로 1개의 feature map이 만들어짐
Padding
- Convolution layer에서 kernel과 stride의 작용으로 Feataure map 크기는 입력데이터보다 작다
- Convolution layer의 출력 데이터가 줄어드는 것을 방지하는 방법이 패딩
- 패딩은 입력 데이터의 외각에 지정된 픽셀만큼 특정 값으로 채워 넣는 것을 의미
- 이미지가 convolution을 할 경우 크기가 줄어 Layer를 깊게 쌓을 수 없음
- activation map을 만들고 다시 filter를 만들어서 activation map을 만드는 과정을 거칠수록 만들어지는 activation map 크기가 작아짐
- Layer를 깊게 쌓고자 padding 적용
- Output Size: (N - F) / stride + 1
Pooling
- Convolution Layer의 출력 데이터를 입력으로 받아서 출력 데이터(Activation Map)의 크기를 줄이거나 특정 데이터를 강조하는 용도로 사용
- 학습되는 파라미터가 없음
- max pooling, average pooling, min pooling
Filter(=kernel)을 통해 만들어진 feature map에서
- max pooling: 큰 특징을 가지는 값만 모아서 새로운 feature map을 만드는 과정
- 단순히 입력받은 이미지의 특징맵에서 더 도드라지는 특징 추출
- max pooling의 경우 overfitting될 확률이 상대적으로 높아짐
- 좋은 feature를 잘 뽑아질 수 있는 CNN 모델이 발절되어 max pooling을 사용하지 않아도 됨
- average pooling: 평균적인 특징값을 추출하여 새로운 feature map을 만드는 과정
Global Average Pooling (GAP)
- Global Average Pooling으로 주로 사용되어짐
- Fully Connected 대신 분류 역할기 대체 방법 중 하나로 쓰임
CNN 구성
Convolution Layer와 Max Pooling Layer을 반복적으로 Stack을 쌓는 특징 추출(Feature Extraction)
Fully Connected Layer를 구성하고 마지막 출력층에 Softmax를 적용한 분류 부분으로 나뉨
Convolution Layer는 filter(w, b)을 통해 지역적 특징을 추출
- 학습은 filter가 가진 w와 b가 학습되어짐
- 학습되어진 filter의 w와 b가 입력 이미지에 곱해져서 activateion map(=feature map) 생성
Fully Connected = Neural Network = Multi Layer Perceptron 은 Regression / Classification을 함
CNN 장점
- 딥러닝 기반 이미지 분류 프로세스
- 특징 추출 모듈과 분류기를 하나의 거대한 뉴럴 네트워크로 구성
- 특징 추출은 컨볼루션 레이저가, 분류기는 FC 레이어가 주로 담당
- 특징 추출과 분류를 한번에 학습할 수 있음(end-to-end model)
- 높은 성능. 그러나 데이터가 많이 필요
CNN 사용 이유
Local Connectivity
- 뉴런은 이전 레이저의 뉴런과 모두 연결되지 않고 작은 영역만 연결
- 작은 영역을 receptive field라고 함
- 뇌에서 시각 신호를 처리할 때 하나의 뉴런이 시각 정보의 일정 부분만 처리하는 과정과 유사한 매커니즘
Parameter Sharing
- 동일한 계수를 갖는 filter를 전체 영상에 반복 적용하여 변수를 획기적으로 줄임
Equivariant Representation
- Topology 변화(translation)에 무관한 invariance를 얻을 수 있음
CNN Model Visual
1. model.summary()
728x90
반응형
'Machine Learning > CNN' 카테고리의 다른 글
[Machine Learning] Transfer Learning with CNNs (0) | 2021.03.05 |
---|---|
[Machine Learning] ResNet(Residual Network) (0) | 2021.03.05 |
[Machine Learning] GoogleNet (Inception V4) (0) | 2021.03.05 |
[Machine Learning] VGGNet (0) | 2021.03.05 |
[Machine Learning] AlexNet (0) | 2021.03.05 |