ML model/Generative Model(3)
-
Variational AutoEncoder(VAE, Multi-VAE)
VAE의 특징은 z(latent vector)생성 시, linear layer를 통과하여 나온 벡터 내의 값(스칼라) 뿐만 아니라 해당 값의 평균과 분산 정보까지 포함시키는 것이다. - 이때 input으로 제공된 모든 값은 정규분포를 따른다고 가정한다. VAE 구현방법에는 여러가지가 있을 수 있지만 간단하게 두 가지를 소개하려고 한다. 1) encoder에 의해 생성되는 z의 크기를 두배로 하여 mu, logvar로 나누는 방법 2) z를 생성하는 linear layer를 두개 설정하여 mu,logvar를 각각 생성하는 방법. 필자는 무비렌즈 데이터로 영화 추천이라는 테스크를 수행했는데 1번 방법의 성능이 훨씬 좋았다. import torch.nn as nn import torch.nn.functiona..
2024.02.21 -
Denoising AutoEncoder(DAE, Multi-DAE)
실제 데이터는 noise가 낀 데이터일 확률이 높다. 따라서 AutoEncoder에 비해 더욱 강건한 모델을 만들고자 input 데이터에 인위적인 noise를 추가하고, 모델이 해당 noise를 제거(denoising)하여 원래 input을 재건할 수 있도록 학습한다. Denoising 방법으로는 두 가지가 있다. 1) Gaussian(정규 분포)로 부터 추출한 랜덤 값을 각 pixel에 더해주는 방법 2) Dropout을 이용하는 방법 **Denoising AutoEncoder는 input 단계에서 noise를 추가하는 것. import torch.nn as nn import torch.nn.functional as F import torch import numpy as np class DAE(nn.M..
2024.02.19 -
AutoEncoder (for Recommend System)
AutoEncoder는 기본적으로 주어진 벡터(이미지)를 가장 잘 표현하는 저차원을 구하기 위한 모델로 이해하면 좋다. 즉 encoder를 통해 생성된 compressed representation는 decoder를 통해 원래의 벡터(이미지)로 복원되며, 가장 loss가 적은 최적의 표현이 되도록 학습된다. 추천 시스템에서 AutoEncoder는 어떻게 사용될 수 있을까? user-item interaction matrix를 생성하여 접근해볼 수 있다. - 이때 interaction으로 구매 내역, 방문 페이지, 검색 기록 등 Implicit feedback 정보를 사용하기도 한다. import torch.nn as nn import torch.nn.functional as F import torch i..
2024.02.19