카테고리 없음

Autoencoder 특화 아키텍처

8353cc 2025. 4. 16. 12:52
728x90
반응형
SMALL

 

특화 Autoencoder 아키텍처 실무 구현 및 실험

1. Variational Autoencoder (VAE)

# ... (VAE 코드 참조)

2. Denoising Autoencoder (DAE)

# ... (DAE 코드 참조)

3. Convolutional Autoencoder (CAE)

# ... (CAE 코드 참조)

4. MNIST 데이터셋 연동 예시 (CAE 기준)

from torchvision import datasets, transforms
from torch.utils.data import DataLoader

transform = transforms.Compose([
    transforms.ToTensor(),
])
train_data = datasets.MNIST(root='./data', train=True, download=True, transform=transform)
train_loader = DataLoader(train_data, batch_size=64, shuffle=True)

model = ConvAutoencoder()
optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)
criterion = nn.MSELoss()

for epoch in range(5):
    for img, _ in train_loader:
        optimizer.zero_grad()
        output = model(img)
        loss = criterion(output, img)
        loss.backward()
        optimizer.step()

5. 복원 결과 시각화

import matplotlib.pyplot as plt

model.eval()
with torch.no_grad():
    sample = next(iter(train_loader))[0][:5]  # 5개 이미지
    reconstructed = model(sample)

    fig, axes = plt.subplots(2, 5, figsize=(12, 4))
    for i in range(5):
        axes[0, i].imshow(sample[i][0], cmap='gray')
        axes[0, i].set_title('Original')
        axes[1, i].imshow(reconstructed[i][0], cmap='gray')
        axes[1, i].set_title('Reconstructed')
        for ax in axes[:, i]:
            ax.axis('off')
    plt.tight_layout()
    plt.show()

6. 아키텍처별 성능 비교 표 (예시)

모델 재구성 Loss (MSE) 훈련 속도 시각 품질 특징 추출
VAE 0.013 보통 △ 다양성 ↑, 세밀도 ↓ ◎ (분포 정보 보존)
DAE 0.009 빠름 ◎ 노이즈 제거 ◎ (강건함)
CAE 0.005 빠름 ◎ 이미지 복원 품질 △ (시각적 정보 중심)
반응형
LIST