[cs226] Lecture 1: Introduction

지유경·2024년 6월 26일
0

Introduction

What is Generative Models?

생성 모델은 주어진 학습 데이터를 학습하여 학습 데이터의 분포를 따르는 새로운 데이터를 생성하는 모델이다. 학습 데이터와 유사한 데이터를 생성해야 하기 때문에 학습 데이터와 유사한 샘플을 뽑아야 한다. 따라서, 생성 모델에는 학습 데이터의 분포를 어느 정도 안 상태에서 생성(Explicit)하거나 잘 모르는 상태에서 생성(Implicit)하는 다양한 모델들이 존재한다.


강의에서는 Richard Feynman의 인용문을 생성모델에 적용하여 설명했다.
"What I cannot create, I do not understand"
이는 수학적 정리에서 자신이 직접 증명할 수 없다면 그 개념을 충분히 이해하지 못한다는 것을 의미한다.
이를 생성 모델에 적용한다면, "만약 이미지나 텍스트의 의미를 이해할 수 있다면 이를 생성할 수 있다"고 할 수 있다.

Generative Modeling: Computer Graphics

How to generate natural images with a computer?


컴퓨터 그래픽스에서 고차원 신호(이미지) 생성 : 주어진 High Level Description(물체의 종류, 색상, 위치 등)을 기반으로 이미지를 생성하는 과정이다. 이는 물체가 어떤 모양인지, 색상은 어떤지, 위치는 어디인지와 같은 정보를 바탕으로 이미지를 렌더링하는 것을 포함한다.

생성 모델을 통해 이를 역으로 해석하는 'Inverse Graphics (역 그래픽스)' : 생성 모델의 철학 중 하나로, 이미지를 생성하는 과정을 역으로 수행하여 이미지를 해석하는 방법이다. 이는 이미지에서 시작하여 그 이미지를 생성한 요소들, 즉 High Level Description을 추론하는 것을 의미한다.

이미지 생성 및 해석에서 컴퓨터 그래픽스와 생성 모델의 차이점

  • 컴퓨터 그래픽스는 주로 고수준의 설명을 바탕으로 이미지를 생성하는 반면, 생성 모델은 주어진 데이터를 기반으로 새로운 데이터를 생성하거나 해석함.
  • 생성 모델을 통해 역 그래픽스 접근법을 사용하면, 이미지를 보고 그 이미지를 생성한 요소들을 이해할 수 있다.

Statistical Generative Models

생성 모델은 이미지나 텍스트의 확률 분포로 구성된다. 이때, 통계 모델을 사용하여 데이터와 사전 지식을 결합을 통해 좋은 생성 모델을 구축한다.

사전 지식으로는 prametric form, loss function, optimization algorithm 등이 될 수 있다.

임의의 이미지 x가 입력으로 주어졌을 때, 이 이미지가 데이터 세트에서 나타날 확률 p(x)p(x)를 계산할 수 있다.

  • 임의의 이미지 xx 입력
  • 모델이 이 이미지가 학습된 분포에 따라 나타날 확률을 계산
    -> 이를 통해, 모델은 입력 이미지 xx를 스칼라 확률 값 p(x)p(x)로 매핑한다. 예를 들어, 특정 이미지가 모델의 학습된 분포에 잘 맞는다면 높은 확률 값을 가질 것이다.

생성 모델을 데이터 시뮬레이터로 사용하여 새로운 데이터를 생성하는 과정은 데이터를 입력으로 받는 것이 아니라 출력을 생성하는 방식이라고 생각하면 된다.

생성 모델을 통해 시뮬레이터를 구축하는 과정

  1. 데이터 수집: 생성 모델을 학습시키기 위해 많은 데이터를 수집한다.
  2. 모델 학습: 이 데이터 세트를 사용하여 생성 모델을 학습 시킨다. 생성 모델은 데이터 세트의 분포를 학습하고, 각 데이터 포인트가 어떻게 생겼는지에 대한 확률적 이해를 가지게 된다. 이 과정에서 모델은 각 이미지에 대한 다양한 특징들을 학습하게 된다.

학습된 확률 분포를 바탕으로 해당 분포에서 샘플링하여 새로운 이미지를 생성할 수 있다고 생각하면 된다.

제어 신호를 사용한 데이터 생성

제어 신호를 사용하여 생성 모델을 특정한 방식으로 제어할 수 있다. 여기서 제어 신호는 생성 과정에서 원하는 출력을 얻기 위해 입력되는 추가적인 정보를 의미한다. 이는 스케치, 캡션 등이 포함될 수 있다.
(이런 것들을 Conditional Generative Model이라고 생각하면 됨.)

Image Generation


생성 모델은 많은 발전을 이루었고, 다양한 분야에서 성공을 거두고 있다. 초기에는 단순한 흑백 이미지 생성이었지만, 점차 고해상도와 더 많은 디테일을 갖춘 현실적인 이미지까지 발전했다.

강의에서는 간략하게 GAN, Diffusion Model, Dalle3 등이 이미지를 생성한 예시들을 보여주며 넘어간다.

GAN과 Diffusion Model에 대해서 간략하게 설명하자면,

  • GAN: generator와 discriminator라는 두 개의 신경망으로 구성되는데, 이 두 신경망이 적대적인 관계로 가짜 데이터 생성하는 생성자와 진짜와 가짜 데이터를 구분하는 판별자가 서로 경쟁을 하며 학습을 한다.

  • Diffusion Model: 원본 데이터에 여러 단계에 걸쳐 노이즈를 추가(전향 과정(Forward Process))하고, 모델이 각 단계에서 노이즈가 추가된 데이터를 입력으로 받아, 노이즈를 제거하여 원래 데이터로 복원역향 과정(Reverse Process)하는 방법을 학습한다. 학습된 모델을 사용하여 노이즈가 많은 상태에서 시작하여 점진적으로 노이즈를 제거함으로써 새로운 데이터를 생성한다.

Audio and Speech Generation

음성 생성 모델도 또한 발전했다. WaveNet 모델은 텍스트를 음성으로 변환하는데 매우 효과적이다.

최신 모델은 감정 표현과 억양을 포함하여 더욱 자연스러운 음성을 생성할 수 있다. 강의에서는 Diffusion Text2Speech와 Audio Super Resolution 모델의 음성 생성 예시를 보여준다. (여기서 Audio Super Resolution 모델은 Conditional generative model이다.)

Language Generation

언어 모델도 많은 진전을 이루었다. GPT와 같은 대규모 언어 모델은 다양한 텍스트 생성 작업을 수행할 수 있다.

GPT는 텍스트를 이해하고, 새로운 텍스트를 생성하는 능력이 매우 뛰어나다.

  • Machine Translation (기계 번역): 기계 번역은 생성 모델을 사용하여 다양한 언어로 텍스트를 변환하는 작업이다.
  • Code generation (코드 생성 모델): 자연어 설명을 기반으로 코드를 생성할 수 있다.

Video Generation

비디오 생성 모델도 발전하고 있다.

위와 같이 텍스트 설명을 기반으로 짧은 비디오를 생성할 수도 있고 다양한 비디오 클립을 결합하여 하나의 콘텐츠를 생성할 수도 있다. 비디오 생성 모델은 텍스트나 이미지 시드로 제어가 가능하다.

Utilization of Generative Model


생성 모델은 Decision Making and Robotics (결정 제어 및 로봇 공학 분야에서도 사용된다. 예를 들어, 자율 주행 자동차 등에 사용될 수 있다.

뿐만 아니라, 화학 및 생명 공학 분야에서도 생성 모델이 중요한 역할을 한다. 예를 들어, 특정 속성을 가진 분자나 단백질을 설계하는 데 사용될 수 있다.

이외에도, 3D 객체 생성, 음악 생성 등 다양한 분야에서도 활용된다.

Ethical Issues in Generative Models

생성 모델은 다양한 분야에서 활용되며 많은 발전을 이루고 있지만, 이에 따른 윤리적인 문제도 인식을 해야 한다. 예를 들어, 딥페이크와 같은 기술들은 다양한 범죄에 악용될 수 있기 때문에 이를 방지하기 위한 논의도 필요하다.

profile
M. Sc in Computer Science and Engineering, Mar 2024 to present / B. Sc in Computer Engineering, Mar 2020 to Feb 2024

0개의 댓글