본문 바로가기

전체 글43

Stable Diffusion UNet 구조 Stable Diffusion, Latent Diffusion Model은 논문에서 컨셉은 잘 설명하고 있으나, 명확한 구조를 알려주진 않는다. paper 그 구조 역시 인터넷에 좋은 자료가 없는 것 같아 코드를 이해하면서 구조를 만들어보았다. 전체적인 구조를 다 그릴 수 없어서 UNet에 집중해서 작성하였다. 여기서 예시는 클래스 조건부 모델이다. 모델의 시작은 Latent 공간에서 시작하며, Down/Mid/Up layer가 각각 2개라고 가정한다.전체적인 구조는 다음과 같다. Down Layer와 Up Layer는 각각 ResNet 블럭과 Self Attention 블럭으로 구성된다. 반면 Mid Layer의 경우 ResNet 블럭이 등장 한 후, Self Attention과 ResNet 블럭의 쌍.. 2024. 12. 19.
ERROR: Could not find C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe 가끔 파이썬 패키지를 설치하다보면 아래와 같은 에러가 발생하는 경우가 있다. ERROR: Could not find C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe  이 에러는 Visual Studio Build Tools가 없기 때문에 발생하는 것이다.아래 사이트에서 설치할 수 있는데,https://visualstudio.microsoft.com/ko/downloads/ Visual Studio Tools 다운로드 - Windows, Mac, Linux용 무료 설치Visual Studio IDE 또는 VS Code를 무료로 다운로드하세요. Windows 또는 Mac에서 Visual Studio Professional 또는 Ent.. 2024. 12. 12.
Understanding Diffusion Models (Part 2: VAE) Part2는 VAE에 관한 내용이다. Part1에서 생성모델의 개념과 ELBO에 대해서 살펴보았다. 여기서 본 ELBO를 가지고 VAE, Variational Autoencoders를 수행할 수 있다. 여기서는 이 VAE에 대해서 자세히 다룬다. 반드시 Part1을 이해하고 이 포스팅을 참고하는 것이 도움이 될 것이다.2024.11.20 - [논문리뷰/Diffusion models] - Understanding Diffusion Models: A Unified Perspective (Part 1: 생성 모델의 개념과 ELBO) Understanding Diffusion Models: A Unified Perspective (Part 1: 생성 모델의 개념과 ELBO)해당 글은 Calvin Luo가 202.. 2024. 12. 10.
Activation function, 활성함수의 특징 인공신경망에서 비선형으로 변환하기 위한 activation function, 활성 함수는 크게 6가지가 잘 알려져 있다. 1. Sigmoid가장 많이 사용되었던 활성함수 형태로 Sigmoid 함수의 출력 값은 항상 (0, 1) 구간에 있다. 𝑥 = 0 을 기준으로 대칭적이며, 𝑓(0) = 0.5 이다. 단조 증가하는 형태를 보이며, 복잡한 패턴 학습이 가능하고 전체 구간에서 미분이 가능하다.위 그림과 같이 saturated 구간이 발생한다. 이 구간에서 입력 신호의 총 합이 크거나 작을 때, 기울기가 0 에 가까워 보이는데 이 현상을 saturated 라고 한다. 이는 gradient vanishing 문제를 발생시킨다.또한 Not zero-centered, 즉 출력값의 평균이 0 이 아닌 0.5 를.. 2024. 11. 30.
MLE 최대화가 Cross entropy 최소화와 같은 효과인 이유 MLE(Maximum Likelihood Estimation)을 이해하기 위해서는 먼저 Likelihood에 대해서 이해해야 한다. Likelihood란 어떤 일이 일어날 ‘가능도’를 뜻하기 때문에 확률로 해석하는 게 더 매끄럽다. 하지만 확률(Probability)과는 조금 다른 의미가 있다. Probability는 주어진 확률 분포가 고정된 상태에서 관측되는 사건이 변화될 때를 의미한다면, Likelihood는 관측된 사건이 고정된 상태에서, 확률 분포가 변화될 때를 표현하는 의미이다. 따라서 MLE는 이 Likelihood가 최대가 되는 값을 구하는 과정, 즉 관측되는 데이터들을 가장 잘 모델링하는 확률분포의 parameter를 찾는 과정이다. 로지스틱 회귀모델에서 MLE를 위해 다음과 같은 식을 .. 2024. 11. 30.
SR3+: Denoising Diffusion Probabilistic Models for Robust Image Super-Resolution in the Wild SR3+는 CVPR 2023에서 발표되었고, 아주 간단하다. 바로 SR3를 좀 더 강건하게 만들어 보자는 것이다. 그렇다면 어떻게 강건하게 만들 것인가? 바로 super resolution을 위한 degradation, 즉 고화질 이미지를 저화질 이미지로 만들 때 보다 더 복잡한 형태로 만들어서 다양한 형태의 저화질 이미지를 만들어서 학습하자는 것이다. SR3는 아래 소개되어 있다.2024.05.27 - [논문리뷰/Diffusion models] - SR3: Image Super-Resolution via Iterative Refinement (CVPR, 2021) SR3: Image Super-Resolution via Iterative Refinement (CVPR, 2021)해당 논문은 CVPR 2.. 2024. 11. 21.
Understanding Diffusion Models: A Unified Perspective (Part 1: 생성 모델의 개념과 ELBO) 해당 글은 Calvin Luo가 2022년 arXiv에 게재한Understanding diffusion models라는 논문이다. Diffusion 모델이 초기에는 서로 다른 notation으로 정리되어 있어 개별 논문마다 이해가 조금 어려운데, 이 논문은 그런 수식들을 통합하여 작성해서 개인적으로는 diffusion 모델의 전반을 이해하기 참 좋은 논문이였다. 내용이 너무 길어 쪼개서 상세히 기록을 남기고자 한다. 먼저 part1, part2는 diffusion 모델의 기본이 되는 VAE와 VAE를 이해하기 위한 ELBO에 관한 내용이다. 이것이 어떻게 전개되는지 알 수 있다. 1. Introduction: Generative Models어떤 분포로부터 샘플링한 $x$가 주어졌을 때, generativ.. 2024. 11. 20.
SystemExit: 2 error args = parser.parse_args() PatchTST를 공부하려고 공식 github에서 가져온 코드를 돌리니 이런 에러가 발생하였다. ===========================================================================Exception has occurred: SystemExit X2args = parser.parse_args()SystemExit: 2 ===========================================================================  찾아보니 jupyter에서 parser를 써서 그런거라는데…. 엥? 나는 jupyter에서 하고 있지 않은데? 터미널에 출력된 내용을 보니 run_longExp.py: error: the following .. 2024. 10. 28.
728x90