GAN(생성적 적대 신경망)
GAN, 생성적 적대 신경망에 대해 이야기해 볼까 합니다. 최근 애플 인텔리전스의 이미지 생성 기능이죠. 이미지 플레이그라운드 기능이 재밌어 보여서 원리를 찾아보았습니다.
GAN이 워낙 이미지 생성 쪽에서 핵심 기술이라 주목받고 있는 것도 있죠. 그래서인지 애플도 GAN과 관련된 연구를 많이 진행해 왔습니다. 여기까지는 밝혀진 사실이고요, 이러한 사실을 미뤄볼 때 이번 이미지 플레이그라운드에서도 GAN이 활용됐을 가능성이 높지 않을까? 하는 생각에 GAN에 대해 소개드리면 좋을 것 같아 준비해 보았습니다.
기존의 이미지 생성 기술은 주로 규칙 기반 알고리즘이나 단순한 패턴 인식을 사용해서 예측 가능하고, 일정한 패턴을 따르는 이미지를 생성하는 데 유리하지만, 창의적이고 다양성이 있는 이미지를 생성하는 데는 한계가 있었습니다. 반면 GAN은 더 현실적이고 창의적인 이미지를 만들어낼 수 있습니다. 기본 원리를 말씀드리며 그 이유를 지금부터 설명드리겠습니다.
GAN은 2014년 이언 굿펠로우가 제안한 것으로 핵심 아이디어는 두 개의 신경망, 즉 생성자와 식별자를 동시에 학습시키는 것입니다. 이 두 신경망은 서로 적대적으로 경쟁하며 더 나은 성능을 얻습니다. 구체적으로는 가짜 이미지를 만드는 생성자와 이미지의 진위를 판별하려는 식별자가 서로 경쟁을 반복하면 가짜 이미지의 정밀도가 높아지도록 만드는 것이죠. 그렇게 컴퓨터가 새로운 이미지를 스스로 만들게 된다는 아이디어입니다.
좀 더 들어가면
생성자는 무작위 노이즈 벡터를 입력으로 받아, 이를 통해 새로운 데이터를 생성하는 역할을 합니다. 이 새로운 데이터는 실제 데이터와 구별되지 않을 만큼 사실적으로 만듭니다. 식별자는 생성자가 만든 데이터와 실제 데이터를 구분하는 역할을 합니다. 판별자는 입력으로 받은 데이터가 진짜인지 가짜인지 판별합니다. 식별자가 가짜 데이터를 진짜로 잘못 판별하면, 생성자는 더 사실적인 데이터를 생성하는 방향으로 학습을 계속하게 됩니다. 반대로, 판별자가 가짜 데이터를 잘 판별하면, 생성자는 다른 방식으로 더 나은 가짜 데이터를 만들어내는 방향을 모색합니다.
GAN의 학습 과정은 적대적 학습으로 설명할 수 있습니다. 생성자는 식별자를 속이기 위해 점점 더 정교한 데이터를 생성하고, 식별자는 이러한 데이터를 더욱 정확히 구별하기 위해 학습합니다. 이 과정은 마치 경찰과 도둑의 관계처럼 계속해서 도둑은 잡히지 않기 위해, 경찰은 잡기 위한 경쟁을 벌이는 것입니다. 간단한 아이디어에서 이렇게 발전시키다니 정말 대단한 것 같습니다.
GAN은 이러한 원리로 인해 창의적이고 품질 좋은 이미지를 생성할 수 있다는 장점을 가지고 있습니다. 그래서 의료, 광고, 엔터테인먼트, 심지어 저도 많이 쓰고 있습니다. 그런데 치명적인 단점이 존재합니다. 궁금해하실 것 같아 조금 길게 설명드리자면 생성기와 식별기의 균형을 맞추는 것이 여간 쉽지 않아 훈련에 어려움이 있다는 것입니다. 문제가 되는 이유는 한쪽이 너무 강해지면 다른 쪽이 학습을 제대로 하지 못하는 문제가 발생할 수 있기 때문입니다. 다른 단점으로는 모드 붕괴라는 현상이 있습니다. 이 현상은 gan이 다양한 이미지를 생성해야 하는데, 특정한 종류의 이미지에만 집중하여 다른 이미지를 생성하지 못하는 현상을 말합니다. 마지막으로 워낙 고품질 이미지를 생성하기 때문에 많은 계산 자원과 시간이 필요하여 리소스 소모가 심하다는 것입니다.
그래도 Wasserstein GAN, Progressive GAN등과 같은 보완 기술이 존재하기에 다행입니다.
GAN 활용 사례로는 존재하지 않는 새로운 얼굴을 만들어내는 딥페이크 기술이나, 저해상도 이미지를 고해상도로 변환하는 초해상도 기술 등에 활용이 됩니다. 뿐만 아니라 이미지 생성을 넘어서 음악을 생성하는 기술에도 활용된다고 합니다. 음악 생성이 되게 신기해서 원리를 궁금해하실 것 같아 특허를 살펴보았습니다.
‘gan에 기반한 멀티트랙 음악 생성 장치 및 그것을 이용한 복수 장르의 멀티트랙 음악 생성 방법’이라는 특허입니다. 제목을 보니 다양한 악기를 조합해서 음악을 생성해 준다는 것 같습니다. 특허를 한번 살펴보면 기본 뼈대는 악기 별로 음악 데이터, 그러니까 소리를 입력받아서 gan 알고리즘의 특징이죠. 계속 음악을 생성해서 진짜 음악처럼 들릴 때까지 돌린다는 것 같습니다.
활용 사례를 알아보며 이미지뿐만 아니라 음악도 생성할 수 있다는 것을 알 수 있었는데요. 이 외에도 동영상 생성도 가능하다 하니 다양한 분야에서 혁신을 가져올 것 같습니다. 또한 대세 기술인 멀티모달 ai 발전에도 촉매제 역할을 할 것 같네요. Gan이 앞으로 어떤 분야에 더 많이 활용될 것 같나요?