생성 모델링 (generative modeling)이란 주어진 데이터셋과 유사한 데이터셋을 생성하도록 모델을 훈련하는 머신러닝의 한 분야,

훈련 데이터의 말에 대해서, 말을 잘 정의할 수 있는 픽셀값들의 관계를 학습하여, 새로운 말을 만들어낼 수 있는 것이다.

훈련 데이터 중에서 하나의 데이터를 샘플이라 부르고, 각 샘플은 많은 특성(feature)들로 이루어져 있다. 

이미지 생성의 경우, 특성이라 함은  픽셀값이라고 할 수 있다.

텍스트 생성의 경우, 특성이라 함은 단어 혹은 문자의 그룹일 수 있다.

 

이미지 생성의 경우, 원본 이미지와 같은 새로운 이미지를 만들어내는 것은 매우 어렵다고 함.

픽셀 값이 가질 수 있는 경우의 수가 너무 많은데, 이 중에서 아주 작은 수의 조합 생성하려는 개체에 대한 이미지를 구성하기 때문이다.

 

생성 모델은 또한 결정적(deterministic)이 아닌 확률적(probablistic)이여야 한다.

-> 매 번 동일한 결과값이 아닌, 다양한 결과를 뱉어내야 하기 때문 (생성 모델은 랜덤한 요소를 모두 포함해야하기 때문)

1.1 생성 모델링과 판별 모델링

어떠한 개념을 잘 이해하는 방법 중에는 그 개념과 반대되는 개념을 이해하는 것도 도움이 된다.

생성 모델링(generative modeling)과 판별 모델링(discriminative modeling)이 그 예이다.

 

판별 모델링은 보통 머신러닝의 개념과 익숙하다고 할 수 있다.

또한 판별 모델링이란 생성 모델링과 다르게 각 샘플에 레이블(label)이 있어야 한다.

먼저 반 고흐의 많은 작품들을 훈련 데이터로 학습을 시켜서 어떠한 그림이 들어오면 반 고흐가 그렸는지(아닌지) 판별하는 훈련을 가정해보자.

이진 분류로 가정한다면 반 고흐 그림이면 1, 아니면 0인 레이블이 있는 것이다.

 

결론적으로는 아래 그림과 같다.

 

1.3 생성 모델링과 AI

왜 생성형 AI가 GOAT인가?

-> 1. 순전 이론적인 관점에서 단순 데이터 분류하는 판별 모델링에 그쳐서는 안된다!

        (레이블을 넘어 데이터분포를 완전 이해해야 하는 개념으로 확장시켜야 한다는 점에서)

 

-> 2. 생성형 AI는 강화 학습같은 다른 AI 분야를 선도하기 때문이다.

        (예시로 로봇의 기동 훈련에서, 어떻게 기동할 것인지에 대한 반복적인 훈련이 아닌,

         독립적으로{자율적으로} 수행할 수 있어 매우 효율적으로 바뀔 수 있다.)

 

-> 3. 강 인공지능과 같이, 인간과 견줄 수 있는 AI가 만들어진다면, 반드시 생성형 AI기반일 수 밖에 없다는 점이다.

         창의적인 생각, 창작물과 같은 분야는 인간 고유의 영역이기 때문.

 

 

2. 간단한 생성형 모델

좌표평면위에 어떠한 데이터 포인터를 분포 시키고 실습해보자.

좌표평면 위의 집합 X를 생성, 같은 규칙으로 생성된 것 같은 이 공간의 다른 점들을 선택하는 것이 목표

 

그렇다면 어디를 선택하겠는가? 우선 범위로 따진다면, 주황색 박스 안에서만 데이터 포인터가 있을 것이라 예측할 것이다. ( 기존 데이터 포인터와 같은 원리인 것을 가정한다면)

그러면 당신은 첫 생성 모델링을 성공한 것이다!

 

2.1 생성 모델링 프레임워크

이제 맨 처음 데이터 포인터들의 근거를 알아보자. 

 

1. 세계지도의 대륙 위에서 위치할 것.

2. 바다는 포인터가 찍히지 않을것.

3. 주황색 박스 안에서 찍혀야 할 것

위 그림의 A,B,C 모델을 통해서 해석해보자면,

A는 바다에 찍혀있기 때문에 원본 데이터셋이 아니고, 생성 모델이 찍은 포인터이다.(실패)

B는 대륙위에 찍혀 있지만 주황색 박스 밖에 위치해 있기 때문에 A와 마찬가지로 생성 모델이 찍은 실패 포인터

C는 성공한 모델.

 

이 예제는 쉽고 단순해 보이지만 생성 모델링의 아주 중요한 기본 개념이다. 

 

2.2 표현학습

표현(representation)의 의미에 대해서는 심도 있게 생각해볼 필요가 있다.

이 책 뿐 아니라, 인공지능 학습 전반에 걸쳐 "고차원 데이터"를 "표현"한다는 의미는 매우 중요하기 때문이다.

 

먼저 표현학습의 핵심 아이디어를 알아보자.

당근마켓에서 나는 판매자A와 신도림역에서 거래를 하기로했다. 나와 A는 서로를 알지 못한다.

수많은 인파속에서, 나는 A를 만나기위해 나의 생김새를 설명해야한다. 여기서 나는 (1,1,16),(1,2,15) 이렇게 픽셀값으로 전달하지 않고, 안경을끼고 있고, 검은색 코트를 입고 있다 등과 같이 설명할 것이다. 이런 설명들이 많아진다면 A는 머릿속에 내 이미지를 상상할 수 있을것이다.

이것이 표현학습의 핵심 아이디어이다.

 

고차원의 표본 공간을 직접 모델링 하는 방식이 아닌, 저차원의 잠재 공간을 이용, 훈련 세트의 각 샘플을 표현하고 이를 원본 공간의 포인트에 매핑한다. -> 따라서 잠재 공간의 각 포인트는 고차원 이미지에 대한 표현이라고 할 수 있다.

  

이 깡통은 높이와 너비라는 두 가지 feature로 정의할 수 있다. 이 말인 즉슨, 고차원 이미지(3차원)가 저차원(2차원)상의

x(높이), y(너비) 두 가지로 표현할 수 있다는 것이다. 이를 통해서 모델을 훈련하게 되면, 큰 장점이 하나 있다.

 

"잠재 공간에서 표현 벡터 값을 수정하여 이미지의 고수준 속성에 영향을 주는 연산을 (쉽게)할 수 있다는 점"이다.

-> 고차원에서 이미지가 input 되었을 때, 높이를 키우려면 개별 픽셀을 어떻게 조정할 지 복잡하다.

    (높이 키우고 RGB값 조정 등) 하지만, 잠재공간에서 이는 단순 높이라는 feature만 조정하면 되기 때문!!

 

위 개념에 대해서 더 자세히 들어가보자.

훈련 데이터 셋을 잠재공간으로 들이기 위해서는 "인코딩(encoding)" 작업이 필요하다.

인코딩 이후 잠재공간에서 샘플링을 한 후 디코딩(decoding)하여 원래 도메인으로 되돌아가는 개념으로 확장할 수 있다.

 

위 작업을 "인코더-디코더"라고 하고, 이는 데이터가 놓여있는 고차원 비선형 매니폴드를 샘플링 가능한 잠재공간으로 변환한다. 아래 그림을 통해 이해해보자.

 

다른 종 강아지 세 마리와 사과, 자동차 이미지가 있다고 해보자.

당연하게도 강아지 세 마리는 모두 매우 유사한 거리를 가질 것이고, 사과와 자동차와 개는 상대적으로 거리가 멀다.

 

- 매니폴드 : "데이터가 존재하는 공간"

- 매니폴드에 대한 가정: "고차원일지라 하더라도, 집합을 포함하는 저차원의 매니폴드는 존재한다."

- 흥미로운 진실 : 고차원 상에서는 가까운 데이터 -> 실제로는 가깝지 않다.

                            저차원 상에서는 가까운 데이터 -> 가깝다!

 

따라서 아래 그림-> 고차원 매니폴드를 저차원으로 변환 -> 강아지들끼리의 유사도를 매핑할 수 있다는 것 같다.

 

참고:<매니폴드에 대한 이해>

https://blog.naver.com/coniecual/221417921857

 

매니폴드(manifold)란 뭘까?

논문을 읽을 때, manifold라는 단어가 많이 나와서 한 번 찾아봤었는데,  그래도 막 명확히 와닿지 않...

blog.naver.com

 

 

1.3 핵심 확률 이론

생성 모델링이 확률분포의 통계적 모델링과 밀접하게 연관이 되있음을 살펴보았다.

이 파트에서는 딥러닝, 생성형 AI와 관련된 핵심 확률/통계 개념에 대해서 알아보도록 하자.

 

1. 표본공간

- 샘플 x가 가질 수 있는 모든 값의 집합

 

2. 확률 밀도 함수 (=밀도 함수)

- 포인트 x를 0과 1의 숫자로 매핑하는 함수 p(x).

- 표본 공간에 있는 모든 포인트에 대해 밀도 함수를 적분했을 때 1이 되는 함수.

 

3. 모수 모델링

- 안정적인 P ^ model(x)을 찾는데 사용하는 기법.

- 모수 모델은 유한한 개수의 파라미터(θ)를 사용해 기술할 수 있는 밀도 함수 p(x)의 한 종류.

 

4. 가능도(likelyhood)

- 파라미터 집합 θ의  가능도{L(θ|x)} = 관측된 포인트 x가 주어졌을 때 θ의 타당성을 측정하는 함수.

- 입력으로 주어진 확률분포(=파라미터(세타))가 얼마나 데이터를 잘 설명하는 나타내는 점수

-> 데이터를 잘 설명한다 -> 해당 확률 분포에서 높은 확률 값을 가지는 것을 말함

이게 뭔소리노?

쉽게 이해해보자. 확률과 우도를 같은 선상에서 이해하면 와닿을 수 있다.

 

일반적으로 확률을 떠올리면 이산형 확률 변수를 생각하기 쉽다. ex) 동전-> 앞면 나올 확률 등

하지만 연속형 확률 변수라면? ex) 지하철 화장실 변기를 열었을 때 똥이 있을 확률 등

 

여기서는 고양이 몸무게의 확률 변수에 대해서 가정해보자. ex) 고양이 몸무게가 4kg~5kg 사이일 확률은?

확률: 입력 데이터는 변하지만 분포는 고정되어 있는 상황!

 

 

이에 반해 우도는 입력 데이터는 고정되어 있고, 분포가 변한다.(데이터가 주어졌을 때, 분포가 데이터를 잘 설명하는가)

좌측과 우측을 보면 알겠지만 서로 다른 분포를 가진다. (데이터는 고정)

여기서, 고양이 몸무게가 5kg 일 때의 likelihood는 오른쪽이 0.7979로 훨씬 더 높다.(더 잘 설명하는 것(값 높기 때)

"좌측의 분포보다, 우측의 분포가 주어진 데이터들 더 잘 설명한다, 발생가능성이 더 높다" 라 설명할 수 있음 

데이터가 주어졌을때 분포가 데이터를 얼마나 잘 설명하는가  --> 이게 사실 머신러닝의 주 목적이라 할 수 있다.

 

참조: https://huidea.tistory.com/276 

 

[Machine learning] 우도(likelihood) 총정리 (MLE, log-likelihood, cross-entropy)

머신러닝을 수식 기반으로 뜯어보면 우도 개념이 빈번히 등장하는데, 우도 개념을 확실히 잡고 가보려한다. 우도는 분류 문제의 loss function 으로 Maximum log-likelihood (MLE)로 등장한다. 우도를 이해

huidea.tistory.com

따라서, 우리는 이 likelihood(우도)를 최대화 하는 방향으로 모델을 학습시켜야 겠지??

이를 MLE(Maximum Liklihood Estimation) 최대 우도법이라 하는 것이다.

 

 

L(θ|x) = p(x)라 정의됨.

-> 포인트 x가 주어졌을 때 θ의 가능도는 포인트x에서 θ를 파라미터로 가진 밀도 함수의 값으로 정의.

독립된 샘플로 구성된 전체 데이터 셋 X가 있다면 다음과 같이 쓸 수 있다.

L(θ|x) = ∏ p(x)

0과 1사이의 숫자를 곱하는 일은 계산 비용이 많이 들기 때문에 로그 가능도를 ℓ 대신 사용하는 경우가 많다고 한다.

L(θ|x) = ∑ log p(x)

 

 

일반적으로 모델링 할 때 손실함수를 최소화하는 방향으로 진행한다.

따라서, 음의 로그 가능도를 최소화하는 파라미터 집합을 찾는 것 과 같다고 할 수 있다.

 

참조:

https://89douner.tistory.com/339

 

1. Representation Learning 이란?

안녕하세요. 이번글에서는 representation learning이라는 개념에 대해서 설명하려고 합니다. 개인적으로 2021년 동안 논문을 살펴보면서 가장 눈에 많이 띄었던 용어가 representation learning 이었습니다.

89douner.tistory.com

 

'딥 러닝 > 생성형 AI' 카테고리의 다른 글

05. 확산 모델 (Diffusion model)  (0) 2024.05.31
04. 적대적 생성 신경망(GAN)  (0) 2024.04.06
03. 변이형 오토인코더  (2) 2024.03.22
02. 딥러닝  (1) 2024.03.17

+ Recent posts