GAN 손실 기능 이해


17

나는 Generative Adversarial Networks 이해 (Daniel Seita가 작성한 블로그 게시물) 에서 제공되는 GAN 손실 기능을 이해하기 위해 고심하고 있습니다.

표준 교차 엔트로피 손실에서 우리는 시그 모이 드 함수와 결과 이진 분류를 통해 실행 된 출력을 갖습니다.

시에 타 주

따라서 [각] 데이터 포인트 엑스1 및 해당 레이블에 대해 다음과 같은 손실 함수를 얻습니다.

H((엑스1,와이1),)=와이1로그(엑스1)(1와이1)로그(1(엑스1))

이것은 예상의 로그 일 뿐이지 만, GAN 손실 함수에서 어떻게 실제 분포의 데이터와 생성 모델의 데이터를 동일한 반복으로 처리 할 수 ​​있습니까?

답변:


6

이 질문의 초점

"어떻게 ... 동일한 분포에서 실제 분포의 데이터와 생성 모델의 데이터를 처리 할 수 ​​있습니까?

기초 출판물 분석

참조 된 페이지 인 Generative Adversarial Networks (2017) 에서 박사 후보 인 Daniel Sieta는 Generative Adversarial Networks, Goodfellow, Pouget-Abadie, Mirza, Xu, Warde-Farley, Ozair, Courville 및 Bengio, 2014 년 6 월을 올바르게 참조합니다 . "우리는 두 가지 모델을 동시에 훈련시키는 적대적 프로세스를 통해 생성 모델을 추정하기위한 새로운 프레임 워크를 제안합니다."

  • 생식 모델, G
  • 판별 모델, D

이 두 모델은 하나가 다른 것에 대해 부정적인 피드백의 형태를 제공하는 방식으로 제어되므로 적이라는 용어가 사용됩니다.

  • G는 D를 속일만큼 충분히 일련의 예제의 데이터 분포를 캡처하도록 훈련되었습니다.
  • D는 입력이 G의 모의인지 또는 GAN 시스템의 예 세트인지를 학습하도록 훈련받습니다.

(GAN 시스템에 대한 예제 세트는 실제 샘플이라고도하지만 생성 된 것보다 더 실제적이지 않을 수 있습니다. 둘 다 컴퓨터의 숫자 배열이며, 하나는 내부 원점과 다른 하나는 외부 원점입니다. 외부 카메라가 실제 장면을 가리키는 카메라에서 가져온 것인지 여부는 GAN 작동과 관련이 없습니다.)

확률 적으로 D를 속이는 것은 D가 올바른 분류를 할 때마다 50 % 씩 오탐과 오음이 발생할 확률을 최대화하는 것과 동의어입니다. 정보 과학에서, 이것은 정보의 한계 D가 무한대에 접근함에 따라 G가 0에 접근한다는 것을 의미한다. 그것은 D의 관점에서 G의 엔트로피를 최대화하는 과정이므로 교차 엔트로피라는 용어입니다.

컨버전스 달성 방법

문제에 대한 Sieta의 2017 년 글에서 재현 된 손실 함수는 D의 함수이므로 주어진 훈련 상태에 대한 전체 세트에 적용될 때 두 분포 사이의 교차 엔트로피 (또는 상관 관계)를 최소화하도록 설계되었습니다.

H((엑스1,와이1),)=1(엑스1)

교차 엔트로피를 최대화하도록 설계된 G에 대한 별도의 손실 함수가 있습니다. 시스템에는 두 가지 수준의 훈련 세분성이 있습니다.

  • 2 인 게임에서 게임의 움직임
  • 훈련 샘플의 것

이것들은 다음과 같이 외부 반복으로 중첩 반복을 생성합니다.

  • G의 훈련은 G의 손실 함수를 사용하여 진행됩니다.
  • 모의 입력 패턴은 현재 훈련 상태에서 G에서 생성됩니다.
  • D의 훈련은 D의 손실 함수를 사용하여 진행됩니다.
  • 교차 엔트로피가 아직 충분히 최대화되지 않은 경우 반복하면 D는 여전히 식별 할 수 있습니다.

D가 마침내 게임에서 졌을 때, 우리는 목표를 달성했습니다.

  • G는 훈련 데이터 배포를 복구
  • D는 비 효율성으로 감소되었습니다 ( "1/2 확률")

동시 교육이 필요한 이유

두 모델이 동시성을 시뮬레이션하기 위해 앞뒤로 훈련되지 않은 경우 2014 년 논문에서 주장한 고유 한 솔루션에서 대적 평면 (외부 반복)의 수렴이 발생하지 않습니다.

추가 정보

문제를 넘어서, Sieta의 논문에서 관심을 갖는 다음 항목은 "발전기 손실 함수의 불량한 설계"가 하강을 유도하고 때때로 포화라고하는 것을 생성하기에 불충분 한 기울기 값으로 이어질 수 있다는 것입니다. 채도는 단순히 역 전파의 하강을 부동 소수점 반올림으로 인해 발생하는 혼란스러운 노이즈로 안내하는 피드백 신호의 감소입니다. 이 용어는 신호 이론에서 비롯됩니다.

Goodfellow (노련한 연구원) 의 2014 년 논문을 검토 하여 2017 페이지가 아닌 GAN 기술에 대해 배울 것을 제안 합니다.


3

처음부터 시작합시다. GAN은 우리가 제공 한 데이터와 유사한 데이터를 작성하는 방법을 배울 수있는 모델입니다.

GAN 이외의 생성 모델을 학습 할 때 가장 쉬운 손실 함수는 아마도 평균 제곱 오차 (MSE) 일 것입니다.

친절하게 예를 들어 드리겠습니다 ( Trickot L 2017 ).

이제 고양이를 생성한다고 가정하자. 사진에 특정 고양이의 모델 예를 제공 할 수 있습니다. 손실 기능을 선택한다는 것은 처벌을 피하기 위해 모델이 각 고양이를 정확하게 재생산해야한다는 것을 의미합니다.

그러나 이것이 반드시 우리가 원하는 것은 아닙니다! 당신은 당신의 모델이 고양이를 생성하기를 원합니다. 어떤 고양이라도 그럴듯한 고양이라면 할 수 있습니다. 따라서 손실 기능을 변경해야합니다.

그러나 어떤 기능이 콘크리트 픽셀을 무시하고 사진에서 고양이를 감지하는 데 집중할 수 있습니까?

그것은 신경망입니다. 이것이 GAN에서 차별 자의 역할입니다. 차별 자의 임무는 이미지가 얼마나 그럴듯한 지 평가하는 것입니다.

인용 한 논문, Generative Adversarial Networks 이해 (Daniel S 2017)에는 두 가지 주요 통찰력이 나와 있습니다.

주요 통찰 1 : 차별 자의 손실 함수는 교차 엔트로피 손실 함수입니다.

주요 통찰 2 : 기울기 포화가 훈련에 악영향을 줄 수있는 방법을 이해합니다. 그라디언트 채도는 그라디언트가 학습을 수행하기에 너무 작을 때 (즉, 0) 일반적인 문제입니다.

귀하의 질문에 대답하려면 두 번째 주요 통찰력에 대해 자세히 설명해야합니다.

GAN과 관련하여 발생기 손실 함수의 설계가 잘못되어 구배 포화가 발생할 수 있으므로이 "주요한 통찰력"은 발생기의 여러 손실 함수 간의 상충 관계를 이해하는 데 있습니다.

이 논문에서 구현 된 설계는 매우 특정한 기능 (두 클래스를 구별하기 위해)을 가짐으로써 손실 기능 문제를 해결합니다. 이를 수행하는 가장 좋은 방법은 교차 엔트로피 (Insight 1)를 사용하는 것입니다. 블로그 게시물에 따르면

교차 엔트로피는 부분적으로 학습을 가속화하고 분류자가 올바른 경우에만 기울기 포화를 피하도록 설계 되었기 때문에 큰 손실 함수입니다.

블로그 게시물의 의견에서 알 수 있듯이

[교차 엔트로피 함수에서] 기대 값은 합계에서 나옵니다. 불연속 랜덤 변수에 대한 기대 정의를 살펴보면 확률 변수별로 각기 다른 랜덤 변수 값을 합산해야한다는 것을 알 수 있습니다. 여기에서 확률은 각각 1/2에 불과하며, 우리는 그것들을 생성기 또는 판별 기에서 온 것으로 취급 할 수 있습니다.


이 질문은 ANN의 손실 함수로 사용하기 가장 쉬운 것이 무엇인지 묻지 않았습니다. 수학의 세부 사항은 @tryingtolearn에게 명확하지 않았으며 명확한 설명을 제공하지 않고 대학원생을 인용하는 것은 명확하지 않습니다.
FauChristian

1

z입력과 x입력 의 조합을 단일 샘플로 취급 할 수 있으며 판별자가 각 분류를 얼마나 잘 수행했는지 평가할 수 있습니다.

나중에 게시물 하나를 분리하는 이유이다 yE(p~data)하고 E(z)(기본적으로 서로 다른 기대를 가지고 -y 판별 입력의 각들)을하고 판별 실적을 평가하기 위해 두 가지를 동시에 측정 할 필요가있다.

그렇기 때문에 손실 함수는 실제 입력의 양의 분류와 음의 입력의 음의 분류의 조합으로 생각됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.