[What is CNN ?]

CNN, Convolutional Neural Network은 기존 딥러닝 신경망이었던 Fully-Connected Layer를 대체하기 위해 나왔다.

CNN은 Locally-Connected Layer로 Fully-Connected Layer에 비해 정보손실이 발생할 수 있다.

하지만 CNN은 이런 정보손실에 대해 channel을 많이 줌을 통해 정보손실을 방지할 수 있다.

 

또한 CNN은 FC보다 훨씬 weight수 즉, param#이 더 줄어든다

weight의 개수 = input_channel수 x kernel개수 x kernel개수 x output_channel
(단, padding='same')

filter를 weight로 하며, 이때 model은 weight를 조정하여 filter를 모델이 '알아서' 만들도록 한다.

(filtering을 모델에게 맡겨 상황에 따라 필요한 filter를 자체적으로 만들 수 있게 하는 것이다.)

 

 

 

 

[Auto-Encoder]

[본 목적] 

input의 압축 => 스스로 압축 알고리즘을 학습할 수 있는, input에 근사한 압축값을 뽑아낼 수 있음.
- 특정 분야에서 정상적으로 동작한다. 

(글자->강아지로 클래스가 변하게 된다면? 특징을 못뽑을 수도 있는, 특정 dataset에서만 가능한 비범용적 방법이다.)

- 주로 언어모델, segmentation 등등에서 사용됨.)


Encoding

- 코드화 시키는 것 = 어떠한 코드로 1:1 매칭시키는 것 
- 암호화 즉, 용량 압축의 효과 및 일반화도 가능하다.

 

bottleneck

- 정보가 embedding되어 있음(= 필요 정보만 모여있는 것)


Decoding

- decoding은 사람이 이해하도록 바꿔주는 것으로 encoding과 반대 개념이다.
- 이때, input image에 비해 손실이 발생한다.

 

 

 

 

 

 

 

[Curse of Dimensionality., 차원의 저주]

- 차원이 늘어날수록 문제를 풀기 쉬워지는것은 어느 정도까지이다!
- 즉, 역효과가 발생가능하다. → 도리어 학습이 안될 수 있다는 것!

 

 

 

[ERF (Effective Receptive Field)]

 - 학습이 되면서 점점 receptive field가 Gaussian distribution 형태에 가까워지는데, 이를 effective receptive field라 한다. 
 - (가장 최외각의 patch는 뒤로 갈수록 영향력이 줄고가운데 patch의 영향력이 커져 뒤로갈수록 정규분포와 비슷해져버림)
 - 이러한 문제로 인해 CNN이 깊게 쌓을 수 없게 된다. attention을 이용한 transformer, ViT가 나오게 된 배경이 되어 버림!

 

 

 

 

 

 

 😶 실습 _ by tensorflow

 

+ Recent posts