DL Convolution

yst3147·2022년 2월 13일
0

공부 내용

  • Convolution
  • Convolutional Neural Network(CNN)

Convolution

Convolution 종류

  • Continuous convolution
    • f와 g를 잘 섞어 줘서 적분값 계산

  • Discrete convolution
    • f와 g를 잘 섞어 줘서 합 계산

  • 2D image convolution
    • I는 전체 이미지 공간, K는 Convolution filter
    • image에 대한 convolution 연산

2D image convolution

  • Image에 Kernel을 convolution 연산하여 output 생성

  • kernel을 이동시켜 가며 연산을 수행한다.

2D convolution 예시

  • kernel 값에 따라 다음과 같은 효과를 줄 수 있다.
    • Blur : 흐릿하게 처리
    • Emboss : 강조
    • Outline : 외곽선 처리

RGB image convolution

  • 32 32 RGB image를 tensor로 수학적으로 표현
    -> 5
    5 3 filter를 사용해서 28 28 * 1 feature 생성

  • filter 개수만큼 feature를 만들 수 있음

Stack of Convolutions

  • Convolution Layer를 여러개 쌓을 수 있음
    • 중간에 activation function 넣을 수 있음
    • kernel의 채널은 input 채널과 같음
    • filter 개수에 따라 output 채널 수 달라짐

Convolutional Neural Networks

  • CNN은 convolutional layer, pooling layer, fully connected layer로 구성
    • Convolution과 pooling layer는 feature 추출에 사용
    • Fully connected layer : 결과 추출에 사용 (분류 등)

Stride

  • Convolution 연산 시 커널의 이동 단위
    -> stride가 커지면 그만큼 output의 크기가 줄어든다.

Padding

  • Output의 크기 조절하기 위해 사용
    -> Padding을 사용하면 Input과 Output 크기 같게 할 수 있음
  • 가장자리에 0 넣으면 Zero padding

Stride, Padding에 따른 변화

  • Stride와 Padding에 따라 output 크기 달라진다.
  • Stride(1), Padding(1) : 이미지 크기 유지할 때 사용

Convolution 파라미터 수 계산

  • Padding (1), Stride(1), 3 * 3 kernel일 때
    • model의 파라미터 크기 : kernel_h ×\times kernel_w ×\times input_channel ×\times output channel
      -> ex) input 채널 128, output 채널 64일 때 파라미터 크기 ( 3 ×\times 3 ×\times 128 ×\times 64 = 73,728)

1 * 1 Convolution

  • 사용 이유 : output channel 감소
    -> output channel을 줄임으로서 파라미터 수를 줄이는 효과
  • bottleneck architecture 등에서 주로 사용

0개의 댓글