[컴][머신러닝] AI 에서 autoencoder

 

머신러닝 / 오토인코더

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가지 부분으로 구성된다.

  1. Encoder
    input data를 압축해서 인코딩된 표현으로(encoded representation)으로 만들어주는 모듈
  2. Bottleneck
    encoder에 의해 압축된 정보들을 가지고 있는 모듈이다.
  3. Decoder
    압축된 정보들을 다시 decompress 하고 데이터를 새롭게 구성한다.

References

  1. Autoencoders in Deep Learning: Tutorial & Use Cases [2023]

댓글 없음:

댓글 쓰기