생성대립신경망
생성대립신경망(Generative adversarial network, GAN)은 이안 굿펠로우(Ian Goodfellow)와 그의 동료들이 2014년에 고안한 머신러닝 프레임워크의 한 종류이다. 게임 이론의 관점에서 두 개의 신경망은 게임에서 서로 경쟁한다. 훈련 세트가 주어지면, 이 기술은 훈련 세트와 동일한 통계로 새로운 데이터를 생성하는 법을 배운다. 생성대립신경망은 원래 비지도학습의 생성모델로 제안되었지만, 준지도학습과 지도학습 및 강화학습에도 유용한 것으로 입증되었다.
목차
개요[편집]
생성 네트워크는 후보들을 생성하는 반면 차별적 네트워크는 후보들을 평가한다. 콘테스트는 데이터 배포 측면에서 운영된다. 전형적으로 생성 네트워크는 잠재된 공간으로부터 관심의 데이터 분포로 매핑하는 방법을 배우는 반면, 차별적 네트워크는 생성자에 의해 생산된 후보들을 실제 데이터 분포와 구별한다. 생성 네트워크의 교육 목표는 차별적 네트워크의 오류율을 높이는 것이다. 즉, 판별자가 종합하지 않는다고 생각하는 새로운 후보를 생산하여 판별자 네트워크의 오류율을 높이는 것이다. 알려진 데이터 집합은 판별자의 초기 훈련 데이터 역할을 한다. 훈련에는 허용 가능한 정확도에 도달할 때까지 훈련 데이터 세트의 샘플을 제공하는 것이 포함된다. 생성자는 그것이 판별자를 속이는 데 성공하는지 여부에 따라 훈련한다. 일반적으로 생성자는 사전 정의된 잠재 공간(예: 다변량 정규 분포)에서 샘플링되는 랜덤화된 입력으로 시드된다. 그 후 생성자에 의해 합성된 후보들을 판별자에 의해 평가한다. 역전파(Backpropagation)를 두 네트워크 모두에 적용하여 생성자가 더 나은 이미지를 생성하는 반면, 판별자는 합성 이미지에 플래그를 지정하는 데 더 능숙해진다. 생성자는 전형적으로 디콘볼루션(deconvolutional) 신경망이며, 판별자는 경동신경망이다. 생성대립신경망은 입력 데이터에서 전체 모드를 누락하여 제대로 일반화하지 못하는 모드 붕괴를 겪는 경우가 많다. 예를 들어, 각 자릿수의 많은 표본을 포함하는 MNIST 데이터 집합에 대해 훈련된 생성대립신경망은 그럼에도 불구하고 소심하게 출력에서 자릿수의 부분집합을 생략할 수 있다. 어떤 연구자들은 근본적인 문제를 누락의 패턴을 알아차리지 못하는 약한 차별적 네트워크로 인식하는 반면, 다른 연구자들은 객관적 기능의 잘못된 선택에 책임을 전가한다.[1]
역사[편집]
생성대립신경망에 가장 직접적인 영감을 준 것은 소음 대비 추정치로, 굿펠로우(Goodfellow)가 박사 과정 2010년부터 2014년 동안 생성대립신경망과 동일한 손실 기능을 사용하며 연구한 것이다. 다른 사람들도 비슷한 생각을 가지고 있었지만 비슷하게 발전시키지는 않았다. 적대적 네트워크와 관련된 아이디어는 올리 니이미탈로(Olli Niemitalo)가 2010년 블로그 포스트에 게재했다. 하지만 이러한 생각은 결코 구현되지 않았고 생성자에 확률성을 포함하지 않았기 때문에 생성 모델이 아니었다. 이는 현재 조건부 생성대립신경망으로 알려져 있다. 2013년에 리(Li), 고치(Gauci), 그로스(Gross)에 의해 동물 행동을 모형화하는 데에 생성대립신경망과 유사한 아이디어가 사용되었다. 적대적 기계학습은 생성 모델링 외에 다른 용도가 있으며 신경 네트워크 이외의 모델에 적용할 수 있다. 신경망에 기초한 대립적 학습은 2006년에 미니마이저 정책, 제어기 정책 및 최대화 정책인 교란(suppression) 사이의 반복을 교대로 게임 이론적 의미에서 강력한 제어기를 훈련시키기 위해 사용되었다.
2017년에는 화소정확도보다는 사실적인 질감에 초점을 맞춘 영상향상에 생성대립신경망을 사용했고, 높은 확대율에서 화질을 더 높였다. 또한 2017년에 생성대립신경망의 기술을 이용해 처음으로 사람의 얼굴이 제작되었다. 그리고 이는 2018년 2월 그랜드팔레에서 전시되었다. 2019년 스타일지에이엔(StyleGAN)에서 제작한 얼굴은 딥 페이크와 비교를 이끌어내었다. 생성대립신경망 기술은 2017년부터 독특하고 호소력 있는 추상화를 제작할 수 있는 문턱을 넘어 '창의적 네트워크'로 불린 새로운 구현이 나타나면서 미술계에서 존재감을 드러내기 시작했다. 2018년 그림 에드몽 드 벨라미(Edmond de Belamy)를 제작하기 위해 생성대립신경망 시스템을 사용했는데, 이 그림은 미화 43만 2,500달러에 팔리게 되었다. 오리지널 창의적 네트워크 팀원들의 2019년 초 기사에서는 이 시스템과 함께 추가적인 진전에 대해 논의했으며, 인공지능이 가능한 예술에 대한 전반적인 전망을 고려했다.
2019년 5월 삼성 연구진은 사람의 사진 한 장만으로 그 사람이 말하는 영상을 제작하는 생성대립신경망 기반 시스템을 시연했다. 2019년 8월에는 가사와 신경 멜로디 생성을 위해 조건부 생성대립신경망 장단기 메모리를 이용한 각각 1만 2,197곡의 악기 디지털 인터페이스(MIDI) 곡으로 구성된 대규모 데이터세트가 만들어졌다. 2020년 5월 엔비디아(Nvidia) 연구진이 팩맨 게임을 단순히 보는 것만으로도 재현하는 인공지능 시스템을 개발했다.
작동 원리[편집]
생성대립신경망이라는 이름에서 알 수 있듯이 생성자는 실제처럼 보이는 이미지를 생성하는데 사용되고, 판별자는 어느 것이 가짜인지 식별한다. 생성자가 판별자를 속이기 위해 노력하는 반면, 다른 판별자는 속지 않기 위해 노력하며 끊임없는 싸움을 벌이고 있다. 최상의 이미지를 생성하려면 매우 우수한 생성자와 판별자가 필요하다. 생성자가 부족하면 판별자를 속일 수 없고 모델이 수렴하지 않기 때문이다. 만약 판별자가 나쁘다면 말이 되지 않는 이미지들도 분류되어, 모델은 결코 훈련되지 않을뿐더러 원하는 출력을 생산하지 못하게 된다. 입력과 무작위 노이즈는 가우스 분포일 수 있으며, 값은 이 분포로부터 샘플링되어 생성자 네트워크에 공급되고 영상이 생성된다. 생성된 이미지는 판별자에 의해 실제 이미지와 비교되며, 주어진 이미지가 가짜인지 진짜인지 식별하려고 한다.
손실 함수[편집]
생성대립신경망은 게임 이데올로기적 접근법을 취하기 때문에 객관적인 기능은 미니맥스(minimax) 함수로 표현된다. 판별자는 목표 함수를 최대화하려고 노력하므로 목표 함수에 대해 기울기 상승(gradient ascent)을 수행할 수 있다. 생성자는 목표 기능을 최소화하려고 하므로 목표 기능에 대해 기울기 강하를 수행할 수 있다. 그러므로 경사로 상승과 하강 사이를 교대하여 네트워크를 훈련할 수 있는 것이다. 위의 식에서 각각이 의미하는 바는 다음과 같다.
- : 실제 데이터 인스턴스 가 실제일 가능성에 대한 판별자의 추정치다.
- : 모든 실제 데이터 인스턴스에 대해 예상되는 값이다.
- : 노이즈가 주어졌을 때 생성자의 출력이다.
- : 가짜 인스턴스가 진짜일 확률을 판별자가 추정하는 것이다.
- : 생성자에 대한 모든 임의 입력에 대한 예상 값이다.
그러나 적용했을 때 생성자 목표 함수의 최적화가 잘 되지 않는다는 것이 관찰되는데, 이는 샘플이 생성되었을 때 모델이 구배에서 배우기를 원하지만 구배는 상대적으로 평평하기 때문이다. 이것은 모델이 배우는 것을 어렵게 만든다. 따라서 생성자 목표 함수는 아래와 같이 변경된다.
생성대립신경망은 판별자가 정확할 가능성을 최소화하는 대신 판별자가 틀릴 가능성을 최대화한다. 따라서 이 목표 기능에 따라 생성자에 경사도를 상승시킨다.[2]
와서스틴 손실[편집]
기본적으로 텐서플로우 생성대립신경망은 와서스틴 손실(Wasserstein loss)을 사용한다. 이 손실 함수는 판별자가 실제로 인스턴스를 분류하지 않는 생성대립신경망 체계('Wasserstein GAN' 또는 'WGAN')의 변경에 따라 달라진다. 또한 각 인스턴스에 대해 숫자를 출력한다. 이 숫자는 1보다 작거나 0보다 클 필요는 없으므로, 인스턴스가 진짜인지 가짜인지를 결정하기 위한 임계값으로 0.5를 사용할 수는 없다. 판별자 훈련은 가짜 사례보다 실제 사례를 위해 출력을 더 크게 만들려고 할 뿐이다. 진짜와 가짜를 구분할 수 없기 때문에 WGAN 판별자는 사실상 '차별주의자'가 아닌 '비판자'로 불린다. 이러한 구별은 이론적으로 중요하지만, 실무적 목적상 손실 함수에 대한 입력은 확률일 필요가 없다는 것을 인정하는 것으로 취급할 수 있다. 손실 기능 자체는 다음과 같이 간단하다.
- 비평가 손실
판별자는 이 기능을 최대화하려고 한다. 즉, 실제 사례에서의 생산량과 가짜 사례에서의 생산량의 차이를 최대화하려고 한다.
- 생성자 손실
생성자는 이 기능을 최대화하려고 한다. 즉, 가짜 사례에 대해 판별자의 산출량을 극대화하려고 한다. 각각이 의미하는 바는 다음과 같다.
- : 비평가들의 실례를 들어 산출한 것이다.
- : 노이즈 z가 주어졌을 때 생성자의 출력이다.
- : 비평가들의 가짜 예에 대한 산출물이다.
- 비평가 의 산출물은 반드시 1과 0 사이일 필요는 없다.
- 공식은 실제 분포와 생성된 분포 사이의 지구 이동 거리에서 도출된다.
와서스틴 생성대립신경망은 미니맥스 기반 생성대립신경망보다 고착에 덜 취약하며, 기울기 소멸에 따른 문제를 피할 수 있다는 이점이 있다. 또한 지구 이동 거리에는 확률 분포 공간에서의 거리 측도라는 진정한 측정 지표라는 이점이 있다. 교차 엔트로피는 이런 의미에서 미터법이 아니다.[3]
구조[편집]
생성대립신경망은 생성자와 판별자로 구성되어 있다. 생성자는 타당한 데이터를 생성하는 방법을 학습한다. 생성된 예는 판별자에게 부정적인 훈련 예가 된다. 반면, 판별자는 생성자의 가짜 데이터와 실제 데이터를 구별하는 법을 배운다. 판별자는 신뢰할 수 없는 결과를 생산한 생성자에 불이익을 준다. 훈련이 시작되면 생성자는 명백히 가짜 데이터를 생산하고, 판별자는 그것이 가짜라는 것을 빨리 알 수 있다. 훈련이 진행됨에 따라 생성자는 판별자를 속일 수있는 출력을 생성하는 데 더 가까워진다. 마지막으로 생성자 훈련이 잘 되면 진짜와 가짜의 차이를 구분하는 것이 더 어려워진다. 가짜 데이터를 진짜 데이터로 분류하기 시작해 정확도가 떨어진다. 생성자와 판별자 모두 신경망이다. 생성자 출력은 판별자 입력에 직접 연결된다. 역전파를 통해 판별자의 분류는 생성자가 자신의 가중치를 업데이트하는 데 사용하는 신호를 제공한다.
판별자[편집]
생성대립신경망의 판별자는 단순히 분류자일 뿐이다. 실제 데이터와 생성자에 의해 생성된 데이터를 구별하려고 한다. 판별자는 분류하는 데이터 유형에 적합한 네트워크 아키텍처를 사용할 수 있다.
- 판별자 훈련 데이터
판별자의 훈련 데이터는 다음 두 가지 출처에서 나온다.
- 실제 데이터 인스턴스: 판별자는 훈련 중에 실제 사람 사진과 같은 실제 데이터 인스턴스를 사용한다. 그리고 이러한 사례를 긍정적인 예로 사용한다.
- 생성자가 생성한 가짜 데이터 인스턴스: 판별자는 이를 훈련 중 부정적인 예로서 사용한다.
위의 그림에서 두 개의 샘플 상자는 판별자에게 공급되는 두 개의 데이터 소스를 나타낸다. 판별자 훈련 중에는 생성자가 훈련하지 않는다. 이는 무게는 일정하게 유지되는 반면 판별자가 훈련할 수 있는 예를 만들어낸다.
- 판별자 훈련
판별자는 두 개의 손실 기능에 연결된다. 판별자 훈련 중, 판별자는 생성자 손실을 무시하고 판별자 손실만 사용한다. 또한 다음 절에서 설명한 것과 같이 생성자 훈련 중에 제너레이터 손실을 사용한다.
- 판별자는 실제 데이터와 생성자의 가짜 데이터를 모두 분류한다.
- 판별자 손실은 판별자가 실례를 가짜로 오인하거나 실례를 가짜로 오인하여 불이익을 준다.
- 판별자는 판별자 네트워크를 통해 판별자 손실로부터 역제안하여 가중치를 갱신한다.[3]
생성자[편집]
생성대립신경망의 생성자 부분은 판별자의 피드백을 통합하여 가짜 데이터를 만드는 법을 배운다. 이를 통해 판별자는 자신의 산출물을 진짜로 분류하도록 만드는 법을 배운다. 생성자 훈련은 판별자 훈련이 요구하는 것보다 생성자와 판별자 사이의 보다 긴밀한 통합이 필요하다. 생성자를 훈련시키는 생성대립신경망의 부분에는 다음이 포함된다.
- 무작위 입력
- 임의 입력을 데이터 인스턴스로 변환하는 생성자 네트워크
- 생성된 데이터를 분류하는 판별자 네트워크
- 판별자 출력
- 생성자가 판별자를 속이지 못해 불이익을 주는 생성자 손실
- 임의 입력
신경망은 어떤 형태의 입력을 필요로 한다. 일반적으로 우리는 우리가 분류하거나 예측하고자 하는 예와 같이 우리가 어떤 것을 하고 싶은 데이터를 입력한다. 그러나 완전히 새로운 데이터 인스턴스를 출력하는 네트워크의 입력으로 사용하는 것은 무엇일까. 가장 기본적인 형태에서 생성대립신경망은 임의의 노이즈를 그것의 입력으로 받아들인다. 그런 다음 생성자는 이 노이즈를 의미 있는 출력으로 변환한다. 노이즈를 도입함으로써 생성대립신경망이 목표 분포의 다른 장소에서 표본을 추출하여 다양한 데이터를 생성하도록 할 수 있다. 실험 결과, 소음의 분포는 크게 중요하지 않기 때문에 균일한 분포처럼 샘플링하기 쉬운 것을 선택할 수 있다. 편의상 노이즈를 샘플링하는 공간은 일반적으로 출력 공간의 차원성보다 크기가 작다.
- 판별자를 사용한 생성자 교육
신경망을 훈련시키기 위해 네트워크의 출력의 오류나 손실을 줄이기 위해 네트워크의 무게를 조절한다. 그러나 생성대립신경망에서는 생성자는 우리가 영향을 미치려고 하는 손실과 직접적으로 연결되어 있지 않다. 생성자가 판별자 네트에 공급되고 판별자는 우리가 영향을 미치려고 하는 출력을 생성한다. 생성자 손실은 판별자 네트워크가 가짜로 분류하는 샘플을 생산한 생성자에 불이익을 준다.
여분의 네트워크 덩어리는 역전파에 포함되어야 한다. 역전파는 중량이 출력에 미치는 영향, 즉 중량을 변경했을 때 출력이 어떻게 변화하는지 계산하여 각 중량을 올바른 방향으로 조정한다. 그러나 생성자 중량의 영향은 역전파를 통해 공급하는 판별자 중량의 영향에 따라 달라진다. 그래서 역전파 출력에서 시작하여 판별자를 통해 생성자로 다시 흐른다. 동시에, 우리는 생성자 훈련 중에 판별자가 바뀌는 것을 원하지 않는다. 움직이는 목표물을 맞추려고 하는 것은 생성자에 더 큰 문제를 일으킬 것이다. 그래서 다음과 같은 절차로 생성자를 훈련시킨다.[3]
- 무작위 노이즈 샘플
- 샘플링된 무작위 노이즈로부터 생성자 출력 생성
- 생성자 출력에 대한 판별자의 '진실' 또는 '거짓' 분류 가져오기
- 판별자 분류로 인한 손실 계산
- 판별자와 생성자를 통해 역전파하여 기울기 효과 통감
- 기울기(gradient)를 사용하여 생성자 중량 변경
응용[편집]
적용[편집]
- 패션, 예술, 광고
더 버지(The Verge)는 2019년 3월 "생성대립신경망이 만든 이미지가 현대 인공지능 예술의 정의로운 모습이 됐다"고 썼다. 생성대립신경망은 모델, 사진작가, 메이크업 아티스트를 고용하거나 스튜디오와 교통비를 지불할 필요 없이 상상 속의 패션 모델들의 사진을 만드는 데도 사용될 수 있다.
- 애니메이션
게임 개발과 애니메이션 제작은 비용이 많이 들고 비교적 일상적인 작업에 많은 제작 아티스트를 고용한다. 생성대립신경망은 애니메이션 캐릭터를 자동으로 생성하여 색칠할 수 있다. 생성대립신경망을 사용함으로 비용 절감과 더불어 더 높은 퀄리티의 작품을 생산할 수 있게 된다.[4]
- 과학
생성대립신경망은 암흑 물질 연구를 위해 천문학적 이미지를 개선하고 중력 렌즈를 시뮬레이션할 수 있다. 2019년에 우주에서 특정 방향으로 암흑 물질의 분포를 성공적으로 모델링하고, 발생할 중력렌즈를 예측하기 위해 사용했다. 생성대립신경망은 고에너지 제트 형성 모델링과 고에너지 물리학 실험을 통해 샤워를 모델링하는 빠르고 정확한 방법으로 제안되었다. 또한 계산적으로 비용이 많이 드는 입자물리학 실험의 시뮬레이션에서 병목 현상을 정확하게 추정하도록 훈련되었다. 현재 제안된 유럽 입자 물리 연구소 실험과 관련된 애플리케이션은 시뮬레이션 가속 및 시뮬레이션 충실도 향상을 위한 이러한 방법의 가능성을 입증했다.
- 비디오 게임
2018년 생성대립신경망은 영상 훈련을 통해 기존 비디오게임에서 저해상도 2D 텍스처를 업스케일링한 뒤 4k 이상의 해상도로 재생성하여 게임 본래의 해상도에 맞게 다운샘플링하는 방식으로 비디오 게임 변조 커뮤니티에 발을 들였다. 결과는 안티앨리어싱의 슈퍼샘플링 방식과 유사했다. 생성대립신경망은 적절한 훈련을 통해 원본보다 화질이 높은 2D 텍스처 이미지 크기를 더 선명하게 제공하는 동시에 원본의 디테일 수준, 색상 등을 완벽하게 유지한다. 현재 생성대립신경망을 사용한 비디오 게임의 알려진 예로는 파이널 판타지 8(Final Fantasy VIII), 파이널 판타지 9(Final Fantasy IX), 콘스탄트 에빌 리메이크 HD 리마스터(Constant Evil REmake HD Remaster), 맥스 페인(Max Payne) 등이 있다.
- 기타
- 생성대립신경망은 부분 또는 전체 시력 상실을 피하기 위해 필수적인 조기 진단을 돕는 녹조영상을 검출하는 데 사용될 수 있다.
- 사실적 이미지를 연출하는 생성대립신경망은 실내 디자인, 산업 디자인, 신발, 가방, 컴퓨터 게임 장면의 의류 아이템이나 아이템을 시각화하는 데 사용할 수 있다. 이러한 네트워크는 페이스북에서 사용하는 것으로 알려져 있다.
- 영상 부문의 3D 오브젝트 모델과 비디오에서 모션 패턴을 재구성할 수 있다.
- 개인의 외모가 나이에 따라 어떻게 변할 수 있는지를 보여 주기 위한 얼굴 사진의 노화를 위해 사용될 수 있다.
- 지도 제작에서 지도 스타일을 전송하거나 스트리트 뷰 이미지를 증가시키는 데 사용될 수 있다.
- 생성대립신경망은 기후 변화가 특정 주택에 미칠 영향을 시각화하는 데 사용되어 왔다.
- 스피치투페이스(Speech2Face)라고 불리는 생성대립신경망 모델은 사람의 목소리를 들은 후에 얼굴 이미지를 재구성할 수 있다.
- 2016년에 간은 암, 염증, 섬유증에 관련된 다양한 단백질 표적에 대한 새로운 분자를 생성하기 위해 사용되었다. 2019년에 생성대립신경망에서 생성된 분자는 실험적으로 쥐까지 검증되었다.[1]
변형[편집]
연구자들은 개선된 생성대립신경망 기법과 생성대립신경망의 새로운 용도를 계속해서 찾아내고 있다. 여기 가능성을 느낄 수 있는 생성대립신경망 변형의 표본이 있다.
- 진보적 생성대립신경망
진보적 생성대립신경망에서 생성자의 첫 번째 레이어는 매우 낮은 분해능 이미지를 생성하며, 후속 레이어는 세부사항을 추가한다. 이 기법은 생성대립신경망이 비교 가능한 비진보적 생성대립신경망보다 더 빨리 훈련할 수 있도록 하며, 고해상도 이미지를 생성한다.
- 조건부 생성대립신경망
조건부 생성대립신경망은 레이블이 지정된 데이터 집합에서 훈련되며 생성된 각 인스턴스에 대한 레이블을 지정할 수 있다. 예를 들어, 비 조건부 MNIST 생성대립신경망은 임의의 숫자를 생성하는 반면, 조건부 MNIST 생성대립신경망은 생성대립신경망이 생성해야 하는 숫자를 지정할 수 있다. 또한 결합 확률 를 모델링하는 대신에 조건부 생성대립신경망는 조건부 확률 를 모델링한다.
- 이미지 변환
생성대립신경망은 이미지를 입력으로 가져와서 다른 속성으로 생성된 출력 이미지에 매핑한다. 예를 들어 자동차 모양에 컬러 블럽이 들어간 마스크 이미지를 촬영할 수 있고, 생성대립신경망은 사실적인 자동차 디테일로 모양을 채울 수 있다. 마찬가지로 이미지 대 이미지 생성대립신경망을 훈련시켜 핸드백의 스케치를 찍어 핸드백의 사실적 이미지로 만들 수 있다. 이러한 경우, 손실량은 일반적인 판별자 기반 손실과 픽셀 위상 손실의 가중 조합으로 생성자가 소스 이미지에서 이탈할 경우 불이익을 준다.
- 사이클
사이클 생성대립신경망은 한 세트에서 다른 세트에 그럴듯하게 속할 수 있는 이미지로 이미지를 변환하는 방법을 배운다. 예를 들어 왼쪽의 이미지를 입력으로 지정할 때 아래의 오른쪽 이미지를 생성하여, 말의 이미지를 가져다가 얼룩말의 이미지로 바꾸었다. 사이클 생성대립신경망에 대한 훈련 데이터는 단순히 이미지 세트 두 개이다. 시스템에는 영상 사이에 라벨이나 쌍방향 서신이 필요하지 않다.
- 텍스트-이미지 합성
텍스트-이미지 생성대립신경망은 텍스트를 입력으로 받아들여 텍스트가 설명하는 이미지를 그럴듯하게 생성한다. 예를 들어, 꽃 이미지는 생성대립신경망에 '이 꽃은 노란 꽃잎에 오렌지 색조를 띠고 있다.'는 텍스트 설명을 입력하여 생성되었다. 이 시스템에서 생성대립신경망은 작은 클래스 집합에서만 이미지를 생성할 수 있다는 점에 유의해야 한다.
- 초해상도
초해상도 생성대립신경망은 영상의 해상도를 높여 필요한 경우 흐릿한 부분을 채우기 위해 디테일을 추가한다. 예를 들어, 아래의 흐릿한 중간 이미지는 왼쪽에 있는 원본 이미지의 다운샘플링 버전이다. 흐릿한 이미지를 볼 때, 생성대립신경망은 오른쪽에서 더 날카로운 이미지를 만들어냈다.
|
생성대립신경망이 생성한 이미지는 원래 이미지와 매우 유사해 보이지만, 머리띠를 자세히 보면 생성대립신경망이 원래부터 스타버스트 패턴을 재현하지 않았다는 것을 알 수 있을 것이다. 대신 다운샘플링으로 지워진 무늬를 대신할 수 있도록 나름대로 그럴듯한 무늬를 구성했다.[3]
문제점[편집]
생성대립신경망은 여러 가지 일반적인 오류를 가지고 있다. 이러한 일반적인 문제들은 모두 활발히 연구되고 있다. 이 문제들 중 어느 것도 완전히 해결된 것은 아니지만, 사람들이 시도했던 몇 가지를 언급할 것이다.
- 사라지는 기울기
연구 결과 판별자가 너무 좋으면 기울기 소멸로 생성자 훈련이 실패할 수 있다는 주장이 나왔다. 실제로 최적의 판별자는 생성자가 발전하기 위한 충분한 정보를 제공하지 않는다. 이에 대한 해결 시도는 다음과 같다.
- 와서스틴 손실: 와서스틴 손실은 판별자를 최적의 상태로 훈련시킬 때에도 기울기 현상이 사라지는 것을 방지하기 위해 고안된 것이다.
- 수정된 미니맥스 손실: 원래 생성대립신경망 논문은 소멸하는 기울기를 다루기 위해 손실을 최소화하기 위한 수정을 제안했다.
- 모드 붕괴
보통 생성대립신경망이 매우 다양한 출력을 생산하기를 원한다. 특히 얼굴 생성자에 대한 임의 입력마다 다른 얼굴을 원하는 경우는 더욱 그렇다. 그러나 생성자가 특별히 그럴듯한 출력을 내는 경우, 생성자는 그 출력만 생산하는 것을 배울 수 있다. 왜냐하면 생성자는 항상 판별자에게 가장 그럴듯하게 보이는 하나의 출력을 찾으려고 하기 때문이다. 생성자가 동일한 출력 또는 작은 출력 세트를 반복해서 생산하기 시작하는 경우, 판별자의 최선의 전략은 항상 출력을 거부하는 방법을 배우는 것이다. 그러나 다음 세대의 판별자가 국부적 최소치에 갇혀 최선의 전략을 찾지 못한다면, 다음 생성자 반복이 현재의 판별자에 대해 가장 그럴듯한 출력을 찾아내는 것은 너무 쉽다. 각각의 생성자 반복은 특정 판별자에 대해 지나치게 최적화되며, 판별자는 트랩에서 빠져나오는 방법을 결코 배우지 못한다. 결과적으로 생성자는 작은 출력 유형 세트를 통해 회전한다. 이런 형태의 생성대립신경망 고장은 모드 붕괴라고 불린다. 이에 대한 해결 시도는 다음과 같다. 다음의 접근 방식은 생성자가 단일 고정 판별자에 대해 최적화하는 것을 방지하여 그 범위를 확대하도록 강제한다.
- 와서스틴 손실: 와서스틴 손실은 판별자를 소멸되는 기울기에 대한 걱정 없이 최적성으로 훈련시킬 수 있게 함으로써 모드 붕괴를 완화시킨다. 판별자가 로컬 미니마에 고착되지 않으면 생성자가 안정화되는 출력을 거부하는 방법을 학습한다. 그래서 생성자는 새로운 것을 시도하게 된다.
- 비연속 생성대립신경망: 비연속 생성대립신경망은 현재 판별자의 분류뿐만 아니라 향후 판별자 버전의 출력까지 통합한 생성자 손실 기능을 사용한다. 따라서 생성자는 단일 판별자에 대해 지나치게 최적화할 수 없다.[3]
- 수렴 실패
생성대립신경망은 자주 수렴에 실패한다. 그래서 많은 연구자들은 다음과 같은 다양한 형태의 정규화를 통해 생성대립신경망 융합을 개선하기 위해 노력해왔다.
- 판별자 입력에 노이즈 추가
- 판별자 가중치 벌점
- 악용
생성대립신경망 기반의 범죄 가능성이 있는 가짜 사진 및 동영상을 제작하거나 사람에 대한 이미지 합성을 불길한 목적으로 사용할 수 있다는 우려가 제기되었다. 또한 생성대립신경망을 사용하면 가짜 소셜 미디어 프로필을 만들어 존재하지 않는 사람들의 독특하고 사실적인 프로필 사진을 생성할 수 있다. 2019년 10월 3일, 캘리포니아주는 인물의 동의 없이 가짜 포르노를 만들기 위해 인간 영상 합성 기술을 사용하는 것을 금지하는 법안 AB-602와 선거 후 60일 이내에 정치 후보의 조작된 동영상을 유포하는 것을 금지하는 법안 AB-730을 검토해 통과시켰다. 두 법안 모두 마크 버먼 의원이 저술했으며 개빈 뉴섬 주지사가 서명했다. 이 법은 2020년에 시행될 예정이다. 악용에 대한 대안으로 방위고등연구계획국(DARPA)의 미디어 포렌식 프로그램은 생성대립신경망을 사용하여 생산된 가짜 미디어를 포함한 가짜 미디어에 대항하는 방법을 연구한다.[1]
- 한계
생성대립신경망의 또 다른 한계점은 아직 텍스트를 생성하는 데는 적용하기 어렵다는 점이다. 이미지나 음성 분야에서는 생성대립신경망의 성공 사례가 많이 있지만, 영어나 한국어 같은 자연어를 생성하는 문제에는 생성대립신경망의 성공 사례를 찾아보기 어렵다. 이는 텍스트가 이미지와 달리 불연속적이기 때문이다. 이미지는 실수값인 픽셀로 이루어져 있기 때문에 미분을 통해 조금씩 값을 바꿔보며 개선해 나갈 수 있다. 하지만 텍스트는 단어로 이뤄져 있기 때문에 이런 방식이 불가능하다. 물론 생성대립신경망으로 텍스트를 생성하려는 시도가 없었던 것은 아니지만, 아직 뚜렷한 성과는 내지 못하고 있다.[5]
각주[편집]
- ↑ 1.0 1.1 1.2 Generative adversarial network Wikipedia - https://en.wikipedia.org/wiki/Generative_adversarial_network
- ↑ Rohith Gandhi, 〈Generative Adversarial Networks — Explained〉, 《Towards Data Science》, 2018-05-11
- ↑ 3.0 3.1 3.2 3.3 3.4 Generative adversarial network Google Developers - https://developers.google.com/machine-learning/gan/gan_structure
- ↑ Jonathan Hui, 〈GAN — Some cool applications of GAN〉, 《Medium》, 2018-06-22
- ↑ dreamgonfly, 〈쉽게 씌어진 GAN〉, 《깃허브》, 2018-03-17
참고자료[편집]
- Generative adversarial network Wikipedia - https://en.wikipedia.org/wiki/Generative_adversarial_network
- Generative adversarial network Google Developers - https://developers.google.com/machine-learning/gan/gan_structure
- dreamgonfly, 〈쉽게 씌어진 GAN〉, 《깃허브》, 2018-03-17
- Rohith Gandhi, 〈Generative Adversarial Networks — Explained〉, 《Towards Data Science》, 2018-05-11
- Jonathan Hui, 〈GAN — Some cool applications of GAN〉, 《Medium》, 2018-06-22
같이 보기[편집]