[GAN] GAN 모델 안정화를 위한 기법 - LSGAN

2024. 1. 8. 14:15·공부정리/Computer Vision
728x90
반응형

GAN 모델 안정화를 위한 기법 -LSGAN

LSGAN

Pasted image 20240108100451.png

LSGAN의 손실함수

LSGAN(Least Squares Generative Adversarial Networks)의 핵심 요소 중 하나는 그것의 손실함수이다. LSGAN은 전통적인 GAN의 교차 엔트로피 손실함수(Cross-Entropy Loss) 대신 최소제곱 손실함수(Least Squares Loss)를 사용한다.
이 손실함수는 GAN의 학습 안정성을 향상시키고 mode-collapsing 문제를 줄이는 데 중요한 역할을 한다

LSGAN의 손실함수 정의

  • 생성자(G)의 손실함수: 생성자는 판별자가 생성된 데이터를 진짜로 분류하도록 속이려고 한다. 생성자의 손실은 판별자의 출력이 실제 데이터와 얼마나 가까운지를 측정한다.
  • 판별자(D)의 손실함수: 판별자는 생성된 데이터와 실제 데이터를 정확히 구분하려고 한다. 판별자의 손실은 실제 데이터를 얼마나 정확히 진짜로, 생성된 데이터를 가짜로 분류하는지에 대한 오차를 측정한다.

LSGAN 손실함수의 특징

  • 손실 최소화: 생성자와 판별자는 각각 자신의 손실을 최소화하려고 노력한다.
  • 경계값 조정: LSGAN에서는 판별자의 출력을 0과 1 사이로 제한하는 대신, 연속적인 값으로 조정하여 보다 부드러운 그라디언트를 제공한다.
  • 안정적인 학습: 최소제곱 손실함수는 경사 소실(Gradient Vanishing) 문제를 완화하고, 학습 과정을 안정화시킨다.

이진 분류할 대 Desition Boundary 에서 멀어질수록

Pasted image 20240108113510.png


파란선을 기준으로 위는 가짜 아래는 진짜로 판단

**+**모양은 가짜data를 나타내고, O는 진짜data를 나타냅니다.

그리고 마지막으로 ☆은 가짜data인데 진짜로 분류된 것들입니다. -> 그래서 적용한것이 Least Square입니다.

Pasted image 20240108113541.png

Least Square Decision boundary가 추가되었습니다. 이 Decision Boundary가 생김으로써 ☆들은 O와 멀리 떨어져 있을 수록 패널티를 받고 점점 O쪽으로 가까워집니다.

Pasted image 20240108101108.pngPasted image 20240108101121.png


학습데이터를 생각하고, 여러 무리의 데이터들이 원형의 영역으로 샘플링되는 형태임

학습이 진행됨에 따라 오리지널 겐의 경우 -> Mode-Collapsing이 나타날 수 있음

Pasted image 20240108105138.png

하나의 그룹 데이터만 주구장창 생성할 수 있다.

오리지널 GAN과 Mode-Collapsing 문제

오리지널 GAN

  • 오리지널 GAN은 생성자(Generator)와 판별자(Discriminator) 두 네트워크의 경쟁을 통해 학습이 진행된다.
  • 생성자는 실제 데이터와 유사한 데이터를 생성하려 하고, 판별자는 생성된 데이터와 실제 데이터를 구분하려 한다.

Mode-Collapsing 문제

  • Mode-collapsing은 생성자가 다양한 데이터를 생성하기보다 몇 가지 특정 패턴의 데이터만을 반복적으로 생성하는 현상이다.
  • 이는 GAN의 학습 과정에서 생성자가 판별자를 속이는 방법을 찾으면서 발생한다. 생성자가 특정 패턴을 학습해 이를 반복적으로 생성하게 되는 것이다.

LSGAN의 등장

LSGAN의 특징

  • LSGAN은 오리지널 GAN의 목적함수를 최소제곱 손실함수(Least Squares Loss)로 대체한다.
  • 이는 판별자의 출력을 확률적인 것에서 연속적인 값으로 변환하여, 생성자가 보다 더 다양한 데이터를 생성하도록 유도한다.

LSGAN의 장점

  1. Mode-Collapsing 해결: 최소제곱 손실함수는 생성자가 다양성을 갖는 데이터를 생성하도록 유도하여 mode-collapsing 문제를 완화한다.
  2. 안정적인 학습: 전통적인 GAN에 비해 LSGAN은 학습 과정이 더 안정적이다.

LSGAN의 단점

  1. 과적합의 가능성: 특정 데이터셋에 대해 과도하게 최적화되는 경향이 있어, 일반화 능력이 저하될 수 있다.
  2. 세밀한 조정 필요: 최소제곱 손실함수의 파라미터를 적절히 조정하지 않으면, 여전히 원하는 결과를 얻기 어려울 수 있다.

GAN 모델 안정화를 위한 기법 - WGAN-GP

Pasted image 20240108105320.pngPasted image 20240108105307.png


GP: 그래디언트 패널티
추가된 손실 함수의레귤러라이제이션 텀

Pasted image 20240108105723.png

GAN 학습 안정화 기법 요약

  • 2-Player Game을 통해 학습하는 GAN모델은, 두 모델 중 어느 한 쪽이 과도하게 학습되고 다른 쪽은 전혀 학습이 되지 않는 등, 학습이 불안정해질 수 있음
  • LSGAN, WGAN-GP 처럼 목적 함수를 새로이 정의하거나 regularization term 을 원래 목적 함수에 추가하여 학습함으로 써 안정화가능
  • 이외에도 다양한 이론적인 유도 과정 및 경험적인 실험 과정을 통해 제안된 방법이 존재(Spectral Nomalization)\

이 글은 옵시디언 프로그램을 통해 티스토리에 게시되었습니다.

728x90
반응형

'공부정리 > Computer Vision' 카테고리의 다른 글

[GAN] GAN 모델 안정화를 위한 기법 - PGGAN  (0) 2024.01.08
[GAN] GAN 모델 안정화를 위한 기법 - DCGAN  (1) 2024.01.08
[GAN] GAN이란?  (0) 2024.01.08
[GAN] VAE(Variational Auto-Encoder)  (0) 2024.01.05
[GAN] 확률 밀도의 추정과 샘플링  (1) 2024.01.05
'공부정리/Computer Vision' 카테고리의 다른 글
  • [GAN] GAN 모델 안정화를 위한 기법 - PGGAN
  • [GAN] GAN 모델 안정화를 위한 기법 - DCGAN
  • [GAN] GAN이란?
  • [GAN] VAE(Variational Auto-Encoder)
sillon
sillon
꾸준해지려고 합니다..
    반응형
  • sillon
    sillon coding
    sillon
  • 전체
    오늘
    어제
    • menu (639)
      • notice (2)
      • python (68)
        • 자료구조 & 알고리즘 (23)
        • 라이브러리 (19)
        • 기초 (8)
        • 자동화 (14)
        • 보안 (1)
      • coding test - python (304)
        • Programmers (169)
        • 백준 (76)
        • Code Tree (22)
        • 기본기 문제 (37)
      • coding test - C++ (3)
        • Programmers (11)
        • 백준 (8)
        • 기본기문제 (3)
      • 공부정리 (139)
        • 신호처리 시스템 (0)
        • Deep learnig & Machine lear.. (41)
        • Data Science (18)
        • Computer Vision (17)
        • NLP (40)
        • Dacon (2)
        • 모두를 위한 딥러닝 (강의 정리) (4)
        • 모두의 딥러닝 (교재 정리) (9)
        • 통계 (3)
      • HCI (23)
        • Haptics (7)
        • Graphics (11)
        • Arduino (4)
      • Project (21)
        • Web Project (1)
        • App Project (1)
        • Paper Project (1)
        • 캡스톤디자인2 (17)
        • etc (1)
      • OS (10)
        • Ubuntu (9)
        • Rasberry pi (1)
      • App & Web (9)
        • Android (7)
        • javascript (2)
      • C++ (5)
        • 기초 (5)
      • Cloud & SERVER (8)
        • Git (2)
        • Docker (1)
        • DB (4)
      • Paper (7)
        • NLP Paper review (6)
      • 데이터 분석 (1)
        • GIS (0)
      • daily (2)
        • 대학원 준비 (0)
      • 영어공부 (6)
        • job interview (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    programmers
    소수
    Python
    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
sillon
[GAN] GAN 모델 안정화를 위한 기법 - LSGAN
상단으로

티스토리툴바