본문 바로가기
  • 공부한 것들과 여러가지를 기록해요
Python/DL

CNN 이해하기 (2)

by 티권 2023. 5. 8.

https://ganghee-lee.tistory.com/43

 

translation invariance 설명 및 정리

translation invariance를 설명하기 위해 먼저 Classification에 대해 살펴보자. Classification은 Image가 주어졌을때 이 이미지가 어떤 사진인지, 어떤 Object를 대표하는지 분류하는 문제이다. 따라서 아래 그림

ganghee-lee.tistory.com

 

Dense 층은 입력 특성 공간에 있는 전역 패턴을 학습하지만( ex) mnist 숫자 이미지 모든 픽셀에 걸친 패턴)

합성곱 층은 아래 그림처럼 지역 패턴을 학습한다

 

 

지역 패턴을 학습한다는 CNN의 특징은 두 가지 성질을 제공함

 

1. 학습된 패턴은 평행 이동 불변성(translation invariant)을 가짐

  - 이미지의 오른쪽 아래 모서리에서 어떤 패턴을 학습했다면 다른곳(ex 왼쪽 위 모서리)에서도 이 패턴 인식할 수 있음

  - 적은 수의 훈련 샘플을 사용해서 일반화 능력을 가진 표현을 학습 가능

  - 근본적으로 우리가 보는 세상은 평행이동으로 인해 다르게 인식되지 않음

 

고양이의 위치가 변하여도 Classification에서는 똑같이 고양이라고 분류해야함

 

CNN에서 translation invariance란 input의 위치가 달라져도 output이 동일한 값을 갖는것을 말함

 

근데 사실 CNN 네트워크 자체는 translation variance 함

convolution filter로 연산할 때 feature의 위치가 바뀌면 당연히 아래 그림처럼 output에서 해당 feature에 대한 연산결과의 위치도 바뀌기 때문

 

 

 

 

2. 패턴의 공간적 계층 구조 학습 가능

  - 첫번째 합성곱 층이 작은 지역 패턴 학습

  - 두번째 합성곱 층이 첫번째 층의 특성으로 구성된 더 큰 패턴을 학습

  - 근본적으로 우리가 보는 세상은 시각적 구성요소들의 공간적인 계층 구조

 

'Python > DL' 카테고리의 다른 글

신경망, 오차역전파법  (0) 2023.07.14
CNN 이해하기 (1)  (0) 2023.05.02
딥러닝의 학습 방법  (0) 2023.03.19
활성화 함수, 과적합, 기울기 소실  (0) 2023.03.19
퍼셉트론 , ANN vs DNN  (0) 2023.03.19