생성적 적대적 네트워크란 무엇인가요? 쉬운 가이드

생성적 적대적 네트워크란 무엇인가요? 쉬운 가이드
인공 지능(AI)은 캄브리아기 폭발을 겪고 있습니다. 불과 얼마 전까지만 해도 공상 과학 소설처럼 보였던 인공지능은 지난 몇 년 동안 현실을 향해 달려왔습니다. 그리고 [ChatGPT]와 같은 도구의 출시로 인해 관심은 더욱 커지고 있습니다. 하지만 캄브리아기 폭발과 마찬가지로 AI의 진화적 도약에서 나오는 것은 한 가지가 아닙니다. 실제로 AI 소프트웨어는 여러 방면에서 동시에 발전하고 있습니다.
이 글에서는 이러한 AI 유형 중 하나인 다양한 작업 유형에 사용되는 효과적인 AI 모델인 생성적 적대적 네트워크에 대해 이야기해 보려고 합니다.
차별적 적대 신경망과 생성적 적대 신경망의 차이점
동물 화석을 영역, 왕국, 문으로 분류하는 것처럼 AI 네트워크도 분류합니다. 가장 높은 수준에서는 AI 네트워크를 "차별적"과 "생성적"으로 분류합니다. 생성형 신경망은 새로운 것을 만들어내는 AI입니다. 이는 이미 존재하는 것을 특정 버킷으로 분류하는 차별적 네트워크와는 다릅니다. 지금 우리가 하고 있는 것처럼 생성적 적대 신경망(GAN)을 적절한 분류로 버킷화하는 것과 비슷합니다.
예를 들어, [미드여정과 같이 텍스트 태그를 사용해 새로운 시각적 이미지를 만들고자 하는 상황이라면 생성 네트워크를 사용할 것입니다. 하지만 분류하고 태그를 지정해야 할 데이터가 엄청나게 쌓여 있다면 판별 모델을 사용할 것입니다.
생성적 적대적 네트워크는 어디에 속할까요?
이름에서 알 수 있듯이 GAN은 생성형입니다. 하지만 사실 이 두 번째 단어도 중요합니다. GAN은 판별 모델과 생성 모델을 모두 영리하게 응용한 것입니다. GAN 모델은 분류된 초기 훈련 데이터 그룹으로 훈련합니다. 그런 다음 생성 모델은 모델에 적합하다고 생각되는 새로운 인스턴스를 생성하려고 시도합니다. 두 번째 단계로 판별 모델은 생성된 콘텐츠와 학습 세트 콘텐츠를 모두 받게 됩니다. 이 모델은 콘텐츠를 생성된 콘텐츠 또는 학습 세트의 일부로 분류하려고 시도합니다.
이것이 GAN 약어의 적대적 부분입니다. 모델의 생성 부분은 판별 모델을 안정적으로 '속일' 수 있을 때까지 더 나은 콘텐츠를 계속 생성하려고 노력합니다. GAN의 기본 목표는 고품질 콘텐츠를 생성하는 생성 모델을 훈련하는 것이지만, 이를 위해 생성 모델과 판별 모델을 모두 사용합니다.
감독형과 비감독형 비교
판별형과 생성형이라는 도메인 분류에 이어 다음 분류 버킷은 모델이 "감독형"인지 "비감독형"인지 여부입니다. 이 분류는 조금 더 모호할 수 있는 분류입니다. 지도/비지도 분류는 유익하지만, 많은 유형의 AI 모델이 하이브리드 접근 방식을 사용합니다. 이름에서 알 수 있듯이 지도 모델은 일반적으로 훈련 단계에서 사람의 감독이 포함됩니다. 지도 모델의 훈련 단계에는 여러 차례의 초기 입력과 원하는 출력이 포함됩니다.
비지도 모델은 이름에서 알 수 있듯이 사람의 입력이 적거나 전혀 없이 작동합니다. 목표는 모델이 원래의 학습 집합을 가지고 각 라운드마다 더 나은 콘텐츠를 생성하기 위해 점점 더 개선되는 여러 라운드의 학습을 거치는 것입니다.
생성적 적대적 네트워크는 어떤 유형인가요?
GAN은 비지도 AI 모델입니다. 적대적 학습 주기를 반복하는 방식은 생성된 콘텐츠를 지속적으로 개선하도록 설계되었습니다. GAN으로 작업하는 개발자는 초기 데이터 학습 세트의 고품질 분류를 제공하고 여러 번의 반복을 실행할 수 있는 컴퓨팅 성능을 제공해야 합니다. 하지만 필요한 리소스를 제공한 후에는 최소한의 사람 개입만으로 GAN을 실행할 수 있습니다.
생성적 적대 신경망과 합성곱 신경망의 비교
GAN을 처음 접하는 개발자들이 가장 많이 하는 질문은 합성곱 신경망(CNN)과의 관계에 관한 것입니다. CNN은 기존의 라벨링된 콘텐츠를 기반으로 데이터를 분류하는 데 사용되는 일종의 판별 모델입니다. 많은 GAN의 경우, 학습 주기를 처음 시작할 때 생성된 콘텐츠에 도전하는 판별 모델로 CNN을 사용합니다. CNN은 컴퓨터 이미지 인식 아키텍처에서 사용하기 위해 이미지를 분류하는 데 자주 사용됩니다.
CNN은 GAN 아키텍처에서 생성 단계로 사용되기도 합니다. 생성 단계의 출력으로 콘텐츠를 생성하기 위해 CNN을 사용하려면 일반적으로 기존 CNN을 사용하는 대신 [변형 자동 인코더]와 같은 추가 로직을 추가해야 합니다. 이 도구를 기존 CNN과 함께 사용하면 GAN 학습 프로세스의 생성 단계와 적대적 단계 모두에 CNN을 사용할 수 있습니다.
자주 묻는 질문 ## 자주 묻는 질문
이제 GAN이 무엇이고 어떤 기능을 하는지 꽤 잘 알았으니, GAN에 대해 자주 묻는 몇 가지 질문과 프로젝트에 GAN을 선택하는 이유에 대해 알아봅시다.
GAN의 일반적인 용도는 무엇인가요?
GAN의 가장 큰 장점 중 하나는 다양한 콘텐츠의 실제 사례를 생성할 수 있다는 것입니다. 올바른 종류의 학습 데이터가 주어지면 텍스트 기반 프롬프트를 사용하여 다음과 같은 종류의 콘텐츠를 생성할 수 있습니다:
- 이미지
- 오디오 콘텐츠(음악 등)
- 흑백 이미지를 컬러로 변환하기
- 손으로 그린 스케치를 사실적인 표현으로 변환하기
- 이전 프레임을 기반으로 향후 비디오 프레임 예측하기
- 딥페이크 만들기(https://www.theguardian.com/technology/2020/jan/13/what-are-deepfakes-and-how-can-you-spot-them)
생성적 적대적 네트워크를 선택하는 이유는 무엇인가요?
지금까지 GAN이 어떻게 분류되는지, 어떻게 작동하는지, 무엇을 할 수 있는지에 대해 많은 이야기를 나눴습니다. 하지만 왜 GAN을 사용해야 하는지에 대한 간단한 질문에는 답하지 못했습니다. GAN을 사용하는 이유 중 하나는 학습에 사용할 데이터 세트가 많지 않은 문제를 처리할 때입니다. GAN의 특성은 제한된 양의 훈련 데이터로 작업한 다음 GAN이 더 많은 데이터를 생성하여 훈련 루틴에 피드백하도록 할 수 있다는 것입니다. 많은 머신 러닝 시스템은 상당한 양의 사전 레이블이 지정된 데이터로 학습시켜야 합니다. GAN을 사용하면 이러한 요구 사항이 없습니다.
또한 GAN은 이미지 작업과 생성에 특히 강합니다. 텍스트 프롬프트에서 새 이미지를 만들거나 생성된 콘텐츠로 입력 이미지를 업데이트하는 등, GAN은 시각적으로 인상적인 결과를 제공한다는 점에서 매우 흥미롭습니다.
생성적 적대적 네트워크를 사용하지 않는 이유는 무엇인가요?
GAN 도입을 고려하고 있다면 몇 가지 단점을 고려해야 합니다. 우선, 저렴한 비용으로 모델을 훈련시키려는 경우 GAN은 적합하지 않습니다. GAN은 여러 단계의 트레이닝 주기와 여러 차례의 트레이닝을 거쳐야 하기 때문에 특히 트레이닝 비용이 많이 듭니다. 따라서 엄격한 예산을 준수하려는 경우 GAN을 채택하는 것은 좋은 선택이 아닐 수 있습니다.
또한 GAN은 때때로 [모드 축소]라고 알려진 과정을 거치는데, 이 과정에서 출력되는 콘텐츠가 원하는 다양한 범위가 아닌 제한된 훈련 데이터의 하위 집합이 될 수 있습니다.
GAN은 적합할 때 큰 유용성을 제공합니다.
진화론적 비유로 다시 돌아가서, GAN은 게나 거북이가 아닙니다. 몇 년 후에도 여전히 같은 역할을 하고 있을 동물이 아닙니다. 대신 GAN은 진화하고 있습니다. 연구자들은 GAN이 무엇을 할 수 있는지, 어떻게 하면 가장 잘 설계하고 훈련시킬 수 있는지 계속 알아내고 있습니다. 워크플로우에 머신 러닝을 도입할 생각이라면 GAN을 연구해 보는 것도 의미가 있지만, 자신의 업무에 적합한 도구가 아닐 수도 있습니다. 적합하지 않은 것 같다면 적합하지 않은 업무에 무리하게 도입하는 것은 피해야 합니다. 하지만 이미지 조작이나 제작 등 GAN에 적합한 작업을 하고 있다면 GAN을 도입하고 교육하면 워크플로우에 큰 도움이 될 것입니다.
비용 효율적인 벡터 데이터베이스 알고리즘인 [질리즈]를 확인해 보세요.