본문 바로가기
데이터 및 Programing/Part1. Basic Knowledge

[ML Algorithm] 딥러닝(Deep Learning) 합성곱 신경망(CNN, Convolution Neural Network, 패딩, 풀링, 채널)

by 깜장스 2022. 3. 20.
반응형

Deep Learning 방법 중 많이 쓰이는 CNN(Convolution Neural Network)에 대해 알아보겠습니다.

 

 

1. CNN 이란?

 

- 합성곱이라는 연산을 사용하는 신경망을 일컫는다.

 

- 합성곱이란 쉽게 말해서 두 개의 합수를 곱해서 합하는 것이라고 보면 된다.

 

 

 

위의 수식은 합성곱을 나타낸 수식이다.

 

여기서 f(), g() 함수를 합성곱 하였으며, 이때 g() 함수의 경우 반전(-τ), 그리고 t만큼 이동시켰다.

 

그리고 이를 타우가 변화하면서의 결과를 저장하는 것을 합성곱(Convolution)이라고 한다.

 

- 합성곱을 사용하는 이유!

  

함수 f()는 우리가 가지고 있는 본래의 신호, 행렬, 이미지 등으로 보면 됨.

 

이때 함수 g()는 필터, 가중치, 커널 등으로 볼 수 있다.

 

이를 합성곱 하면, 주어진 신호 f()를 우리가 원하는 함수로 만들어 낼 수 있게 된다.

 

g()를 이용해서 f()를 분해, 변환, 필터링 등을 할 수 있기 때문에 사용한다.

 

cnn에서 g(t-τ)를 플립(filp)이라고 한다.

 

2. CNN의 구조

 

3. 합성곱 계층 (Convolution Layer)의 연산

 

입력 데이터에 커널(필터, 가중치)을 적용해 일정 간격으로 이동해 가며 입력 데이터에 적용함.

 

이때 이동하는 간격을 스트라이드(Stride)라고 함.

출처 : https://wikidocs.net/64066

4. 패딩(Padding)

 

- 신경망에 커널을 적용하면서 층이 깊어지면 데이터의 차원이 점차 줄어들게 된다.

 

그런데 이때 차원이 줄어드는 현상을 방지하기 위해 PADDING이라는 방법을 사용한다고 한다.

 

(왜!??!! 인지는 아직 잘 모르겠다.ㅠㅠ)

 

출처 : https://wikidocs.net/64066

 

5. Pooling Layer

 

- 일정 영역의 정보를 축약하는 역할

 

- sub_sampling을 이용해 특징 맵(feature-map)의 크기를 줄이고, 위치나 이 동에 좀 더 강인한 성질을 갖는 특징을

 

  추출할 수 있게 됨

 

- 최대(Max), 평균(Average), 평탄화(Flatten) Polling이 있다.

 

 

 

6. 채널(Channel)

 

- CNN을 이미지에 많이 사용되는데 이때 흑백과 컬러는 표현이 조금 다르게 된다.

 

이때 컬러는 RGB(Red, Green, Blue)의 실수로 표현한 3차원 데이터로 3개의 채널(Channel)로 구성

 

출처 :  https://upload.wikimedia.org/wikipedia/en/4/4c/Channel_digital_image_RGB_color.jpg

 

7. 완전 연결(Fully-connected) 계층

 

 

CNN이 총 100이라면... 난 이제 20 정도 이해된 거 같다...

 

============================================================================

반응형