Deep Learning 27

PGGAN, StyleGAN 설명, Torch 코드 구현

PGGAN(PixelGAN) PGGAN은 "Progressive Growing of GANs"의 약자로, 픽셀 수준의 이미지 생성에 중점을 둔 모델 PGGAN은 단계적으로 해상도를 키우면서 이미지를 생성하는 방식이며, 먼저 매우 작은 해상도의 이미지부터 시작하여 점진적으로 해상도를 키워가며 생성함. 각 단계에서는 이미지 생성에 사용되는 신경망의 크기와 깊이를 조절하며 작은 해상도의 이미지에서는 작은 신경망을 사용하고, 점진적으로 더 큰 신경망을 사용하여 더 높은 해상도의 이미지를 생성함. 이러한 접근 방식은 높은 해상도의 이미지를 생성하는 데 안정적으로 학습할 수 있음. Torch 코드 구현 import torch import torch.nn as nn class Generator(nn.Module): ..

Deep Learning 2024.02.19

Pytorch Pix2Pix 모델 구현

Pix2pix 모델은 A-B처럼 1:1 대응되는 paired한 이미지를 입력으로 해서 특정 입력데이터가 들어왔을 때, 어떤 이미지가 나올지를 예측하여 생성하는 생성 모델이다. 예를 들면, 건물 segmentation을 입력으로 했을 때, 건물을 생성하는 이미지가 출력되는 것이 가장 대표적이다. 기존에 활용되던 CGAN 모델과는 다르게 Pix2Pix 에서는 Noise vector 와 Class vector를 입력으로 받지 않고, 오직 이미지만을 입력으로 한다. Discriminator는 두 가지의 입력데이터를 받는데, Generator에 넣었던 원본 이미지와 짝지어졌던 실제이미지, 그리고 생성된 이미지를 각각 입력받는다. 그리고 discriminator는 pair를 비교해서 생성된 이미지인지, 혹은 진짜..

Deep Learning 2024.02.16

conda env 실행 시 오류 해결

anaconda 로 env 생성 후 activate 할 때, 아래와 같은 오류가 발생할 때가 있음. usage: conda [-h] [--no-plugins] [-V] COMMAND ... conda: error: argument COMMAND: invalid choice: 'source' (choose from 'clean', 'compare', 'config', 'create', 'info', 'init', 'install', 'list', 'notices', 'package', 'remove', 'uninstall', 'rename', 'run', 'search', 'update', 'upgrade', 'build', 'content-trust', 'convert', 'debug', 'develop..

Deep Learning 2024.01.31

anaconda 다중 사용자(multi-user) 환경 세팅

Anaconda 설치 받은 sh 파일을 실행 bash [받은 Anaconda 설치 파일] https://www.anaconda.com/download#downloads Anaconda 설치 폴더에 대한 작업 수행 # 그룹 추가 sudo addgroup add [그룹명] # 그룹이 Anaconda 폴더에 접근할 수 있도록 권한 변경 ex) /anaconda3 sudo chgrp -R mygroup /PATH/TO/ANACONDA/INSTALL sudo chmod 770 -R /PATH/TO/ANACONDA/INSTALL # 유저를 Anaconda 접근할 유저를 추가 sudo adduser [유저] [그룹명] 환경 변수 설정 유저의 홈 디렉터리에서 환경 변수(.bashrc) 적용(Anaconda 환경 접근을..

Deep Learning 2024.01.15

Multi class Segmentation Loss function 정리

Segmentation 에 적용할 수 있는 Loss function은 아래와 같다. BCE Loss 이진분류에 사용되는 Loss Focal Loss 불균형한 클래스 분포를 가진 데이터셋에서 Classification 할 때 주로 사용 희소한 class에 대해 더 집중되는 효과가 있음. ALPHA = 0.8 GAMMA = 2 def FocalLoss(targets, inputs, alpha=ALPHA, gamma=GAMMA): inputs = K.flatten(inputs) targets = K.flatten(targets) BCE = K.binary_crossentropy(targets, inputs) BCE_EXP = K.exp(-BCE) focal_loss = K.mean(alpha * K.pow((..

Deep Learning 2024.01.15

Atrous Convolution 개념, 설명, 정리

Atrous Convolution(또는 Dilated Convolution)은 컨볼루션 레이어에서 특정 픽셀 간의 간격을 둔 필터를 사용하는 기술로, 컨볼루션 네트워크(Convolutional Neural Network, CNN)에서 피처 맵의 크기를 확장하면서도 계산 효율성을 유지하는 데 사용됨. 다시 얘기하면, 일반적인 Convolution Layer와 달리, Atrous Convolution 은 dilated 개념이 적용된 합성곱 연산으로 볼 수 있음. atrous = a trous (구멍이 있는)의 의미와 같게, convolution의 각 커널 사이에 1칸씩 구멍이 있는 것을 의미함. (일반적인 convolution layer의 dilation은 1이지만, Atrous Convolution의 di..

Deep Learning 2023.12.15

UNET 구조, 설명

UNET(United Encoder-Decoder Networks)은 주로 이미지 분할, 세그멘테이션, 객체인식 등에 사용되는 딥러닝 모델중 하나임. 이미지의 각 픽셀을 해당하는 클래스나 세그멘테이션 마스크로 할당하는 작업에 적합하며, 2015년 소개된 이후 이미지 세그맨테이션 분야에서 많이 활용되고 있음. UNET 특징은 아래와 같음. Encoder-Decoder 구조 UNET은 대칭구조의 Encoder와 Decoder로 구성 Encoder : 이미지의 공간적 계층 구조를 추출하여 저차원 임베딩으로 변환 Decoder : 저차원 임베딩을 사용하여 입력 이미지의 공간적 구조를 복원하고, 원래 입력의 크기와 동일한 크기의 세그멘테이션 맵 생성 Skip Connections UNET은 각 인코더 레이어와 디..

Deep Learning 2023.12.12

편향(Bias)와 분산(Variance) 개념 정리

편향과 분산은 머신러닝에서 모델의 성능을 설명하는 중요한 개념임. 이 두 요소는 모델의 복잡성과 일반화 성능간의 상충관계(Trade-off) 관계를 가짐. 편향과 분산이 헷갈리는 용어, 개념이여서 정리하고자 함. 편향(Bias) 모델의 편향은 모델이 주어진 데이터에 대해 얼마나 정확한 예측을 하는지에 대한 정도임. 높은 편향은 모델이 너무 간단하거나 제한적이어서, 주어진 데이터 패턴을 충분히 학습하지 못할 수 있음을 의미함. 높은 편향은 과소적합(Under Fitting)으로 표현되며, 학습데이터에 대한 성능이 낮을 수 있음. 분산(Variance) 모델의 분산은 모델이 학습 데이터에 얼마나 민감한지를 나타냄. 높은 분산은 모델이 주어진 학습 데이터에 지나치게 민감하여 노이즈까지 학습할 수 있음을 의미함..

Deep Learning 2023.12.11