1. 최대한 작은 complexity를 가지면서 우수한 filter를 표현하기 위한 CNN의 핵심 아이디어는 다음 세 가지이다
- sparse interactions (sparse weight)
- parameter sharing (tied weight)
- equivariant representations
즉, CNN은 layer와 layer간에 모든 connection을 연결하는 대신 일부만 연결하고 (sparse weight), 그리고 그 weight들을 각각 다른 random variable로 취급하여 따로 update하는 대신 특정 weight group들은 weight 값이 항상 같도록 parameter를 share한다 (parameter sharing). 그리고 앞의 아이디어를 잘 활용하여 shift 등의 transform에 대해서 equivariant한 representation을 learning하도록 모델을 구성한다.
2. equivariant 한 representation 을 learning
equivariant representations는 위와 같은 sparse weight와 tied weight를 어떤 특정한 형태로 효율적으로 배치하게 되었을 때, 주어진 input의 변화에 대해 output이 변화하는 방식이 equivariant해지는 현상을 의미한다 (equivalent가 아니다). 예를 들어 function f가 function g와 equivariant하다는 의미는, f(g(x))=g(f(x)) 인 경우를 말한다.
이미지 처리를 예로 들면 g는 임의의 linear transform이라고 할 수 있다. Shift, rotate, scale등의 image에 대한 transform들이 그것인데, 우리는 같은 이미지가 돌아가거나 움직이거나 살짝 scale되더라도 그 이미지가 어떤 이미지인지 잘 판별할 수 있지만, 컴퓨터에게는 그런 transform이 픽셀 값이 완전히 바뀌는 결과를 낳기 때문에 어떤 정보인지 판별하기 어려운 것이다. 그런데 만약 우리가 어떤 transform g에 대해 equivariant representation을 만들어내는 network f를 만들 수 있다면, input이 shift되거나 rotate되더라도 항상 적절한 representation을 가지도록 할 수 있을 것이다.
-> 실제 CNN은 shift에만 equivariant하다.
즉, 앞에서 shared parameter가 각각의 patch에 대해 같은 filter를 처리하는 것 처럼 설정하였기 때문에, 만약 image가 shift되더라도 feature map의 형태가 크게 뒤틀리는 것이 아니라, feature map도 image와 함께 shift되는 형태를 보이게 될 것이다.
'🤖 Today-I-Learned ] > Deep Learning' 카테고리의 다른 글
Transfer learning, Multi-task learning, Meta learning, Few-shot learning (0) | 2021.06.23 |
---|---|
Apple paper 모음 (1) | 2021.03.04 |
[coursera NLP] week1. Neural Machine Translation (0) | 2021.02.18 |
[NLP] 단어부터 문장까지 GloVe Embedding / Clustering (6) | 2021.01.25 |
[NLP] 딥러닝을 이용한 자연어 처리 입문 - Text Classification Questions 정리 (0) | 2020.11.24 |