
하지만 AI 이미지와 비디오는 실제로 어떻게 작동할까요? | Welch Labs 게스트 영상
요약
AI 이미지 및 비디오 생성 모델의 핵심 원리인 확산 모델(Diffusion Model)과 물리학적 연결 고리를 설명합니다. 노이즈에서 시작해 트랜스포머를 거쳐 점진적으로 이미지를 형상화하는 과정과 CLIP 모델의 역할을 다룹니다.
핵심 포인트
- 확산 모델은 물리학의 브라운 운동과 유사한 원리로 작동함
- 순수 노이즈 상태에서 트랜스포머를 통해 반복적으로 구조를 형성함
- 텍스트 프롬프트와 비전 모델을 연결하는 CLIP의 역할이 중요함
- 비디오 생성은 난수 생성기에서 시작해 단계적 반복(Iteration)을 거침
비디오: 하지만 AI 이미지와 비디오는 실제로 어떻게 작동할까요? | Welch Labs 게스트 영상
채널: 3Blue1Brown
재생 시간: 37분 20초
출처: 자막 (수동, 영문)
스크립트:
지난 몇 년 동안, AI 시스템은 텍스트 프롬프트 (text props)를 비디오로 변환하는 데 놀라울 정도로 능숙해졌습니다. 이러한 모델이 작동하는 핵심에는 물리학과의 깊은 연관성이 있습니다. 이 세대의 이미지 및 비디오 모델은 확산 (diffusion)이라고 알려진 프로세스를 사용하여 작동하는데, 이는 입자가 확산될 때 우리가 보는 브라운 운동 (Brownian motion)과 매우 유사하지만, 시간이 역방향으로 흐르고 고차원 공간 (high-dimensional space)에서 일어난다는 점이 다릅니다. 우리가 살펴보겠지만, 이러한 물리학과의 연결은 단순한 호기심 그 이상입니다. 우리는 이미지를 생성하고 비디오를 만드는 데 사용할 수 있는 실제 알고리즘을 물리학으로부터 얻을 수 있습니다.
그리고 이러한 관점은 이 모델들이 실제로 어떻게 작동하는지에 대한 정말 멋진 직관을 제공할 것입니다. 하지만 이 연결 고리에 깊이 빠져들기 전에, 실제 확산 모델 (diffusion model)을 직접 다뤄봅시다. 최고의 모델들은 폐쇄 소스 (closed source)이지만, 몇 가지 매력적인 오픈 소스 (open source) 모델들이 있습니다. 이 우주비행사 영상은 WAN 2.1이라는 오픈 소스 모델에 의해 생성되었습니다. 우리는 프롬프트 (prompt)를 추가하여 우리의 우주비행사가 깃발을 들거나, 노트북을 들거나, 회의를 하는 모습을 만들 수 있습니다. 만약 프롬프트를 단지 '우주비행사'로 줄인다면, 우리는 이것을 얻게 됩니다.
그리고 만약 프롬프트를 아무것도 남기지 않고 줄인다면, 흥미롭게도 우리는 여전히 이 여성의 영상을 얻게 됩니다. 우리의 WAN 모델 소스 코드 (source code)를 파헤쳐 보면, 비디오 생성 프로세스가 난수 생성기 (random number generator)에 대한 호출로 시작된다는 것을 알 수 있습니다. 픽셀 강도 값 (pixel intensity values)이 무작위로 선택되는 비디오를 만드는 것입니다. 이것이 그 모습입니다. 여기서부터, 이 순수한 노이즈 (noise) 비디오는 트랜스포머 (transformer)로 전달됩니다. 이것은 ChatGPT와 같은 대규모 언어 모델 (large language models)에서 사용되는 것과 동일한 유형의 AI 모델입니다. 하지만 텍스트를 출력하는 대신, 이 트랜스포머는 이제 다음과 같이 보이는 또 다른 비디오를 출력합니다.
여전히 대부분은 노이즈(noise)이지만, 약간의 구조적 힌트가 보입니다. 이 새로운 비디오는 우리의 순수 노이즈 비디오에 추가된 다음, 모델로 다시 전달되어 이와 같이 보이는 세 번째 비디오를 생성합니다. 이 과정은 계속해서 반복됩니다. 다음은 5회, 10회, 20회, 30회, 40회, 그리고 마지막으로 50회의 반복(iteration)을 거친 후의 비디오 모습입니다. 단계별로, 우리의 트랜스포머(transformer)는 순수 노이즈를 믿을 수 없을 정도로 사실적인 비디오로 형상화합니다. 그런데 여기서 브라운 운동 (Brownian motion)과의 정확한 연결 고리는 무엇일까요? 그리고 우리의 모델은 어떻게 텍스트 입력을 그토록 표현력 있게 사용하여 노이즈를 프롬프트(prompt)가 묘사하는 대로 형상화할 수 있는 것일까요?
이 영상에서 우리는 확산 모델 (diffusion models)을 세 부분으로 나누어 다룰 것입니다. 먼저, 2021년 OpenAI의 논문이자 모델인 CLIP을 살펴보겠습니다. 우리가 보게 되겠지만, CLIP은 사실 두 개의 모델, 즉 언어 모델 (language model)과 비전 모델 (vision model)로 구성되어 있으며, 이들이 단어와 그림 사이의 매우 강력한 공유 공간 (shared space)을 학습할 수 있게 해주는 영리한 학습 목표 (learning objective)를 사용하여 훈련됩니다. 이 공간을 실험해 보는 것은 확산 모델이 작동하는 고차원 공간 (high dimensional spaces)에 대한 감각을 익히는 데 도움이 될 것입니다. 하지만 공유된 표현 (shared representation)을 학습하는 것만으로는 이미지를 생성하기에 충분하지 않습니다.
여기서부터는 확산 과정 (diffusion process) 자체를 살펴보겠습니다. 높은 수준에서 보면, 확산 모델은 이미지나 비디오에서 노이즈를 제거하도록 훈련됩니다. 하지만 이 분야의 기념비적인 논문들을 깊이 파고들어 보면, 확산에 대한 이러한 단순한 이해는 실제로는 유효하지 않다는 것을 알게 될 것입니다. 이 섹션에서는 확산 모델과 물리학에서의 확산 과정 사이의 연결 고리를 깊이 파고들 것입니다. 이 연결 고리는 이러한 모델들이 실제로 어떻게 작동하는지 이해하는 데 도움을 줄 것이며, 이미지 및 비디오 생성을 극적으로 가속화할 수 있는 강력한 이론을 제공할 것입니다.
마지막으로, 우리는 이 세계들을 하나로 결합하여 CLIP과 같은 접근 방식이 확산 모델 (diffusion models)과 어떻게 결합되어, 우리가 프롬프트 (prompts)로 요청하는 비디오를 향해 생성 과정을 조건화하고 안내하는지 살펴볼 것입니다. 2020년은 언어 모델링 (language modeling)에 있어 기념비적인 해였습니다. 신경 스케일링 법칙 (neural scaling laws)의 새로운 결과와 OpenAI의 GPT-3는 규모가 커질수록 정말로 더 나아진다는 것을 보여주었습니다. 거대한 데이터셋으로 학습된 거대 모델들은 작은 모델에는 단순히 존재하지 않았던 능력들을 갖추고 있었습니다. 연구자들이 이와 유사한 아이디어를 이미지에 적용하는 데는 그리 오랜 시간이 걸리지 않았습니다.
2021년 2월, OpenAI의 한 팀은 인터넷에서 수집한 4억 개의 이미지-캡션 (image and caption) 쌍 데이터셋으로 학습된 CLIP이라는 새로운 모델 아키텍처 (model architecture)를 공개했습니다. CLIP은 텍스트를 처리하는 모델 하나와 이미지를 처리하는 모델 하나, 이렇게 두 개의 모델로 구성됩니다. 각 모델의 출력은 길이가 512인 벡터 (vector)이며, 핵심 아이디어는 주어진 이미지와 그 캡션에 대한 벡터가 서로 유사해야 한다는 것입니다. 이를 달성하기 위해 OpenAI 팀은 영리한 학습 접근 방식을 개발했습니다. 예를 들어, 고양이 사진, 강아지 사진, 그리고 제 사진이 포함된 이미지-캡션 쌍의 배치 (batch)가 있고, 캡션이 각각 '고양이 사진', '강아지 사진', '한 남자의 사진'이라고 가정해 봅시다. 그런 다음 우리는 세 개의 이미지를 이미지 모델에 전달하고, 세 개의 캡션을 텍스트 모델에 전달합니다.
이제 우리는 세 개의 이미지 벡터와 세 개의 텍스트 벡터를 갖게 되었으며, 우리는 일치하는 이미지-캡션 쌍의 벡터들이 서로 유사해지기를 원합니다. 여기서의 영리한 아이디어는 모델을 학습시킬 때 단순히 대응하는 이미지와 캡션 사이의 유사성뿐만 아니라, 배치 내의 모든 이미지-캡션 쌍 사이의 유사성을 활용하는 것입니다. 만약 우리가 이미지 벡터를 행렬 (matrix)의 열 (columns)로 배치하고, 텍스트 벡터를 행 (rows)으로 배치한다면, 행렬의 대각선 (diagonal)을 따라 있는 벡터 쌍들이 일치하는 이미지와 캡션에 해당하게 됩니다.
그리고 대각선 이외의 (off-diagonal) 모든 쌍들은 일치하지 않는 이미지와 캡션입니다. CLIP의 학습 목표 (training objective)는 대응하는 이미지-캡션 쌍 사이의 유사도 (similarity)를 최대화하는 동시에, 대응하지 않는 이미지-캡션 쌍 사이의 유사도는 최소화하는 것입니다. CLIP의 C는 대조적 (contrastive)이라는 의미를 담고 있는데, 이는 모델이 일치하는 이미지-캡션 쌍과 일치하지 않는 이미지-캡션 쌍을 대조하도록 학습하기 때문입니다. CLIP 알고리즘은 코사인 유사도 (cosine similarity)라고 불리는 지표를 사용하여 벡터 간의 유사도를 측정합니다. 기하학적으로 (geometrically), 우리는 이 벡터들 각각이 고차원 공간 (high-dimensional space) 내의 어떤 방향을 가리키고 있다고 생각할 수 있습니다.
코사인 유사도는 이 공간에서 우리 벡터들 사이의 각도의 코사인 값을 측정합니다. 따라서 만약 우리의 텍스트 벡터와 이미지 벡터가 같은 방향을 가리킨다면, 벡터 사이의 각도는 0이 될 것이고, 그 결과 코사인 유사도 점수는 최댓값인 1이 됩니다. 즉, CLIP을 구성하는 이미지 및 텍스트 모델들은 이 공유된 고차원 공간에서 관련된 이미지와 캡션 사이의 정렬 (alignment)은 최대화하고, 관련 없는 이미지와 캡션 사이의 정렬은 최소화하도록 학습됩니다. 잠재 공간 (latent space) 또는 임베딩 공간 (embedding space)이라고 알려진 이 공유된 벡터 공간의 학습된 기하학적 구조는 매우 흥미로운 특성들을 가지고 있습니다.
만약 제가 저의 사진 두 장을 찍는데, 하나는 모자를 쓰지 않은 모습이고 다른 하나는 모자를 쓴 모습이라고 가정해 봅시다. 그리고 이 두 사진을 우리의 CLIP 이미지 모델에 통과시키면, 임베딩 공간에서 두 개의 벡터를 얻게 됩니다. 이제 제가 모자를 쓴 상태에 해당하는 벡터에서 모자를 쓰지 않은 상태의 벡터를 빼면, 임베딩 공간에서 새로운 벡터를 얻게 됩니다. 그렇다면 이 새로운 벡터는 어떤 텍스트에 대응할 수 있을까요? 수학적으로 우리는 '모자를 쓴 나'와 '모자를 쓰지 않은 나'의 차이 (difference)를 구한 것입니다. 우리는 수많은 서로 다른 단어들을 텍스트 인코더 (text encoder)에 통과시키고, 각각에 대해 새로 계산된 차이 벡터와 텍스트 벡터 사이의 코사인 유사도를 계산함으로써 그에 대응하는 텍스트를 찾아낼 수 있습니다.
수백 개의 흔한 단어 세트를 테스트했을 때, 0.165의 유사도로 가장 높은 순위를 차지한 일치 단어는 'hat(모자)'이었으며, 그 뒤를 'cap(캡)'과 'helmet(헬멧)'이 이었습니다. 이는 놀라운 결과입니다. CLIP의 임베딩 공간 (embedding space)이 학습한 기하학적 구조 덕분에, 우리는 이미지와 텍스트에 담긴 순수한 아이디어나 개념을 수학적으로 다룰 수 있게 되었습니다. 즉, 이미지에 모자가 있는지 여부와 같은 이미지 콘텐츠의 차이를 임베딩 공간 내 벡터들 사이의 실제 거리로 변환할 수 있는 것입니다. OpenAI 팀은 이미지를 이미지 인코더 (image encoder)에 통과시킨 후, 그 결과로 나온 벡터를 이미지에 할당될 수 있는 각 레이블(label)에 대응하는 가능한 캡션 세트와 비교하여, 가장 높은 코사인 유사도 (cosine similarity)를 보이는 레이블로 이미지를 분류함으로써 CLIP이 매우 인상적인 이미지 분류 결과를 생성할 수 있음을 보여주었습니다.
따라서 CLIP과 같은 기술은 우리에게 이미지와 텍스트의 강력한 공유 표현 (shared representation), 즉 순수한 아이디어의 벡터 공간 (vector space)을 제공합니다. 하지만 우리의 CLIP 모델은 한 방향으로만 작동합니다. 우리는 이미지와 텍스트를 공유 임베딩 공간으로 매핑할 수만 있을 뿐, 임베딩 벡터로부터 이미지와 텍스트를 생성할 방법은 없습니다. 2020년은 언어 모델링 (language modeling)에 있어 변혁적인 해였을 뿐만 아니라, GPT-3 논문이 발표된 몇 주 후, 버클리(Berkeley)의 한 팀이 현재 DDPM으로 알려진 'Denoising Diffusion Probabilistic Models'라는 논문을 발표했습니다.
이 논문은 순수한 노이즈 (noise)가 단계적으로 실사 이미지로 변환되는 확산 과정 (diffusion process)을 사용하여 매우 높은 품질의 이미지를 생성하는 것이 가능하다는 것을 처음으로 보여주었습니다. 확산 모델 (diffusion models) 뒤에 숨겨진 핵심 아이디어는 매우 간단합니다. 우리는 일련의 훈련 이미지 세트를 가져와서 이미지가 완전히 파괴될 때까지 각 이미지에 단계적으로 노이즈를 추가합니다. 여기서 우리는 이 과정을 역전시키도록 신경망 (neural network)을 훈련시킵니다. 제가 확산 모델에 대해 처음 배웠을 때, 저는 모델이 한 번에 한 단계씩 노이즈를 제거하도록 훈련될 것이라고 가정했습니다.
우리의 모델은 2단계의 더 노이즈가 많은 이미지가 주어졌을 때 1단계의 이미지를 예측하도록 훈련되고, 3단계의 더 노이즈가 많은 이미지가 주어졌을 때 2단계의 이미지를 예측하도록 훈련되는 식입니다. 이미지를 생성할 때가 되면, 우리는 순수한 노이즈를 모델에 통과시키고, 그 출력값을 다시 입력값으로 반복해서 전달하며, 충분한 단계를 거친 후에 멋진 이미지를 얻게 될 것이라고 생각했습니다. 하지만 확산 모델 (diffusion model)을 구축하는 이러한 단순한 접근 방식은 실제로 잘 작동하지 않는다는 것이 밝혀졌습니다. 사실상 현대의 모델 중 이런 방식으로 작동하는 모델은 거의 없습니다.
이것들은 Berkeley 팀의 논문에 나온 훈련 및 이미지 생성 알고리즘입니다. 표기법이 다소 복잡하지만, 이러한 모델들이 실제로 작동하게 만드는 데 무엇이 필요한지 이해하는 데 도움이 될 몇 가지 핵심적인 세부 사항을 뽑아낼 수 있습니다. 저를 놀라게 했던 첫 번째 사실은, 팀이 훈련 과정뿐만 아니라 이미지 생성 과정 중에도 이미지에 무작위 노이즈 (random noise)를 추가했다는 점입니다. 알고리즘 2에 따르면, 새로운 이미지를 생성할 때 각 단계에서 신경망 (neural network)이 노이즈가 적은 이미지를 예측한 후, 이를 다시 모델에 전달하기 전에 이 이미지에 무작위 노이즈를 추가해야 합니다.
이렇게 추가된 노이즈는 실제로 매우 중요한 역할을 한다는 것이 밝혀졌습니다. 만약 우리가 Stable Diffusion 2와 같은 인기 있는 확산 모델을 가져와서 DDPM 샘플링 (DDPM sampling)이라고 알려진 Berkeley 팀의 이미지 생성 방식을 사용한다면, 정말 멋진 이미지들을 얻을 수 있습니다. 여기 사막에 있는 나무를 요청하는 프롬프트로 모델에 명령했을 때 얻은 이미지가 있습니다. 그런데 만약 생성 과정의 각 단계에서 노이즈를 추가하는 코드 줄을 제거한다면, 결국 아주 작고 슬프고 흐릿한 나무를 얻게 됩니다. 이미지를 생성하는 동안 무작위 노이즈를 추가하는 것이 어떻게 더 높은 품질과 더 선명한 이미지로 이어지는 걸까요?
제가 Berkeley 팀의 접근 방식을 접했을 때 두 번째로 놀랐던 점은, 팀이 노이즈 추가 과정의 단일 단계를 역전시키도록 모델을 학습시키는 것이 아니었다는 점입니다. 대신, 팀은 그들이 $X_0$라고 부르는 초기 깨끗한 이미지(clean image)를 가져와서, 이미지에 $\epsilon$ (epsilon)이라고 부르는 스케일링된 무작위 노이즈(scaled random noise)를 추가합니다. 그리고 여기서부터, 모델이 원본 이미지에 추가된 전체 노이즈를 예측하도록 학습시킵니다. 즉, 팀은 모델에게 모든 중간 단계를 건너뛰고 원본 이미지에 대한 예측을 수행하도록 사실상 요구하고 있는 것입니다.
직관적으로, 이러한 학습 작업은 단순히 노이즈가 섞인 이미지를 아주 조금 덜 노이즈가 있게 만드는 법을 배우는 것보다 훨씬 더 어렵게 느껴집니다. Berkeley 팀의 논문과 접근 방식은 확산 모델 (diffusion)을 세상에 알린 획기적인 결과였습니다. 이미지를 생성하는 동안 무작위 노이즈를 추가하고 이와 같이 모델을 학습시키는 것이 왜 그렇게 잘 작동하는 걸까요? DDPM 논문은 이러한 알고리즘에 도달하기 위해 상당히 복잡한 이론을 활용합니다. 이론을 더 깊이 파고들고 싶다면 설명란에 훌륭한 튜토리얼 링크를 포함해 두겠습니다. 다행히도, 확산 모델 (diffusion models)이 실제로 무엇을 학습하고 있는지 이해하는 데 있어 수학적으로는 동일하지만 다른 방식이 있다는 것이 밝혀졌으며, 이를 통해 DDPM 알고리즘이 왜 그렇게 잘 작동하는지에 대해 시각적이고 직관적인 감각을 얻을 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 YouTube 3Blue1Brown (수학/ML)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기