
Comment :
Generative Artificial Intelligence, 간략히 Gen AI 에 대한 (개념적인) 학습을 위하여 생성형 AI가 무엇인지, 어떤 종류가 있는지, 어떠한 메커니즘으로 동작하는지 대강대강 알아보려한다. 해당 글에서는 알고리즘, 코드 등의 개념은 배제할거임.
[+] Generative : 생산능력이 있는, 번식력이 있는, 생성적인
gene-라는 어원에서 출발하였다고 볼 수 있으며, 해당 어원에서는 새끼를 낳다, 자녀, 아이, 인종, 종족 등의 단어가 발생하였다.
단어의 뜻에서 알 수 있듯이 심플하게 Generative AI는 무엇인가를 만들어내는 인공지능이라는 뜻이다.
Artificial Intelligence, 즉 인공지능의 범주에는 Machine Learning, Deep Learning등의 분야가 존재하고 이들은 주로 실제 사람이 원하는 어떠한 출력물을 배출해낸다.
사람이 원하는 어떠한 질문에 대한 답변을 구하는 과정을 컴퓨터에게 일임하여 실제 사람이 봐도 만족스럽게, 실제 사람이 생각하고 추론한 답변과 유사한 출력물을 뱉게 하는 것이 인공지능의 목적이라고 볼 수 있다. (계산기, 컴퓨터와의 차이는 계산하는것과 추론하는것의 차이정도일까?)
따라서 인공지능은 어찌보면 사람의 뇌와 같은 (수학적) 함수, 즉 Function과도 많이 유사하다. 어떠한 입력을 넣으면 출력을 뱉어주는 함수... 이러한 함수적 개념을 주로 AI,ML,DL에서는 '모델'이라고 이야기하며, 모델을 통하여 다양한 종류의 입력과 출력을 얻을 수 있다.
인공지능 발전의 역사를 '입출력값의 변화'라는 갈래로 본다면...
컴퓨터 연산이라는 것이 결국 Binary 계산이므로 과거에는 단순한 숫자값들을 넣어 단순한 숫자값들을 받았고, 이러한 숫자값을 인간에게 친화적으로 표현하는 방법과 연산량, 기술들의 발전으로 현재 그리고 미래에는 텍스트, 이미지, 오디오, 영상 등을 입력하고 출력할 수 있게 되었다고 볼 수 있다.
이처럼
들과는 다르게 텍스트, 이미지, 오디오, 영상과 같은 어떠한 'Content' (Google Cloud Tech 강의에서 사용한 단어)를 만드는 것을 생성형 AI라고 정의한다.
ChatGPT와 인터넷 검색등을 통해서 생성형 AI의 종류를 찾아본 결과 Autoregressive(RNN계열?), Encoding-Decoding을 활용한 방법, Generative Adversarial Network, Diffusion 등의 종류가 있다. 이제부터 메모할 내용은 정확하지 않은 개인적인 분류이다.
위에서 언급한 생성형 AI의 종류들을 개인적으로는 Sequence적 처리, 비Sequence적 처리로 구분하고자 한다. (어찌보면 Transformer 아키텍쳐가 Sequence적 처리 방법과 비Sequence적 처리 방법을 이어주는 가교역할을 했다고 생각한다. 순차적으로 처리하는 방법과 덩어리로 처리하는 방법?)
Sequence적 처리
Sequence와는 조금 다르지만 시간적이며 순차적인 시계열 데이터, Stock Price부터 생각해보자. 매우 기초적인 시계열 데이터의 예측방법은 바로 과거의 데이터를 통해서 바로 다음 미래의 데이터를 예측하는 것이다. 한시간전에 주식가격을 통해서 한시간후에 주식가격을 예측하는, 또한 이 예측한 주식가격을 통해서 바로 다음 미래의 주식가격 또한 예측할 수 있을것이다.
다음으로는 자연어 흐름에 대한 예측도 생각해보자. "I Love" 다음으로 나올 단어를 예측해야한다면 제일 눈여결 볼 데이터는 "Love"가 될것이다.
여기까지 생각하다보면 자연스럽게 주식가격, 자연어 흐름에 대한 예측방법에 대해서 어떤 생각이 떠오를 수 밖에 없다. 과거과거 데이터는 과거데이터와 종속 또는 연관되어 있는 것처럼 결국에는 (보유하고 있는, 알 수 있는) 모든 과거 데이터가 미래의 데이터에 영향을 끼칠것이다라는 생각. 한시간 후의 주식가격을 예측하려 할 경우 바로 현재의 가격 뿐만 아니라 하루 전, 일주일 전, 한달 전 등 모든 가격을 확인할 경우 보다 좋은 예측을 할 수 있을것이다. 또한 자연어 문장의 경우 문장 전체의 흐름이나 문맥흐름을 파악할 경우 더 좋은 예측을 할 수 있을 것이다.
따라서 순차적으로 처리는 하되, 과거의 많은 정보들을 최대한 효율적으로 사용하고자 하는 방법들이 생겨났다 (Hidden State, LSTM, Attention 개념 등)
이처럼 순차적인 데이터에 대한 순차적인 처리방법은 RNN(Recurrent Neural Network)계열의 LSTM, Autoregressive 이라고 볼 수 있다.
[+] Recurrent : 되풀이되는, 반복되는, 순환하는
cur- 이라는 어원은 '달리다, 흐르다'의 의미가 있으며 이는 달리고 흐르는 바로 지금의 느낌으로 '현재'라는 의미를 파생시키기도 한다. current는 전류의 흐름이라는 뜻도 있지만 '현재의'라는 의미도 있다. 따라서 Recurrent는 (시간적인 느낌으로) 다시,다시 달리고 흐르고 일어나는 의미를 가진다.
비Sequence적 처리
위에서 언급한 생성형 AI 모델(또는 아키텍쳐 등)을 제외하고는 조금 더 덩어리째로 처리하는 느낌인 모델들이 있다. (위에서 언급한 Stock Price나 자연어처럼 Sequence적이며 이전단계의 데이터를 이용하여 연쇄적으로 처리하는 방법이 아닌...) 주로 '이미지'를 처리하는 모델들을 생각하면 좋을것같다.
이미지 데이터의 경우 AutoEncoder, GAN(Generative Adversarial Network), Diffusion 모델들이 잘(?) 처리한다고 볼 수 있는데 이들이 '이미지' 데이터를 어떻게 입력받아서 처리하는지 대략적으로 설명하면 아래와 같다. (컴퓨터적으로 이미지 데이터는 색상을 생각하지 않는다면 사실 2차원 구조의 Array로 구성되어 있다고 볼 수 있다. 요 2차원 행렬의 맨 처음 Row부터 순차적으로 입력된다고 볼 수 있지만 Patch로 쪼개져서 처리되는점, 또한 하나의 픽셀이 해당 픽셀 이전의 픽셀과 무조건 연관있다고 보기 어려운점, 심지어 바로 이전의 픽셀을 정의하기도 힘듦! 으로 비Sequecne적이라고 기술함.)
(일단 아래에서는 생성형 AI모델로 사용되는 모델 케이스로 가정)

먼저 AutoEncoder에 대한 설명이다.
[+] Encode : 암호로 바꿔쓰다, 부호화하다
입력된 이미지 데이터를 Encoder로 압축하여 저차원의 Latent Space로 변환한다. 그 다음 이 압축된 Latent Space를 Decoder를 통해 다시 원래의 차원으로 복원한다. Encoder에 입력된 입력 데이터와 Decoder에서 출력된 출력 데이터와의 차이를 '손실'로 잡고 이를 최소화하는 방법으로 훈련을 진행하여 궁극적으로는 입력데이터와 매우 유사한 출력을 만들어낸다.

GAN의 경우에는 위에서의 Encoder-Decoder의 Generator, 즉 생성자 개념에다가 Discriminator, 즉 판별자라는 모델을 추가한 개념이다. 두 생성자와 판별자가 적대적으로 경쟁한다라는 점에서 착안한것인데.. Generator는 초기의 무작위 노이즈 벡터, 또는 Latent Space를 입력받아서 (강아지 이미지를 목표로) 출력물을 생성해내고 Discriminator는 Generator가 출력한 이미지를 보고 이게 강아지인지 아닌지를 판별한다. Generaotr를 위조지폐범, Discriminator를 경찰로 생각하여 보다 더 쉽게 이해할 수 있다.

Diffusion 모델의 경우에는 (위 사진처럼) 실제 데이터에 노이즈를 점진적으로 추가해나가면서 이미지를 훼손시킨다. 각 단계별로 노이즈를 다시 벗기는 작업, 즉 원상복구하는 작업을 훈련하여 이미지를 생성한다.
Sequence / 비Sequence로 생성형 AI를 구분함이 모호한 점
Attention, Transformer와 같은 개념처럼 결국 생성형 AI가 (인지, 기억, Focusing) 학습해야되는 것은 전체적일 수록 좋은것같다. 이전 순차의 데이터에 (보다 많이?)의존하는 느낌의 Sequence적 처리 모델들은 보다 더 이전의, 많은 양의 데이터를 보고싶어하게되면서 Sequence적으로 이어져있는 과거의 많은 양의 데이터에서 액기스만 추출하여 예측, 생성에 사용하는 방식으로 발전하였다. 따라서 Sequence적인 느낌이 있는 자연어 처리(생성) 모델과 비Sequence적인 느낌의 이미지 생성 모델은 서로 유사한 모델, 아키텍쳐 개념을 사용해나가고 있는 것 같다.
아래는 앞서 언급하였던 생성형 AI 모델들을 간략히 설명해주는 사진으로 참고 ㄱ
