Kim Seon Deok
4. CNN 기초 본문
MLP의 한계점
MLP는 입력데이터로 1차원 벡터만 사용 가능
2차원 이상의 데이터는 평탄화(flatting)과정을 사용
이 데이터들은 공간적 정보가 소실
Convolutional Neural Networks
시각적 영상을 분석하는 데 사용되는 다층의 feed-forward적인 인공신경망의 한 종류
CNN을 사용하는 이유
적은 수로 많은 Feature를 생성하므로 & 연산량이 적으므로 & 메모리 사용향이 적으므로
stationarity : 이미지 위치에 상관없이 동일한 특징들이 존재
Translation invariance : 입력이 바뀌어도 출력은 그대로 유지되어 바뀌지 않는다.
Convoultion과 pooling을 반복하여 상위 feature을 구성
Convolution : Filter를 이용해 Local 영역에서의 특징 feature를 얻는 과정
Pooling : 추출한 Feature의 유의미한 정보를 유지하면서 Dimension을 줄이는 과정
Locally Connected Networks(일부 퍼셉트론 연결)
CNN의 특징
각 레이어의 입/출력 이미지 형상 유지
이미지의 공간 정보 유지 및 근접 픽셀과의 관계파악 가능
Fully Connected Layer 대비 적은 Parameter 사용
Translation Invariance한 특징을 파악할 수 있음
Translation Invariance : 위치 변화에 따른 결과의 변화가 없는 것
일반적인 CNN의 구성
Convolution layer(Filter -> Feature map)
Activation layer(sigmoid, ReLU)
Pooling layer (차원 줄이기)
FC layer(1단계 정도 넣어둠)
CNN처리 절차
1.Convolution
2.Non-linearity
3.Pooling
4.Fully connected layer(반드시x)
Feature map 생성
1.Convolution
Convolution filter를 목적 이미지 위를 미끄러지듯 움직이며 연산 진행
Filter = Kernel = Window : 아래 이미지에서 Step N마다 그려진 사각형 박스
CNN의 목적 : 올바른 Filter를 만드는 게 목적 > Filter가 바뀌면 생성되는 Feature map이 다름
CNN 기본 연산과정 stride = 1
CNN 기본 연산과정 stride ++
stride = Fiter가 이미지를 타고 지나갈때, 건너뛸 크기
CNN 기본 연산과정 with Padding
Padding : 이미지 주변에 0으로 값을 채워 줌
2.Non-linearity(Activation function)
생성된 Feature map에 sigmoid 또는 ReLU함수를 사용
3.Pooling
Feature map을 더 작게 만들어줌 & 의미있는 부분은 살려줌 >> 정보의 손실을 최소화함
각각의 feature map은 독립적으로 Pooling을 진행
max pooling = kernel에서 가장 큰 값 가져오기
- 계산이 빠르다
- 의미가 없는 부분은 확실히 배제
- max값과 비슷하나 작은 값은 아쉽게 배제
average pooling = kernel에서 평균치를 구하기
4. Fully connected layer
'AI > Deep Learning' 카테고리의 다른 글
6. Batch Normalization (0) | 2022.01.21 |
---|---|
5. CNN을 활용한 대표적 모델 (0) | 2022.01.21 |
3. 딥러닝 학습 방법론 (0) | 2022.01.21 |
1. Back propagation (0) | 2022.01.21 |
딥러닝 학습방법론 (0) | 2021.11.23 |