오토인코더

오토인코더

  • 데이터에 대한 효율적인 압축을 신경망을 통해 자동으로 학습하는 모델

  • 일반적으로 입력 데이터 자체가 라벨로 사용 -> 비지도 학습에 속함

  • Input에서 들어와 신경망을 통해 잠재변수 code가 된다.

  • 압축된 code는 다시 신경망을 통과해 output 된다.

class Autoencoder(mm.Module):
	def __init__(self):
    	super(Autoencoder,self).__init__()
        self.encoder = nn.Linear(28*28,20)
        self.decoder = nn.Linear(20,28*28)
        
    def forward(self,x):
    	x = x.view(batch_size,-1)
        encoded = self.encoder(x)
        out = self.decoder(encoder).view(batch_size,1,28,28)
        return out
        

model = Autoencoder()
loss_func = nn.MSELoss()
optimizer = torch.optim.Adam(model.parameters(),lr = learning_rate)

for i in range(num_epoch):
	for j,[image,label] in enumerate(train_loader):
    optimizer.zero_grad()
    output = model.forward(image)
    loss = loss_func(output,image)
    loss.backward()
    optimizer.step()

합성곱 오토인코더

  • 입력값에 필터의 가중치를 각각 곱한 결과의 합을 통해 계산되었다면 전치 합성곱 연산은 하나의 입력값을 받아 여기에 서로 다른 가중치를 곱해 필터의 크기만큼 입력값을 '퍼뜨리는' 역할을 한다.

시맨틱 세그멘테이션

  • 오토인코더의 여러 다양한 방식 중 하나

교재 : 파이토치 첫걸음

좋은 웹페이지 즐겨찾기