CNN

이승준·2024년 9월 26일

딥러닝 기초

목록 보기
8/12

이미지 데이터 이해하기

이미지 데이터의 구조

  • HWH * W 개의 pixel 과, 색을 나타내는 RGB channel 존재

이미지 인식

  • 이미지를 인식하기 위해 FCL 을 이용할 수 있을까?
  • FCL 에 통과시키기 위해 이미지를 평탄화 시킨다
  • 정형 데이터는 각 cell 이 의미하는 바가 일정했다.
  • 하지만 이미지는 비정형 데이터이고, 공간적인 특성을 가지고 있다.
    => 78번째 pixel 이 어떨 때는 귀, 어떨 때는 입을 나타낼 수 있다.
  • 또한, 이미지에서 필요없는 정보 (ex. 배경) 등이 모두 포함된다

이미지 인식을 위해 FCL 을 이용한다면

  • 이미지의 공간적 특성이 소실
  • 불필요한 정보로 인해 parameter 가 과도하게 많아진다

Convolutional Neural Network

  • 우리가 고양이 사진을 보고 고양이임을 인지할 수 있는 이유?
    => 우리 뇌에 고양이의 특성이 학습되어 있기 때문
  • 이와 마찬가지로, 우리는 이미지 인식에서 이미지의 중요한 특징을 추출하는 것이 중요하다.
    => feature extraction
  • 이를 신경망으로 구현한 것을 CNN 알고리즘이라고 한다

    CNN 은 이미지의 특징을 추출하고, 이들을 FCL 에 전달해 이미지를 분류한다

Convolution (합성곱)

합성곱의 작동 방식

  • 합성곱 연산 : 필터를 이용해 이미지를 탐색하는 것
  • 필터가 이미지 위를 탐색하며 필요한 특징을 추출한다

    합성곱 필터는 신경망의 가중치에 대응되고, CNN 에서는 필터를 학습하는 것

  • 주의) 원본 데이터와 필터 간의 연산은 가중합이 아니다
    => (픽셀값 * 필터값) 의 합
  • 합성곱의 출력값을 output feature map 이라고 한다
  • 합성곱을 통해 데이터가 줄어드는 것을 볼 수 있다.

Convolution Layer

  • 필터는 커널로 구성되며, 커널은 이미지(input feature map)의 채널 갯수만큼 존재
  • 채널마다 합성곱 연산이 진행되어 각자의 output feature map 이 생긴다
  • 필터는 신경망에서 뉴런과 같은 역할을 한다
    => 필터의 갯수만큼 output feature map 의 channel 수가 생긴다

Filter 와 Feature Extraction

  • 어떤 이미지와 세로 패턴을 학습한 필터를 살펴보자
  • 합성곱을 거쳐 다음과 같은 output feature map 이 생성된다
  • 이 output feature map 은 어떤 특징이 어디에 얼만큼 있는지 나타낸다.

    filter 에 의해 특징이 어디에 얼만큼 있는지 찾은 결과를 feature map 이라고 한다

  • 어떤 특징을 필터가 반복적으로 학습하면, 특징의 위치와 상관없이 찾아낼 수 있다
    => 공간적인 정보가 깨지지 않는다

Padding, Stride, Pooling

Padding

  • 합성곱이 진행될수록 feature map 의 크기는 줄어들게 된다
  • 이로 인해 특성이 손실될 수가 있기 때문에, 테두리에 padding 을 두어 방지한다
    => 테두리에는 보통 중요한 정보가 없기 때문에 비교적 안전하다

Stride

  • 필터가 움직이는 거리를 의미한다
  • stride 가 커지면 output feature map 이 더 작아진다

Pooling

  • 경계선에서 강조하고 싶은 값을 추출하기 위해 사용
  • 큰 값만 추출하기 때문에 이미지가 살짝 변동돼도 output feature map 이 많이 변하지 않음
profile
인하대학교 컴퓨터공학과

0개의 댓글