CNN(Convolution Neural Network)

송승우·2023년 9월 18일
1

DL

목록 보기
1/1

Convolution(합성곱)


두 개의 함수 ffgg가 있을 때, 두 함수의 합성곱을 수학 기호로는 fgf * g이다.
합성곱 연산은 두 개의 함수 중 하나를 반전(reverse), 전이(shift)시킨 다음, 다른 함수와 곱한 결과를 적분하는 것이다.

(fg)(t)=f(x)g(tx)dx(f * g)(t) = \int_{-\infty} ^{\infty} f(x)g(t - x) dx

gg 함수 대신에 ff에도 똑같이 적용할 수 있다.

(fg)(t)=f(tx)g(x)dx(f * g)(t) = \int_{-\infty} ^{\infty} f(t - x)g(x) dx

convolution

  • 출처:위키피디아

CNN이 FCN(Fully Connected Network)보다 이미지와 비디오에서 좋은 성능을 내는 이유


Fully Connected Layer만으로 구성된 신경망의 경우 입력 데이터가 1차원(배열) 형태로 한정된다.
이미지나 비디오 데이터는 3차원 데이터이기 때문에 공간 정보를 포함하고 있다.
이미지나 비디오 데이터로 FCN을 학습해야 하는 경우 3차원 데이터를 1차원으로 평면화(Flatten layer) 시켜줘야 한다. \rarr 공간 정보 손실
따라서 이미지나 데이터를 FCN에 학습하는 것은 비효율적이다.
CNN에서는 공간 정보 손실이 일어나지 않기 때문에 CNN이 FCN보다 유리하다.


CNN


Image Data

이미지 데이터는 높이X넓이X채널의 3차원 텐서(tensor)로 표현이 가능하다.
이미지에 색상이 있다면 채널의 크기는 3이 되고, RGB 값을 저장하게 된다.


구조

LeNet-5

  • LeNet-5

CNN 구조는 크게 특징 추출(Featur Extraction)을 하는 Convolution layer와 Pooling layer, 그리고 분류(Classification)하는 FC layer로 나눠진다.


Convolution Layer

Convolution layer에서는 필터(filter, kernel)이 조금씩 움직이면서 이미지 데이터의 패턴을 찾아온다.


Kernel 적용


여기서 나온 여러 개의 2X2 텐서들이 모여 feature map이 된다.


Stride

stride는 커널의 이동량을 말한다. 따로 정해주지 않으면 1이다.
따로 정해준다면 정해준 만큼 kernel이 데이터 패턴을 읽을 때 움직인다.


Padding

위에서 본 것과 같이 Convolution을 실행하게 되면 데이터의 크기가 점점 작아진다.
데이터에는 중요한 정보만 남게 되기 때문에 가장자리의 데이터는 사라진다.
이런 문제점을 해결하기 위한 것이 패딩(Padding)이다.
데이터의 가장자리에 특정 값을 추가하여 Convolution 이후에도 데이터 크기를 비슷하게 유지하기 위함이다.
CNN에서는 주로 0을 추가하는 zero-padding을 많이 사용한다.


Pooling Layer

풀링을 하면 이미지 데이터의 크기가 작아진다.
데이터의 크기가 작아지면 상대적으로 fliter의 크기가 커져서 이미지의 feature를 더 잘 가져올 수 있다.

  • Max Pooling
  • Average Pooling
  • Min Pooling

풀링의 종류에는 3가지가 있다.
CNN에서는 Max Pooling을 주로 사용하는데 뉴런이 제일 큰 자극에 반응하는 것과 유사하기 때문이다.!


  1. Max Pooling

  1. Average Pooling

  1. Min Pooling


Fully Connected Layer

추출한 특징을 가지고 해당 특징이 어떤 걸 의미하는 지 분류하는 작업이다.

  • Flatten Layer
  • Softmax Layer : classification을 수행

2개의 layer가 있다.


Flatten Layer

Convolution layer, Pooling layer 이후 추출된 특성을 FC layer에 연결하여 어떤 이미지인지 분류하기 위한 layer이다.

profile
아무것도 하기 싫어요..

0개의 댓글

관련 채용 정보