생성적 적대 네트워크(GAN): 소개

GAN(Generative Adversarial Networks)은 오래된 사진을 생성하고 음성을 보강하는 것부터 의료 및 기타 산업에서 다양한 애플리케이션을 제공하는 것에 이르기까지 많은 사용 사례에서 많은 잠재력을 제공하는 현대 기술 중 하나입니다.

이 고급 기술은 제품과 서비스를 구체화하는 데 도움이 될 수 있습니다. 기억을 보존하기 위해 이미지 품질을 향상시키는 데에도 사용할 수 있습니다.

GAN은 많은 사람들에게 유익하지만 일부는 이를 우려합니다.

그러나 이 기술은 정확히 무엇입니까?

이 기사에서는 GAN이 무엇인지, 어떻게 작동하는지, 응용 프로그램에 대해 설명합니다.

자, 바로 뛰어들자!

생성적 적대 네트워크란 무엇입니까?

GAN(Generative Adversarial Network)은 사진, 독특한 음악, 그림 등과 같은 보다 정확한 예측을 생성하기 위해 경쟁하는 두 개의 신경망으로 구성된 기계 학습 프레임워크입니다.

GAN은 컴퓨터 과학자이자 엔지니어인 Ian Goodfellow와 그의 동료들이 2014년에 설계했습니다. 그들은 훈련 중인 것과 유사한 새로운 데이터를 생성할 수 있는 고유한 심층 신경망입니다. 그들은 한 에이전트가 게임에서 지고 다른 에이전트가 승리하는 제로섬 게임에서 경쟁합니다.

원래 GAN은 기계 학습, 주로 비지도 학습을 위한 생성 모델로 제안되었습니다. 그러나 GAN은 전체 지도 학습, 반 지도 학습 및 강화 학습에도 유용합니다.

GAN에서 경쟁하는 두 블록은 다음과 같습니다.

생성기: 실제 데이터와 유사한 출력을 인위적으로 생성하는 합성곱 신경망입니다.

판별자: 인위적으로 생성된 출력을 식별할 수 있는 디콘볼루션 신경망입니다.

주요 컨셉

GAN의 개념을 더 잘 이해하기 위해 몇 가지 중요한 관련 개념을 빠르게 이해합시다.

머신 러닝(ML)

머신 러닝은 작업을 수행하거나 의사 결정 또는 예측을 내리는 동안 성능과 정확성을 향상시키기 위해 데이터를 활용하는 모델을 학습하고 구축하는 것과 관련된 인공 지능(AI)의 일부입니다.

ML 알고리즘은 훈련 데이터를 기반으로 모델을 생성하고 지속적인 학습을 통해 향상됩니다. 컴퓨터 비전, 자동화된 의사 결정, 이메일 필터링, 의학, 뱅킹, 데이터 품질, 사이버 보안, 음성 인식, 추천 시스템 등 다양한 분야에서 사용됩니다.

식별 모델

딥 러닝과 머신 러닝에서 판별 모델은 레벨 세트 또는 두 클래스를 구별하는 분류기 역할을 합니다.

예를 들어, 다른 과일이나 동물을 구별합니다.

생성 모델

생성 모델에서 무작위 샘플은 새로운 사실적인 그림을 생성하는 것으로 간주됩니다. 일부 개체 또는 생물의 실제 이미지에서 학습하여 현실적이면서도 모방된 자체 아이디어를 생성합니다. 이러한 모델에는 두 가지 유형이 있습니다.

Variational autoencoder: 별도의 신경망인 인코더와 디코더를 활용합니다. 이것은 주어진 실제 이미지가 인코더를 통과하여 이러한 이미지를 잠재 공간의 벡터로 나타내기 때문에 작동합니다.

다음으로 디코더를 사용하여 이러한 해석을 수행하여 이러한 이미지의 실제 사본을 생성합니다. 처음에는 이미지 품질이 낮을 수 있지만 디코더가 완전히 작동하면 인코더를 무시해도 됩니다.

GAN(Generative Adversarial Networks): 위에서 논의한 바와 같이 GAN은 제공된 데이터 입력에서 새롭고 유사한 데이터를 생성할 수 있는 심층 신경망입니다. 이는 아래에서 논의되는 기계 학습 유형 중 하나인 감독되지 않은 기계 학습에 속합니다.

지도 학습

지도 학습에서 머신은 레이블이 잘 지정된 데이터를 사용하여 학습됩니다. 이것은 일부 데이터가 이미 정답으로 태그가 지정되어 있음을 의미합니다. 여기에서 지도 학습 알고리즘이 훈련 데이터를 분석하고 이 레이블이 지정된 데이터에서 정확한 결과를 생성할 수 있도록 머신에 몇 가지 데이터 또는 예제가 제공됩니다.

  컴퓨터에서 휴대폰으로 데이터를 쉽게 전송하는 방법

비지도 학습

비지도 학습에는 레이블이 지정되거나 분류되지 않은 데이터의 도움으로 기계를 훈련하는 것이 포함됩니다. 이를 통해 기계 학습 알고리즘이 지침 없이 해당 데이터에 대해 작업할 수 있습니다. 이러한 유형의 학습에서 기계의 작업은 사전 데이터 교육 없이 패턴, 유사점 및 차이점을 기반으로 정렬되지 않은 데이터를 분류하는 것입니다.

따라서 GAN은 ML에서 비지도 학습을 수행하는 것과 관련이 있습니다. 입력 데이터에서 패턴을 자동으로 발견하고 학습할 수 있는 두 가지 모델이 있습니다. 이 두 모델은 생성기와 판별기입니다.

그들을 조금 더 이해합시다.

GAN의 일부

“적대적”이라는 용어는 생성자와 분모가 경쟁하는 두 부분이 있기 때문에 GAN에 포함됩니다. 이는 데이터 세트의 데이터 변형을 캡처, 조사 및 복제하기 위해 수행됩니다. GAN의 이 두 부분을 더 잘 이해합시다.

발전기

생성기는 실제처럼 보이는 이미지 및 오디오와 같은 가짜 데이터 포인트를 학습하고 생성할 수 있는 신경망입니다. 훈련에 사용되며 지속적인 학습으로 향상됩니다.

생성기에 의해 생성된 데이터는 다음에 보게 될 분모인 다른 부분에 대한 부정적인 예로 사용됩니다. 생성기는 임의의 고정 길이 벡터를 입력으로 사용하여 샘플 출력을 생성합니다. 판별자 앞에 출력을 제시하여 진짜인지 가짜인지 구분할 수 있도록 하는 것을 목표로 합니다.

생성기는 다음 구성요소로 훈련됩니다.

  • 잡음이 많은 입력 벡터
  • 임의의 입력을 데이터 인스턴스로 변환하는 생성기 네트워크
  • 생성된 데이터를 분류하는 판별기 네트워크
  • 판별자를 속이지 못하여 제너레이터에 페널티를 주기 위한 제너레이터 손실

제너레이터는 도둑처럼 작동하여 판별자를 속이기 위해 현실적인 데이터를 복제하고 생성합니다. 수행된 여러 검사를 우회하는 것을 목표로 합니다. 초기 단계에서는 크게 실패할 수 있지만 여러 개의 현실적인 고품질 데이터를 생성하고 테스트를 피할 수 있을 때까지 계속 개선됩니다. 이 능력을 획득한 후에는 별도의 판별기 없이 제너레이터만 활용할 수 있습니다.

판별자

판별자는 가짜 이미지와 실제 이미지 또는 기타 데이터 유형을 구별할 수 있는 신경망이기도 합니다. 발전기와 마찬가지로 훈련 단계에서 중요한 역할을 합니다.

도둑을 잡는 경찰과 같은 역할을 합니다(생성자에 의한 가짜 데이터). 데이터 인스턴스에서 잘못된 이미지와 이상을 감지하는 것을 목표로 합니다.

이전에 논의한 바와 같이 생성기는 판별기가 필요하지 않은 고품질 이미지를 생성하기 위해 자립하게 되는 지점에 도달하도록 학습하고 계속 개선됩니다. 생성기의 고품질 데이터가 판별기를 통과하면 더 이상 실제 이미지와 가짜 이미지를 구별할 수 없습니다. 따라서 발전기만 사용하는 것이 좋습니다.

GAN은 어떻게 작동합니까?

GAN(Generative Adversarial Network)에서는 다음 세 가지가 포함됩니다.

  • 데이터가 생성되는 방식을 설명하는 생성 모델입니다.
  • 모델이 학습되는 적대적 설정입니다.
  • 훈련을 위한 AI 알고리즘으로서의 심층 신경망.

GAN의 두 개의 신경망(생성기와 판별기)은 적대적 게임을 하는 데 사용됩니다. 생성기는 오디오 파일, 이미지 등과 같은 입력 데이터를 사용하여 유사한 데이터 인스턴스를 생성하는 반면 판별자는 해당 데이터 인스턴스의 신뢰성을 검증합니다. 후자는 검토한 데이터 인스턴스가 실제인지 여부를 결정합니다.

예를 들어 주어진 이미지가 진짜인지 가짜인지 확인하려고 합니다. 직접 생성한 데이터 입력을 사용하여 생성기에 공급할 수 있습니다. 새로운 복제 이미지를 출력으로 생성합니다.

그렇게 하는 동안 생성기는 생성하는 모든 이미지가 가짜임에도 불구하고 진짜로 간주되도록 합니다. 거짓말을 하고 들키지 않는 무난한 결과를 만들고 싶다.

  Linux를 위한 5가지 최고의 토렌트 클라이언트

다음으로 이 출력은 실제 데이터의 이미지 세트와 함께 판별기로 이동하여 이러한 이미지가 진짜인지 여부를 감지합니다. 아무리 흉내를 내려고 해도 발전기에 역효과를 냅니다. 판별자는 사실 데이터와 가짜 데이터를 구별하는 데 도움이 됩니다.

판별자는 가짜 데이터와 실제 데이터를 모두 사용하여 0 또는 1의 확률을 반환합니다. 여기서 1은 진위를 나타내고 0은 가짜를 나타냅니다.

이 프로세스에는 두 가지 피드백 루프가 있습니다.

  • 제너레이터는 피드백 루프를 판별기와 결합합니다.
  • 판별자는 실제 이미지 세트와 다른 피드백 루프를 결합합니다.

GAN 훈련은 생성자와 판별자가 모두 훈련 중이기 때문에 작동합니다. 생성기는 잘못된 입력을 전달하여 지속적으로 학습하는 반면 판별자는 탐지를 개선하는 방법을 학습합니다. 여기에서 둘 다 동적입니다.

판별자는 제공된 이미지를 분류할 수 있는 컨볼루션 네트워크입니다. 이미지를 가짜 또는 진짜로 분류하는 이항 분류기로 작동합니다.

반면에 생성기는 이미지를 생성하기 위해 임의의 데이터 샘플을 취하는 역 컨볼루션 네트워크와 같습니다. 그러나 판별자는 최대 풀링과 같은 다운샘플링 기술을 사용하여 데이터를 검증합니다.

두 네트워크 모두 적대적 게임에서 반대되는 서로 다른 손실 또는 목적 함수를 최적화하려고 합니다. 그들의 손실은 서로를 더욱 강하게 밀어붙일 수 있게 합니다.

GAN의 유형

생성적 적대 네트워크는 구현에 따라 다양한 유형이 있습니다. 다음은 적극적으로 사용되는 주요 GAN 유형입니다.

  • 조건부 GAN(CGAN): 실제 데이터와 가짜 데이터를 구별하는 데 도움이 되는 특정 조건부 매개변수를 포함하는 딥 러닝 기술입니다. 또한 해당 데이터를 생성하기 위해 생성기 단계에 “y”라는 추가 매개변수가 포함됩니다. 또한 레이블이 이 입력에 추가되고 판별기에 공급되어 데이터가 진위인지 가짜인지 확인할 수 있습니다.
  • 바닐라 GAN: 판별자와 생성자가 더 단순하고 다층 퍼셉트론인 단순 GAN 유형입니다. 알고리즘은 단순하며 확률적 경사 하강법을 사용하여 수학 방정식을 최적화합니다.
  • DCGAN(Deep convolutional GAN): 널리 사용되며 가장 성공적인 GAN 구현으로 간주됩니다. DCGAN은 다층 퍼셉트론이 아닌 ConvNet으로 구성됩니다. 이러한 ConvNet은 최대 풀링 또는 레이어를 완전히 연결하는 것과 같은 기술을 사용하지 않고 적용됩니다.
  • SRGAN(초해상도 GAN): 고품질 이미지 생성을 돕기 위해 적대 네트워크와 함께 심층 신경망을 사용하는 GAN 구현입니다. SRGAN은 원본 저해상도 이미지를 효율적으로 확대하여 디테일을 향상시키고 오류를 최소화하는 데 특히 유용합니다.
  • Laplacian Pyramid GAN(LAPAN): 저주파 잔류물과 함께 8칸 떨어져 있는 다중 대역 통과 이미지를 포함하는 역전되고 선형적인 표현입니다. LAPGAN은 여러 판별기 및 생성기 네트워크와 여러 라플라시안 피라미드 수준을 사용합니다.

LPGAN은 최고 수준의 화질을 구현하므로 널리 사용됩니다. 이 이미지는 각 피라미드 레이어에서 먼저 다운샘플링된 다음 모든 레이어에서 업스케일됩니다. 여기에서 아이디어는 원래 크기가 될 때까지 약간의 노이즈가 제공됩니다.

GAN의 응용

생성적 적대 네트워크는 다음과 같은 다양한 분야에서 사용됩니다.

과학

GAN은 고에너지 제트 형성을 모델링하고 물리학 실험을 수행하는 정확하고 빠른 방법을 제공할 수 있습니다. 이러한 네트워크는 많은 리소스를 소비하는 입자 물리학 시뮬레이션을 수행할 때 병목 현상을 추정하도록 훈련될 수도 있습니다.

GAN은 시뮬레이션을 가속화하고 시뮬레이션 충실도를 향상시킬 수 있습니다. 또한 GAN은 중력 렌즈를 시뮬레이션하고 천체 이미지를 향상시켜 암흑 물질을 연구하는 데 도움이 될 수 있습니다.

비디오 게임

비디오 게임의 세계는 또한 GAN을 활용하여 구형 비디오 게임에서 사용되는 저해상도 2차원 데이터를 확장했습니다. 이미지 교육을 통해 이러한 데이터를 4k 또는 더 높은 해상도로 재생성하는 데 도움이 됩니다. 다음으로 데이터나 이미지를 다운샘플링하여 비디오 게임의 실제 해상도에 적합하게 만들 수 있습니다.

  사진으로 접시에 담긴 음식을 분석하는 채소 먹기 [Paid]

GAN 모델에 적절한 교육을 제공하십시오. 색상과 같은 실제 이미지의 세부 사항을 유지하면서 기본 데이터와 비교하여 인상적인 품질의 더 선명하고 선명한 2D 이미지를 제공할 수 있습니다.

GAN을 활용한 비디오 게임에는 Resident Evil Remake, Final Fantasy VIII 및 IX 등이 있습니다.

예술과 패션

GAN을 사용하여 존재하지 않은 개인의 이미지 생성, 인페인트 사진, 비현실적인 패션 모델의 사진 생성 등과 같은 예술을 생성할 수 있습니다. 가상 그림자와 스케치를 생성하는 도면에도 사용됩니다.

광고하는

GAN을 사용하여 광고를 만들고 제작하면 시간과 리소스를 절약할 수 있습니다. 위와 같이 장신구를 판매하고 싶다면 GAN의 도움을 받아 실제 사람처럼 보이는 가상의 모형을 만들 수 있습니다.

이렇게 하면 모델이 보석을 착용하게 하고 고객에게 선보일 수 있습니다. 모델을 고용하고 비용을 지불하지 않아도 됩니다. 교통비, 스튜디오 대여, 사진사, 메이크업 아티스트 배치 등의 추가 비용도 없앨 수 있습니다.

이것은 당신이 성장하는 비즈니스이고 광고 촬영을 위한 모델을 고용하거나 인프라를 수용할 여력이 없는 경우에 큰 도움이 될 것입니다.

오디오 합성

GAN을 사용하여 오디오 클립 세트에서 오디오 파일을 만들 수 있습니다. 이를 제너레이티브 오디오라고도 합니다. 이것을 Amazon Alexa, Apple Siri 또는 음성 조각이 잘 스티칭되고 주문형으로 생성되는 기타 AI 음성과 혼동하지 마십시오.

대신 제너레이티브 오디오는 신경망을 사용하여 오디오 소스의 통계적 속성을 연구합니다. 다음으로 주어진 컨텍스트에서 해당 속성을 직접 재현합니다. 여기서 모델링은 밀리초마다 음성이 변경되는 방식을 나타냅니다.

전이 학습

고급 전이 학습 연구는 심층 강화 학습과 같은 최신 기능 공간을 정렬하는 데 GAN을 활용합니다. 이를 위해 소스의 임베딩과 목표 작업이 판별기에 제공되어 컨텍스트를 결정합니다. 다음으로 결과는 인코더를 통해 다시 전파됩니다. 이런 식으로 모델은 계속 학습합니다.

GAN의 다른 응용 프로그램은 다음과 같습니다.

  • 녹내장 영상을 감지하여 전체 또는 부분 시력 상실 진단
  • 산업 디자인, 인테리어 디자인, 의류, 신발, 가방 등을 시각화합니다.
  • 병든 사람의 법의학적 얼굴 특징 재구성
  • 이미지에서 항목의 3D 모델 생성, 3D 포인트 클라우드로 새 객체 생성, 비디오에서 모션 패턴 모델링
  • 나이가 변하는 사람의 모습을 보여줍니다.
  • DNN 분류기 향상과 같은 데이터 보강
  • 지도에서 누락된 기능을 다시 칠하고, 스트리트 뷰를 개선하고, 매핑 스타일을 전송하는 등의 작업을 수행합니다.
  • 이미지 생성, 이미지 검색 시스템 교체 등
  • GAN 변형을 사용하여 비선형 동적 시스템에 대한 제어 입력 생성
  • 주택에 대한 기후 변화의 영향 분석
  • 음성을 입력으로 사용하여 사람의 얼굴 만들기
  • 암, 섬유증 및 염증의 여러 단백질 표적에 대한 새로운 분자 생성
  • 일반 이미지에서 GIF 애니메이션

다양한 영역에서 더 많은 GAN의 응용 프로그램이 있으며 그 사용이 확대되고 있습니다. 그러나 오용 사례도 여러 번 있습니다. GAN 기반 인간 이미지는 가짜 비디오 및 사진 제작과 같은 불길한 사용 사례에 사용되었습니다.

GAN은 또한 지구상에 존재한 적이 없는 소셜 미디어에 있는 사람들의 사실적인 사진과 프로필을 만드는 데 사용할 수 있습니다. GNA의 오용과 관련된 기타 문제는 특정 인물의 동의 없이 가짜 음란물 제작, 정치 후보자의 위조 동영상 배포 등입니다.

GNA는 많은 분야에서 도움이 될 수 있지만 오용은 재앙이 될 수도 있습니다. 따라서 적절한 사용 지침을 시행해야 합니다.

결론

GAN은 현대 기술의 한 놀라운 예입니다. 데이터를 생성하고 시각적 진단, 이미지 합성, 연구, 데이터 증강, 예술 및 과학 등과 같은 기능을 지원하는 독특하고 더 나은 방법을 제공합니다.

또한 혁신적인 애플리케이션을 구축하기 위한 로우 코드 및 무코드 머신 러닝 플랫폼에 관심이 있을 수 있습니다.