생성적 적대 신경망(GAN)이란 무엇인가요?

생성적 적대 신경망(GAN)은 두 개의 경쟁적인 신경망을 사용하여 새로운 데이터를 생성하는 딥 러닝 아키텍처의 한 유형입니다. 생성자와 분류자라는 두 개의 네트워크가 서로 대립하며 학습하여 더 정확한 출력을 생성하는 데 도움이 됩니다. GAN은 컴퓨터 비전, 로봇 공학, 이미지 생성, 동영상 합성, 자연어 처리 등 다양한 분야에서 유용하게 활용될 수 있습니다.

GAN의 작동 방식

GAN의 작동 방식을 이해하는 가장 좋은 방법은 비유를 사용하는 것입니다. GAN은 미술품 위조자(생성자)와 미술 비평가(분류자) 간의 경쟁에 비유할 수 있습니다.

  • 위조자(생성자): 위조자의 목표는 진짜 걸작과 구별할 수 없는 그림을 만드는 것입니다. 처음에는 시도가 서툴고 명백히 가짜입니다. 캔버스에 페인트를 뿌리는 것처럼 무작위 이미지를 만드는 것으로 시작합니다.
  • 비평가(분류자): 비평가의 역할은 진짜 그림과 위조품을 구별하는 것입니다. 처음에는 쉽습니다. 비평가는 진짜 예술 작품과 위조자의 작품을 모두 살펴보고 피드백을 제공하며, 위조자에게 '이건 가짜입니다.'라고 말합니다.
  • 피드백 루프: 위조자는 이 피드백을 사용하여 더 나은 결과를 얻습니다. 진짜 그림을 진짜처럼 보이게 만드는 요소를 학습하고 기법을 조정합니다. 비평가도 위조품이 개선됨에 따라 더 미묘한 결점을 발견하는 법을 배우면서 더 나아집니다.

이러한 적대적인 '게임'은 계속되며 두 네트워크는 점차 더 스마트해집니다. 결국 위조자는 너무나도 능숙해져서 비평가는 더 이상 확실하게 구별할 수 없을 정도가 됩니다. 이 시점에서 GAN은 학습을 마치고 새롭고 매우 사실적인 데이터를 생성할 수 있습니다.

CNN과 GAN 비교

컨볼루셔널 신경망(CNN)과 생성적 적대 신경망(GAN)은 모두 딥 러닝 아키텍처이지만 고유한 강점과 응용 분야가 있습니다. CNN은 이미지 분류 및 객체 감지 작업에 자주 사용되는 반면, GAN은 일반적으로 새로운 데이터 인스턴스를 생성하도록 설계되었습니다.

기능

CNN

GAN

데이터 사용량

대부분 라벨이 지정된 데이터 세트

라벨이 지정된 데이터 세트 또는 라벨이 지정되지 않은 데이터 세트

출력

분류, 특성 추출

다양하고 새로운 데이터 인스턴스

모델 유형

분류 모델은

생성형

주요 작업

이미지 분류, 객체 인식

이미지 생성, 데이터 증강, 합성 데이터 생성

기능

CNN

GAN

데이터 사용량

대부분 라벨이 지정된 데이터 세트

라벨이 지정된 데이터 세트 또는 라벨이 지정되지 않은 데이터 세트

출력

분류, 특성 추출

다양하고 새로운 데이터 인스턴스

모델 유형

분류 모델은

생성형

주요 작업

이미지 분류, 객체 인식

이미지 생성, 데이터 증강, 합성 데이터 생성

CNN은 GAN 아키텍처 내에서 자주 활용되며, 가장 일반적으로 분류자 네트워크 역할을 한다는 점에 유의해야 합니다. 진짜 이미지와 가짜 이미지를 구별하는 분류자의 작업은 이미지 분류 문제이며, 강력한 특성 추출 기능을 갖춘 CNN이 일반적으로 이 작업에 적합합니다.

일반적인 GAN 유형

모든 GAN은 생성자-분류자 구조를 공유하지만 특정 문제를 해결하기 위해 다양한 변형이 개발되었습니다. 가장 중요한 몇 가지 유형은 다음과 같습니다.

  • 조건부 GAN(cGAN): GAN이 생성하는 내용을 제어하고 싶다면 어떻게 해야 할까요? cGAN을 사용하면 조건을 추가할 수 있습니다. '무작위 얼굴'을 생성하는 대신 '금발 머리에 미소를 짓고 있는 여성'을 생성해 달라고 요청할 수 있습니다. 이는 텍스트-이미지 변환 애플리케이션에 매우 중요합니다.
  • CycleGAN: 학습을 위한 완벽하게 일치하는 이미지 쌍이 없는 상태에서 이미지의 스타일을 다른 스타일로 변환하고 싶다면 어떻게 해야 할까요?(예: 말 사진을 얼룩말로 바꾸기) CycleGAN은 이러한 '쌍이 없는 이미지-이미지 변환'을 위해 설계되었으며, 스타일 전이 및 객체 변형으로 유명합니다.
  • StyleGAN: 이 유형의 GAN은 매우 높은 품질의 사실적인 이미지(특히 얼굴)를 만드는 데 중점을 두며, 사용자에게 나이, 머리카락, 표정과 같은 이미지의 '스타일'을 세밀하게 제어할 수 있는 기능을 제공합니다.
  • 초해상도 GAN(SRGAN): 이 GAN은 저해상도의 흐릿한 이미지를 가져와 현실적인 세부정보를 할루시네이션하여 선명한 고해상도 버전으로 업스케일하는 데 특화되어 있습니다.

생성적 적대 신경망(GAN) 변형 전반에 걸쳐 두 개의 적대적 네트워크를 사용한다는 기본 개념은 일관되게 유지되지만, 연구자들은 특정 애플리케이션의 한계를 해결하고 성능을 개선하기 위해 다양한 아키텍처 및 학습 수정 사항을 탐색해 왔습니다.

GAN의 용도

GAN은 많은 산업에서 새로운 가능성을 열었습니다. GAN의 응용 분야는 일반적으로 다음과 같습니다.

콘텐츠 생성 및 조작

GAN의 가장 유명한 응용 분야입니다. 여기에는 사람, 장소, 사물의 사실적인 이미지 생성, 디지털 아트 및 음악 제작, 스타일 전이(사진을 그림처럼 보이게 만들기), 초해상도(흐릿한 이미지 선명하게 만들기), 텍스트-이미지 합성 등의 강력한 이미지 편집 도구 사용이 포함됩니다.

데이터 증강 및 개인 정보 보호

고품질 데이터는 머신러닝의 원동력이지만 희소하거나 비용이 많이 들거나 비공개일 수 있습니다. GAN은 합성 데이터를 생성하여 이 문제를 해결하는 데 도움을 줍니다. 의료 분야에서 GAN은 환자 개인 정보를 침해하지 않으면서 진단 모델을 학습시킬 수 있는 익명의 사실적인 의료 스캔을 만들 수 있습니다. 금융 분야에서는 합성 트랜잭션 데이터를 생성하여 더 나은 사기 감지 시스템을 학습시킬 수 있습니다. 이를 통해 데이터 부족을 극복하고 데이터 세트의 균형을 맞출 수 있습니다.

시뮬레이션 및 예측

GAN은 복잡한 시스템의 패턴을 학습하여 현실적인 시뮬레이션을 만들 수 있습니다. 이는 자율주행차를 학습시키기 위한 다양한 시나리오를 생성하거나, 동영상에서 다음 프레임을 예측하거나, 신약 개발에서 잠재적인 분자 구조를 발견하는 데 사용됩니다.

이상 및 위협 탐지

GAN을 '정상' 데이터로 학습시키면 패턴에 맞지 않는 모든 것을 매우 잘 찾아낼 수 있습니다. 이는 사기성 금융 활동을 감지하고, 사이버 보안에서 네트워크 침입을 식별하며, 제조에서 결함을 찾는 데 사용됩니다.

Google Cloud에서 GAN으로 빌드하기

GAN을 개발하고 배포하려면 상당한 컴퓨팅 성능과 강력한 MLOps 플랫폼이 필요합니다. Google Cloud는 전체 워크플로를 지원하는 도구를 제공합니다.

  • 모델 빌드 및 관리: Vertex AI는 GAN과 같은 복잡한 모델을 빌드, 학습, 배포하는 프로세스를 간소화하는 관리형 머신러닝 플랫폼입니다. 데이터와 실험을 관리하기 위한 통합 환경을 제공합니다.
  • 고성능 학습: GAN 학습은 컴퓨팅 집약적입니다. Cloud TPU는 딥 러닝 학습 속도를 획기적으로 높이도록 설계된 Google의 커스텀 하드웨어 가속기로, 복잡한 GAN 아키텍처를 훨씬 더 빠르게 반복할 수 있습니다.
  • 확장 가능한 배포: 모델 학습이 완료되면 Google Kubernetes Engine(GKE)이 더 큰 애플리케이션의 일부로 컨테이너화된 GAN을 배포할 수 있는 강력하고 확장 가능한 환경을 제공합니다.

다음 단계 수행

$300의 무료 크레딧과 20여 개의 항상 무료 제품으로 Google Cloud에서 빌드하세요.

Google Cloud