머신러닝 / 오토인코더
AI 에서 autoencoder
autoencoder 의 목적은 network를 training을 통해서 높은 차원의 data를 좀 더 낮은 차원을 이용해서 표현(lower dimensinal representation)하는 것이다. 일반적으로 차원수를 낮추는 것이다.[ref. 1]
이 ‘lower dimensinal representation’ 을 encoding이라고도 하고, latent space라고도 한다.
encoder 를 해서 좀 더 낮은 차원을 이용해서 표현(lower dimensinal representation)하게 된다. 예를 들면, 3차원으로 표시된 점들을 2차원에 표시하는 것을 들 수 있다. 여러가지 방법이 있겠지만, 예를 들면, 3차원의 점 (1,2,3) 이 있다고 하면, 이것을 (1,2*3000000) 등으로 표현할 수 있다. 물론 겹치지 않도록 잘 조절해야겠지만.
여하튼, 이렇게 만들어진 값을 encoding 된 값으로 보고, 이런 값들의 집합이 latent space 가 된다. 그러면 여기서 시작해서 새로운 값을 만들어내게 되는데, 이것을 decoding 이라고 이야기 한다.
이것은 diffusion model 에서 이미지를 뭉갰다가 다시 거기서 새로운 이미지를 만들어내는 것을 생각해보면, 이해가 될 듯 하다.
3가지 부분
autoencoder 는 3가지 부분으로 구성된다.
- Encoder
input data를 압축해서 인코딩된 표현으로(encoded representation)으로 만들어주는 모듈 - Bottleneck
encoder에 의해 압축된 정보들을 가지고 있는 모듈이다. - Decoder
압축된 정보들을 다시 decompress 하고 데이터를 새롭게 구성한다.
댓글 없음:
댓글 쓰기