Convolution Neural Network

  • 입력데이터 크기 , 패딩 크기 , 스트라이드 크기
  • 이는 데이터가 정사각형일때만 성립
    • 가로 / 세로 크기가 다를 경우 가로 / 세로 각각에 수식을 적용해야 함함

이미지의 경우 보통 가로 / 세로 이외에 색상 등을 나타내는 채널 값이 필요함. 채널을 추가하면 가로 픽셀 수, 세로 픽셀 수, 채널 수로 3차원 데이터가 된다. 이 데이터를 미니배치 단위로 처리하면 배치 크기, 가로 픽셀 수, 세로 픽셀 수, 채널 수로 4차원이 된다. 보통 이미지 처리용 딥러닝 모델은 미니배치 단위로 훈련하므로, 기본적으로 4차원 데이터를 다룬다.

convolution layer

  • 합성곱 계층

합성곱으로 이루어진 신경망 계층

합성곱: 2차원 데이터의 일정 영역 내 값들을, 하나의 값으로 압축하는 연산

  • 필터: 입력 데이터에서 특정한 특성을 필터링
    • 필터를 통과하는 과정에서 특정 특성을 부각 / 약화
    • 요소별, 특징별 특성을 가져오는 역할
  • 특성맵: 필터 통과 후 압축된 데이터. 전체 데이터에서 중요한 특징만 추출된 것. 중요한 특징만 남아있는 결과물.
    • 필터의 패턴과 일치하는 영역일수록, 특성 맵에서 숫자가 크다. 의 숫자가 가장 크다면, 입력 데이터의 왼쪽 위 영역이 필터의 패턴과 가장 유사한 부분인 것.
    • 여러 특성을 추출해두기 위해, convolution layer 에서는 보통 필터를 여러개 사용한다. 아래와 같을 경우 필터 2개를 적용해둔 것.

패딩, 스트라이드

합성곱 연산은 데이터의 크기를 줄이므로 여러번 반복하면 더이상 합성곱 연산을 적용할 수 없다.

  • 필터 크기가 3×3 인데 output 이 2×2 가 되면 그 시점부터는 적용할 수 없을 것이므로

이상황을 막기 위해 출력되는 특성 맵과 입력 데이터의 크기를 동일하게 유지하면 된다. 이를 위해 데이터를 두껍게 만드는 것을 padding 이라고 한다.

stride 는 필터 이동 1회에 이동하는 간격을 지정한다. stride 가 크면 그만큼 feature map 크기가 감소한다.

stride 는 pooling 에서도 있으며, conv 랑 pool 의 stride 크기는 보통 동일하게 한다.

pooling layer

convolutionpooling
필터가 필요필터 필요 ×
필터의 패턴과 유사한 영역 추출특정 영역의 최댓값, 평균값으로 요약
물체 위치가 바뀌면 같은 물체로 인식 못함특정 영역의 요약정보를 쓰므로 위치가 약간 변해도 같은 물체로 인식
feature map 크기를 줄여 연산속도 up

특성 맵 크기를 줄여 이미지의 요약 정보를 추출하는 기능

  • 최대 풀링: 풀링 영역에서 가장 큰 값을 취함
    • 영역에서 가장 뚜렷한 (밝은) 부분
  • 평균 풀링: 풀링 영역의 평균값을 구함
    • 영역의 평균적인 특징

fully-connected layer (전결합)

  • 전결합 계층, 밀집 계층 (dense layer)

보통 마지막 부분에서 구현.

  • 앞의 합성곱 / 풀링 계층이 이미지에서 특성을 뽑아내면
  • 전결합 계층은 이 특성을 활용해 특정한 레이블로 분류하는 역할

합성곱 / 풀링을 거친 2차원 데이터는 1차원으로 변형 뒤 전결합 적용 가능. 이 1차원으로 바꾸는 작업이 평탄화 (flatten).

개와 고양이를 구분하는 문제가 있다고 할 때, 최종 출력값은 개/고양이로 딱 2개. 최종 출력값은 1차원이므로, 전결합 계층의 입력도 1차원으로 받음.

이를 위해 평탄화를 해줘야 함. 전결합 계층을 거치면 최종 출력값, 즉 우리가 원하는 타깃값이 도출.

평탄화한 1차원 데이터를 바로 최종 출력값과 전결합하면 편할텐데, 전결합 계층을 여러개 만드는 이유는?

  • 분류를 효율적으로 하기 위함.
    • 평탄화된 데이터가 100개일 경우
    • 100개의 특성을 바탕으로 바로 최종 출력값, 즉 타깃값을 구해도 됨
    • 하지만 100개의 특성을 토대로 10개의 특성으로 먼저 구분한 후
    • 다시 10개의 특성을 기반으로 최종 출력값을 구하는게 보통 더 효율적
    • 물건이 쌓였을 때 1차로 분류한 후, 분류한 것을 바탕으로 분류하는게 나은 것처럼