본문 바로가기
공부하는 중~~/인공지능

[CNN] CNN 기본 지식

by 임대추 2020. 10. 6.

CNN 간단한 프로세스 설명

1. Layer들을 쌓는다.

(Conv, Pooling 레이어를 반복해서 쌓거나 Conv, Conv, Pooling과 같은 식으로 쌓는 방식으로 쌓아 모델을 만든다.)

(VGG16의 경우 16이 이런 레이어가 16개 있다는 의미, VGG19, VGG11도 동일)

2. 위의 과정을 거진 CNN 데이터 타입을 Flatten 레이어를 거쳐 1차원화 시킨다.

(쉽게 말해 땅을 평탄화 하듯 배열의 차원을 1차원으로 축소한다는 의미)

3. Dense 레이어로 줄여가며 마지막으로 분류하고자하는 라벨의 개수만큼 줄인다.

(보통 ReLU라는 활성화 함수를 사용하여 줄여나가다 마지막 라벨 개수만큼 줄일때는 softmax라는 함수를 사용한다.)

4. 분류 결과가 나온다.

 

용어 정리

---------------------------------------------------------------------------------------------------------------------------------------------------------

loss (로스)

MSE, RMSE등으로 나타내며 쉽게말해 대입 결과와 실제 정답과의 간격, 차이를 줄이는 것을 의미

(학습 그래프에서 loss 값이 내려갈수록 간격이 줄어들어 좋아지는 것을 의미, 이게 상승한다면 그 이상 학습하는 것이 의미가 없음)

----------------------------------------------------------------------------------------------------------------------------------------------------------

epoch (에포크)

학습하는 횟수를 의미

(ex : epoch=5, 5번 한다는 의미)

----------------------------------------------------------------------------------------------------------------------------------------------------------

Channel (채널)

쉽게 햄버거로 예를 들면 빵, 야채처럼 각각 한 층을 의미

(ex : 100px, 100px, 컬러 이미지의 채널을 표현할때 (100, 100, 3)과 같이 표기, 3은 RGB라 3이며 흑백은 1)

----------------------------------------------------------------------------------------------------------------------------------------------------------

Convolution Layer (합성곱층)

이미지 데이터에서 특징값을 찾아내는 레이어

(1이 써있는 이미지를 떠올리고 가운데 부분만 숫자가 있고 좌우에는 0으로 채워져있는 배열의 모습을 상상)

Conv layer 연산

1 0 1

0 1 0

1 0 1

[101010101]

----------------------------------------------------------------------------------------------------------------------------------------------------------

Pooling Layer (풀링층)

Convolution 레이어의 결과값으로 Feature Map이라는 결과가 나오는데 그것의 크기를 줄기거나 특정 데이터를 강조하는 역할

maxpool의 예

Pooling 연산중 maxpool의 모습

----------------------------------------------------------------------------------------------------------------------------------------------------------

Padding Layer (패딩층)

Conv 레이어의 결과로 나온 배열을 그대로 둘지, 늘릴지를 조절하는 층

padding된 conv layer에 연산

(0이 padding 된 것)

----------------------------------------------------------------------------------------------------------------------------------------------------------

Dropout (드랍아웃)

학습을 반복할때 했던 걸로 하면 train 세트에만 맞는 모델로 되는 과적합(Overfitting) 현상이 발생, 이것을 줄이기 위해 Dropout이라는 랜덤으로 연산버리는 것을 의미

(ex : Dropout(0.2)는 입력데이터에서 랜덤으로 20%를 버린다는 의미)

----------------------------------------------------------------------------------------------------------------------------------------------------------

Activation Function (활성화 함수)

sigmoid, relu가 대표적이며 위에서 설명한 Feature Map을 비선형값으로 바꿔주는 역할

(a) sigmoid (b) Tanh (c) ReLU (d) Leaky ReLU

----------------------------------------------------------------------------------------------------------------------------------------------------------

 

CNN 모델에 대해 공부하기 이전에 기본적으로 알아야할 기초 지식들입니다.

다음은 Keras를 사용하여 mnist 숫자 데이터를 분류하는 모델을 Sequential 하게 직접 쌓아가며 만들어 보겠습니다.

반응형

댓글