Kim Seon Deok

4. CNN 기초 본문

AI/Deep Learning

4. CNN 기초

seondeok 2022. 1. 21. 03:54

 

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 : 위치 변화에 따른 결과의 변화가 없는 것

정보가 있는 구간은 pooling으로 남기고 정보가 없는 구간은 남기지 않으므로 Translaion 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이 다름

Base map과 Filter의 채널 수는 같아야 한다.

CNN 기본 연산과정 stride = 1

입력에서 출력으로 가는 과정에서 Feature map의 shape이 달라진다 이를 잘계산해서 알맞은 Filter와 Convoutional 연산횟수를 결정해야한다.

CNN 기본 연산과정 stride ++

stride = Fiter가 이미지를 타고 지나갈때, 건너뛸 크기

CNN 기본 연산과정 with Padding

Padding : 이미지 주변에 0으로 값을 채워 줌

6개의 Filter를 사용하면 6개의 독립된 feature map = activations maps를 얻을 수 있다.Filter를 1개만 쓰면 다음 단계로 전달할 정보력이 부족하므로 다른 Filter를 써서 여러 개의 channel을 생성한다.

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
Comments