Hello Computer Vision

Convolutional Neural Network 특징 본문

딥러닝

Convolutional Neural Network 특징

지웅쓰 2023. 1. 5. 15:01

참고 블로그 : father님 블로그 프라이데이님 블로그 zzin33님 블로그

 

Translation invariance

설명 : 위치가 바뀌어도 무엇을 나타내는지 편차 없이 잘 구분할 수 있다.

분류 문제를 맞이하였다고 가정하고 위의 이미지를 본다면 이미지의 위치가 바뀔 때 결과 값도 바뀌는 것을 확인할 수 있다.

그렇다면 CNN의 기본 원리는 Translation variance(equivariance) 하다고 할 수 있다.

그러면 왜 CNN 이  Translation Invariance 하다고 하는 것일까

1. Max pooling

분류문제에서 주로 사용하는 Max Pooling을 사용하면 kxk 필터라고 하였을 때 이미지 내에서 k x k필터 안에서의 이동은 상관이 없다.  

2. Weight sharing / Learn local features

CNN에서의 일정한 크기의 kernel 이 이미지를 sliding window 하는건 다 알 것이다.

그리고 이 kernel은 이미지를 한번 흝을 때까지는 변하지 않고 같은 가중치를 가지고 이미지를 검토한다
(물론 채널이 다르면 가중치도 다르다)

그렇다면 원하는 물체가 이미지 어디에 있든 특정 패턴(가중치)을 학습하는 것이다. 

이미지 예시를 통해 알아보자면 우리는 이미지 오른쪽에 기다란 물체가 있는 것을 쉽게 알 수 있다.

channel마다 다른 kernel이 이미지를 흝는다 했을 때 channel1에서의 kernel은 삼각형 모양이므로 적당한 숫자를 발견하지만

k 에서의 kernel은 일자로 되있으므로(특정 패턴) 연산된 값을 통해 큰 값을 얻은 것을 확인할 수 있다.

이미지 예시를 들어보자면 다음과 같다.

이러한 연산 결과를 flatten 을 이용해 일자로 만들었을 때 이미지의 위치를 손실할 수 있지만 바뀌어도 기존 이미지에서 움직이는 것이기 때문에

이 경우  5 x 5 이미지 내에서만 변경되는 것을 확인할 수 있다. --> 특정 사이즈내에서만 variance하다.

3. Softmax

이 부분은 참조한 블로그에서는 정확하게 이해하지는 못했지만 직관적으로 한번 살펴보자면

분류 모델에서 Flatten을 이용해 노드들을 다 펴주었을 때 물체가 있는 노드들은 높은 값을 가지게 되고 이는 어디 위치에 있든 

학습을 통해 분류를 쉽게 할 수 있다는 점에서 translation invariance 라고 생각한다.(이 부분은 직관적인 생각입니다)

 

inductive bias

어떠한 목적을 위해 모델을 만들 것이고 목적에 맞는 데이터를 input값으로 줄 것이다.

여기서 일반적으로 모델이 가지는 2가지 오류가 있다고 합니다.

1. Models are brittle --> 같은 의미의 데이터라도 조금이라도 바뀌면 다른 결과를 낸다

2. Models are spurious --> 데이터의 의미를 파악하지 못한다.

(이 두가지 오류가 저에게는 조금 붕뜬 의미인 거 같아서 이해하기 힘들었는데 저는 모델의 과적합이라고 생각하였습니다)

이러한 오류를 줄이기 위해서 모델은 Inductive Bias가 필요하다고 합니다.

직접 해석해보자면 귀납적인 편향입니다. 

조금 이해쉽게 해석해보자면 "경험하지 않은 데이터에 대해서도(훈련 데이터는 유한) 추론 하기 위한 가정"이라고 할 수있습니다.

(Inductive bias 라는 용어가 Transformer, CNN을 구분짓는 하나의 용어이다 보니 조금 더 자세한 설명이 필요해서 논문을 읽을 예정이며 추후 포스팅하겠습니다)

stationarity

직역하면 정상성이고 이해 쉽게 해석해보자면 변하지 않고 고정된 것이라고 할 수 있다.

이를 CNN에 적용해보자면 특정 패턴을 발견하는 kernel을 통해 다른 위치에 있는 동일 패턴도 발견할 수 있다는 것이라고 할 수 있다.

이미지를 보면 알 수 있듯이 입술의 모양은 비슷하기 때문에 어느 한 kernel을 통해 입술을 학습했다면 그 kernel이 다른 위치에 있는 입술도 학습할 가능성이 높은 것이다.

 


위에서 언급한 invariance, stationarty 같은 특징들이 CNN의 Inductive bias의 가정들을 이루는 집합이라고 할 수 있는데요,

여러 블로그에서 설명된 글을 보아도 Inductive bias에 대해 확실히 이해를 할 수 없어 대략적인 설명만 올려두고

다음에 논문을 읽고 이것만 따로 정리해서 올리려고 합니다.

'딥러닝' 카테고리의 다른 글

einops rearrange 공부해보기  (0) 2023.02.10
Dilated Convolution 이란  (0) 2023.01.17
RNN(Recurrent Neural Network)에 대한 이해해보기  (0) 2023.01.02
*args와 **kwargs 쓰임  (0) 2022.12.30
딥러닝 Momentum(관성)에 대한 이해  (0) 2022.11.25