최근 몇 년 동안 생성 인공 지능(Generative AI)은 많은 주목을 받았습니다. 이는 이미지, 텍스트, 음악 등 다양한 형태의 데이터를 생성할 수 있는 능력 때문입니다.
이 중에서 특히 주목받는 두 가지 알고리즘은 변이형 오토인코더 (Variational Autoencoder, VAE)와 생성적 적대 신경망(Generative Adversarial Network, GAN)입니다. 이 알고리즘들은 각각 데이터 생성에 대한 접근 방식이 다르므로 장단점이 다릅니다.
저 또한 AI를 연구하는 연구자지만, VAE와 GAN의 메커니즘은 기본적으로 좀 다릅니다. 먼저, VAE(한국말로는 변이 오토 인코더라는 용어를 씀)는 단순히 입력 데이터를 압축하고 잠재 공간이라는 병목 현상을 통과한 다음 재구성된 데이터가 원본 데이터에 최대한 가깝도록 재구성하는 오토인코더의 아이디어를 확장합니다.
VAE 알고리즘에 대하여
(주의: 전문적인 설명으로 다소 친절하지는 않을 수 있습니다) VAE는 이 프로세스에 임의성을 부여하여 생성된 데이터를 본질적으로 더욱 다양하게 만듭니다. 이때 인코더와 디코더의 융합인 VAE는 전자가 입력 데이터를 잠재 변수 분포로 변환하는 것을 수반합니다. 이 잠재 변수의 본질은 잠재 공간 내에서 샘플링을 생성하는 중추 요소인 평균과 분산을 통한 표현에 있습니다. 따라서 디코더의 역할이 중요해집니다.
즉, 이러한 샘플을 원래 데이터 형식의 자손으로 다시 되살리는 것(디코딩)입니다. 요약하면 VAE는 인코더 및 디코더 듀오와 통신합니다. 하나는 입력 데이터에서 의미를 만들어내는 것이고, 다른 하나는 재구성된 형태로 그 의미에 다시 생명을 불어넣는 것입니다. VAE의 핵심 개념은 입력 데이터를 잠재 공간의 가우스 분포에 매핑하는 것입니다. 이 매핑의 주요 목적은 생성된 샘플이 원본 데이터 세트의 데이터 분포와 밀접하게 일치하는지 확인하는 것입니다. VAE의 손실 함수는 두 부분으로 구성됩니다.
첫째, 재구성 손실(Reconstruction Loss)입니다. 이는 디코더가 원본 데이터를 얼마나 잘 복원하는지를 측정합니다. 둘째, 정규화 손실(Kullback-Leibler Divergence, KL Divergence)입니다. 재구성 손실은 일반적으로 입력 데이터와 복원된 데이터 간의 차이를 나타내는 평균 제곱 오차(Mean Squared Error, MSE)를 사용합니다. KL Divergence는 두 분포 간의 차이를 정량화하여, 잠재 공간이 가우시안 분포를 따르도록 유도합니다. 이들은 잠재 변수의 분포와 가우시안 분포 사이의 차이를 최소화하는 역할을 합니다.
GAN은 어떤 알고리즘일까?
(잠깐: 저 같은 수포자에게는 앞선 VAE보다는아래 GAN이 더 직관적으로 이해하기 좋습니다.)
2014년에 Ian Goodfellow는 경쟁 방식으로 학습하는 생성 모델과 차별 모델이라는 두 가지 모델로 구성된 GAN이라는 알고리즘을 도입했습니다. 이 방법은 고품질의 데이터를 생성하는 데 놀라운 능력을 보여주었습니다. GAN의 목표는 이 두 모델이 함께 발전하면서도 서로 반대되는 방식으로 발전하는 것입니다. GAN을 구성하는 두 가지 주요 요소는 생성기와 판별기입니다. 생성기는 잠재 공간에서 샘플을 생성하여 판별자에게 전달합니다. 그런 다음 수신한 데이터가 실제 데이터인지 생성된 데이터인지 구별하는 것이 판별기의 임무입니다.
이에 대응하여 생성자는 이 판별자를 속일 수 있을 만큼 실물과 같은 데이터를 생성하는 것을 목표로 하고, 판별자는 무엇이 진짜이고 무엇이 아닌지를 판단하는 문지기로서의 역할을 정확하게 수행하려고 합니다. 궁극적으로, 앞에 제시된 각 사례에 대해 판별자는 확실하게 입장을 취하고 그것이 실제 관찰에서 나온 것인지 아니면 생성기에 의해 조합된 것인지 말할 수 있어야 합니다. GAN의 손실 함수에는 이분법이 있습니다. 생성기와 판별기가 서로 다른 목적을 갖고 있기 때문에 두 구성요소로 나뉩니다. 전자는 판별기 출력이 실제 데이터에 대해 1이고 생성된 데이터에 대해 0이 되도록 노력하는 반면, 역설적으로 후자는 동일한 토큰으로 학습합니다. 즉, 생성자는 생성된 데이터를 실제 데이터로 인식하도록 판별자를 훈련시킵니다.
생성적 적대 신경망(GAN)은 생성자와 판별자가 점진적으로 지식을 획득하는 학습 프로세스를 통해 진화합니다. 처음에 판별자는 실제 데이터와 인위적으로 생성된 데이터를 구별하는 방법을 배웁니다. 그 후, 생성기가 숙달되면 판별자의 정밀 조사를 능가하는 향상된 데이터를 생성하여 보답합니다.
각 주기 반복을 통해 이 두 모델은 성장하고 결국 생성기가 고품질의 현실적인 데이터를 생성할 수 있는 지점까지 성숙해집니다. 프로세스는 수렴이 달성될 때까지 판별자에게 세련된 판별 능력을 부여하고 생성자에게 데이터 생성 능력을 향상시키는 과정을 번갈아 가며 수행됩니다. GAN은 매우 현실적인 데이터를 생성하는 데 탁월한 능력을 발휘합니다.
생성자와 판별자 사이의 경쟁적인 학습 과정에서 생성자는 함께 진화할수록 점점 더 복잡한 데이터를 생성하도록 강요되기 때문입니다. 따라서 GAN은 다양한 사용 사례에서 뛰어난 성능을 보여주는 고해상도 이미지 생성, 스타일 변환 및 이미지 복원과 같은 다양한 응용 프로그램에서 탁월한 결과를 보여주면서 크게 뛰어났음을 알 수 있습니다. 반대로, VAE가 사용하는 확률적 방법으로 인해 VAE의 데이터 품질은 GAN에 비해 열등할 수 있습니다. 그럼에도 불구하고 VAE는 데이터 분포를 정확하게 묘사하는 데 탁월하여 품질이 낮음에도 불구하고 다양성이 높습니다. 이는 데이터가 특정 분포를 따르는 것으로 알려진 작업에 여전히 효과적일 수 있습니다.
그래서 결론이 뭔데: VAE와 GAN의 차이
VAE와 GAN의 생성 방법은 크게 다릅니다. VAE는 확률적인 방식으로 데이터를 생성합니다. 예를 들어 VAE는 먼저 입력 데이터를 잠재 공간의 분포에 매핑합니다. 그런 다음 이 매핑된 분포에서 샘플을 생성하여 데이터를 다시 가져옵니다. 반대로, GAN은 생성자와 판별자가 데이터를 가장 잘 생성하는 방법을 배우기 위해 게임을 하는 적대적 방법을 사용합니다. 결과적으로 VAE를 통해 생성된 데이터는 GAN에 비해 품질이 낮을 수 있지만 원본 데이터세트의 분포 패턴을 밀접하게 모방합니다.
이처럼 VAE는 상당히 안정적이고 명확한 프로세스, 즉 명확하게 정의된 손실 함수(노이즈를 최소화하는 인공지능의 계산 함수)로 유명합니다. 인코더와 디코더가 함께 작동하므로 학습 프로세스가 안정적으로 이루어지며 빠른 계산적 수렴이 가능합니다. 그러나 GAN의 학습 과정이 완전하다는 말은 아닙니다.
생성자와 판별자가 모두 경쟁 모드에 진입하면 여러 가지 이유로 수렴되지 않을 수 있는 복잡한 노이즈가 포함되는 경우가 많습니다. 그 중 하나는 모드 축소입니다. 이는 소수의 특정 데이터만 생성하여 생성기에서 생성된 데이터의 다양성 부족으로 이어질 수 있습니다. 이러한 상황을 모드 붕괴라고 합니다.
반대로 GAN은 특히 고해상도 이미지 생성과 스타일 전송에서 탁월한 결과를 보여줍니다. 예를 들어 GAN을 사용하여 저품질 이미지를 고화질로 변환하거나 GAN을 사용하여 한 장르에서 다른 장르로 사진을 변환하는 것이 있습니다. GAN은 비디오 제작뿐만 아니라 텍스트 생성도 가능합니다.
이 둘의 차이를 잘 알고 있다는 것은 생성AI 시대에 어떤 알고리즘을 탐색하고 선택할 것인지 데이터 과학자로써 고민할 줄 아는 역량을 의미하기도 합니다. 예비 데이터 과학자들은 과거부터 오늘날까지 VAE와 GAN으로 대표되는 생성AI 알고리즘의 기초에 관해 조금씩은 모두 알 필요가 있습니다. 사실 이 모든 건 저 같은 수포자에게는 겨우겨우 조금씩 이해되는 것들이 많기는 합니다. 그래서 이런 개념을 처음 접할 때 도움을 받았던 인공지능 만화 한 편을 투척해둡니다. 여러분에게 도움이 되기를(?)
[보충 자료] 쉽고 빠르게 읽을 수 있는 인공지능 만화(생성 AI편) ▼
'IT 뉴스' 카테고리의 다른 글
컴퓨터 비전과 자연어처리의 결합: '트랜스포머'라는 이름의 혁명 (0) | 2024.07.19 |
---|---|
AI 기반 추천시스템의 진화와 한계, 전망 (0) | 2024.07.17 |
윤리와 인공지능에 대한 고찰: 개발자의 여정 (0) | 2024.03.05 |
몰입형 경험 만들기: VR/AR에서 사용자 경험 탐색 (0) | 2024.03.05 |
의료 데이터 분석에서 지능형 시스템의 역할 (0) | 2024.03.05 |