인공지능을 공부하다 보면, Latent, Encoder, Decoder와 같은 단어를 정말 많이 접할 수 있을 것이다.
"그냥 벡터다" 혹은 "컴퓨터가 이해할 수 있도록 숫자로 바꾼 것이다"라는 설명으로도 대충 이해하고 넘어갈 수 있을 듯 하지만,
앞으로 인공지능을 공부할 때 조금 더 수월하게 이해하는데 도움이 될 Low Manifold Theory에 대해서 설명해보고자 한다.
인공지능을 접했을 때 자주 보게 되는 손글씨 숫자 데이터, MNIST
사실 가운데 정렬된 "흑백 숫자 이미지"라는 것은
"숫자 종류 (0~9), 글자 두께, 기울기, 글씨체(e.g. 4의 윗부분을 붙여쓰냐 띄워서 쓰냐) 등의 정보"
+ "어느 정도의 랜덤성"으로 구성되는 것이 아닐까??
위 가정이 들어 맞는다면, 사실 우리는 몇백, 몇천 개의 숫자로 충분히 위의 이미지들을 표현 or 요약할 수 있을 것이다!
그것이 바로 Latent, Code라고 불리는 것들이다.
그렇기에 때문에 En-coder는 단순히 데이터를 code로 압축하는 모델이고,
De-coder는 code를 다시 데이터로 압축해제 혹은 복원하는 역할의 모델인 것이다.
압축본이기 때문에, Latent나 Code단계에서의 Manipulation(조작)이 decode(압축해제)된 결과물에 영향을 미치는 것이다.
정말 간단한 내용이고, 컴퓨팅 비용을 줄여야 좋기 때문에 어찌보면 당연하게 행해지는 것일지도 모른다.
+ 위의 이미지처럼, 실제 데이터 공간에서의 거리와 우리가 느끼는 의미적인 거리는 다를 수 있다.
이 포스팅을 통해서 여러분이 다른 논문을 읽거나 공부를 할 때, 조금 더 쉽게 공부할 수 있었으면 합니다!
읽어주셔서 감사합니다:)
관련 포스팅: https://velog.io/@jqdjhy/Stable-Diffusion-정복기-AutoEncoder-인코딩이-뭔데