현실적 상황 속 데이터 => 불균형 데이터 분포가 많음 => 원시 데이터의 증강이 목표
DCGAN 등 다양한 GAN이 존재 => 그 중 WGAN, WGAN-GP는 안정적으로 최적화됨
기본 지식인데 이제 내가 헷갈리던 것들 //ANN, DNN, CNN, RNN
더보기
//ANN, DNN, CNN, RNN
일단 인공지능:artificial intelligence에서 이제 기계학습의 한 분야로 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야가 machine learning임
machine learning에서 더 여러 비선형 변환기법의 조합을 통해 높은 수준의 추상화(다량의 복잡한 자료들에서 핵심적인 내용만 추려내는 작업)를 진행하게되는 게 deep learning
여기서 이제 머신러닝의 한 분야인 딥러닝은 기본적으로 인공신경망(Artificial Neural Network)을 본따서 학습을 진행하게 됨
ANN:(Artificial Neural Network)에서 몇가지 문제들이 발생하였고 이들을 해결하기 위해 모델 내 은닉층을 많이 늘려서 학습의 결과를 향상시키는 방법이 등장하였고 이것이 DNN:deep neural network
DNN의 종류에 여러가지가 존재하는데 여기에 CNN, RNN, LSTM, GRU 등이 존재
CNN:convolution neural network
RNN:recurrent neural network
LSTM:Long Short Term Memory
1) 기본 GAN의 알고리즘
2) WGAN-GP를 사용한 검증 방법
3) GAN 효과 test 실험
순으로 정리해보겠음 //왜냐면 논문에 그렇게 정리되어있으니까 ㅋ
https://pdf.sciencedirectassets.com/271597/1-s2.0-S0925231220X00191/1-s2.0-S0925231219304953/main.pdf?X-Amz-Security-Token=IQoJb3JpZ2luX2VjEM7%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJGMEQCIGK5Cz3nEcCro%2Bg4edjNmFfOJWpDxV5qVQ0rZmknNCkIAiAKWPGSfmtyXvvok047YGZfzKjWeNaYR7%2BiFj2XQRl%2Bgyq7BQi3%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAUaDDA1OTAwMzU0Njg2NSIMTu0fQDMFhYdudBwVKo8FP2pa8wfR5SwlHUHdulayPvDe50ZSS%2FNQSds9%2BufdjmfV%2FqgkKfllPxVe5JIcdtu20IEcX5OwBrPV8bRx%2FhVdSlko%2F%2BiiYojDC79RvKWthG%2BqMVJN6BhgA2jZqnmNH9drvr3G9PimY8%2FgUK0GKrlI03pNngrmA8SisfyISMwEF07LuTozgcp6unvQxGLxT8oDhwmQbKRaWKJWEM2ZpdxvY936ZuC3t1NjkEtEpsoPajB66%2BjyGyPneq10xzelbloUXnew3UzBppFIsT8IsC9dL710PYcdaJrmJJcIKQpyxqnE7Eyqey51CmsO7fBQ9arBWTsQfMYk8%2FUkmjnSowx2sBN%2BZZblSa3irVN4dcgfs9T5gdDvLA1wSk00ynXG0bduYkS8FoStTY6MSCJCi2KkTDGlwia5B9LoYhNqD%2B9asn8xYL4nP10LpNWgRm889qpiEthYfqRzzLxwaS67d1V%2Fi3wUUuFyWjq5UCZMhYl9kLv3vJzqVVUjtVgMmokiAzNdbBtRhZMv%2BPvyecITAcEVc%2BrqQVH%2BEQlRk%2B0fwU%2FiDGJtHF4Yr7nEJn4SC%2BAdtz%2BOkyTMGHb6kHzAp%2FP%2BsZIzuaqAN8xmnkbLoGkLICpjYmnwzqexkUvEDrMp0si%2BjzbqxBLGQzSHGhSURXlgrRoh7LqJIxO6RIuKKN5tCfdN7369TkF3GYn6jhDJTHa0e4pqVTg3Wfy9umVkLMvuFf1xlw4dw4JqzhEbWSAw5Hq2NeGupaPshrxHCno%2FMeWz7lz8w5BJW0Je%2FOQ9aQhW6ZjVj9%2FBQLoYFL2JBNFciX%2Ff2hEQqlN5JXVzyf%2FS7BuuYRRXplg3VQ5VNsw37FLYSDCQAmIBVay1i4MFNaAHoC58XjCS76SoBjqyASTRA52lhCMSNxY6EvIM9gKUzCYk%2FmtmsMAzEnRyfuMuyAdGb7zBwmvxwWYvnQs2fJftgaV1WNSI4zvv4M22%2F0T6xxBdm7TGZ1R%2BRFOTbhQ9PzfPTPm70ZzZFlABEWXrALliF3scmMlKLdaSlC9vapFDLPw2Espi%2FMcLlB33OTOS6nYJXVVRjnD6h1%2BlUtnI%2BYEdmiLHmX%2F36DgE4EKDI4KrDjmJPlWkL%2BarDukoRB5l0pM%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20230919T063604Z&X-Amz-SignedHeaders=host&X-Amz-Expires=300&X-Amz-Credential=ASIAQ3PHCVTYZJ5CO6ON%2F20230919%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=56964882a137f5d33306f9664d9bde2b1888e17b8c59721899cff906b97211fa&hash=0ead6135ac257f4d70a9c1b309c639280a36c9a5ab29dde5b627bad5d48bce14&host=68042c943591013ac2b2430a89b270f6af2c76d8dfd086a07176afe7c76c2c61&pii=S0925231219304953&tid=spdf-8df3d94b-d16d-464f-a4c0-cd307c495e86&sid=91cfe3aa78a8634f576aa0116a56134a7253gxrqa&type=client&tsoh=d3d3LnNjaWVuY2VkaXJlY3QuY29t&ua=11175c5357020c050354&rr=808fcff15fcd30cd&cc=kr
https://pdf.sciencedirectassets.com/271454/1-s2.0-S0263224120X00078/1-s2.0-S0263224120303067/main.pdf?X-Amz-Security-Token=IQoJb3JpZ2luX2VjEM%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJGMEQCIBIrJ0jX5TskMzO6m9hRwxeaafDyrfylpZsgAKnxgnwaAiBSv4jAfbWZxxnvQF4L1BuNzN3MDMC8HRtpkfESKloJCCq8BQi3%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAUaDDA1OTAwMzU0Njg2NSIMwnTtVqZHWUMsptXUKpAFQc%2B95KfZHdFz2RBCFYPpTJDsHjNTtg6qPkJAQBKT1KWpT%2FdKwGGBRt4oVT3ucYm3HJ9S4kBuk%2BVo9FMwybTm3TZHG0SuL6HhWHYmN3vSMC7RhZw%2FRxjx6lr9ZPTA3ygfN4wgOoYFE4Zj3fJlsTv%2BWuhFAcOH6JFGBPMLgA1wVQotTQz7iua7T4pYKnD6mmzthPgiGMjN995OLaU4zWlB1DsxnZOuaE4RMun2OsZOCyLekcDyCBmqL0hVhvBww4rdpDKPLbrJ6uneQ0z8WxFArhaFiC4OorZ30wXwWxX%2B4DsK1Qg%2FFo56GAsWiMGZiEKiMromQ1EEodW8JWY%2FigHGlfWpmFv065mbUv9Y%2B4vAq8Rjmh%2B0niKh9uYDUzSmwMBHZfRX3agMwcfRgbgcKI2%2FHgurAFnPcDacTT4vH0L%2BonSrQr%2B5ctpVVfxuDU%2Bzh2C8VJdxyaixgJmcHpLdOwYBFYS56Xr9RxXuxsrRgbXF4qsxq2KIFQTZr7JIj2VsQj8ifwT4bIDezB7yVzyI0ymp0cULaB0eb3epa3h0w1RjVmLCq4rkAb3efQQcOjGBAyIWvzL9thF3B65i080ivKCxcwmn3E3MVG6tHk4oOVV6wIjyISOXf5C80A1c1EC9V%2BBC5U6B8SxELR1Jcs%2B93xpGbRWLI0WumN5FQ7HNoLgbyba8rzb3anywVNs0t5ownlC%2Fuz4tVCW1eYZj%2F8Schk%2B2VlalFmppqzGvlf%2B53AxHClfgWBYeihx7kq8DPlmzUIqz%2Fhl1coJGKLaiSOTXIobRtjKFxW79FsafRNFs1cXYVGplnd4oIiZxnYmXkk9NLzMwhIRnK%2FrKAgJe62Yqg3hWN%2FTtLmhR%2FRKcri4wQk2ejswwyPWkqAY6sgFtXpiLFBitnDt2N6zepz5NlhzT9xR1YVylMbR%2BpXmfhfFbelPeiBVD61oE3%2BfXR04riD2bXmLJ6Ti3cx74FdLOjvZ7%2B3WEC%2FFHNDCEhNWakae3OiTu9ljP%2BsF9m5CJDWXdazONmGMoI2amnNujsEgq6D6q7ARQn73hJv8t2PYpUG0yAdirywMhZbRHTSDeJK8jl7Z8T82ueQu0Z3uFnz72jOfufLpQucgILm%2FkOiJjdrwP&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20230919T063413Z&X-Amz-SignedHeaders=host&X-Amz-Expires=300&X-Amz-Credential=ASIAQ3PHCVTYRUOOSTS7%2F20230919%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=839d54bc50ba49ffdd21a7d280723aec064e459d25084c7d91a73e50f8624eda&hash=27da5cd1143e732a0ca74e6c757e58600e5a2c38405e08cca72d4b82d931cecd&host=68042c943591013ac2b2430a89b270f6af2c76d8dfd086a07176afe7c76c2c61&pii=S0263224120303067&tid=spdf-ded49191-3961-4095-898c-ec97f3f28985&sid=91cfe3aa78a8634f576aa0116a56134a7253gxrqa&type=client&tsoh=d3d3LnNjaWVuY2VkaXJlY3QuY29t&ua=11175c5357020c075653&rr=808fcd366fd530cd&cc=kr
1) Generative Adverserial network
훈련 전략 : minimax 게임
-generator : 가우스, 균일 분포의 noise 분포에서 샘플을 가져와서 기존 실제 데이터와 동일한 데이터 공간으로 mapping
=> 가능한 현실적인 데이터를 만들어내도록 훈련받음
-discriminator : 입력된 가짜(생성된) 데이터와 실제 데이터 구분
=> 생성된 데이터에 속지 않도록 훈련받음
두 모델이 적대적 관계를 가지며 학습진행됨
generator : G, G의 parameter : θ / discriminator : D , D의 parameter : ϕ
1 : real data, 0 : fake data, x : real data 분포, z : nosie
discriminator : D(x) => 1로 만들어 real data를 1로 분류 / D(G(z)) => 0으로 만들어 fake data를 0으로 분류
generator : D(G(z)) => 1로 만들어 판별자를 속이려 한다.
근데 이제 (1) minimax 게임은 원래 불안정함 => Jensen-Shannon 발산
(2) 수렴 문제 존재, 훈련을 언제 멈춰야하는지 모른다.
학습 정도를 알려면 샘플을 직접 확인하여 보는 수밖에 없다.
+ 위 object function을 적용하면 훈련 결과 학습이 잘 진행이 안됨
generator의 성능이 좋지 않아 gradient가 굉장히 작음
gan 훈련 개선 방법
- feature matching
- minibatch discrimination
- historical averaging
- one-sided label smoothing
- virtual batch normalization
- adding noise
- use better metric of dictribution similarity
즉 mode collapsing과 vanishing gradient 문제가 존재하였기 때문에
위 문제들을 해결하기 위해 나온 방법이 WGAN
mode collapsing : 학습시키려는 모형이 실제 데이터의 분포를 모두 커버하지 못하고 다양성을 잃어버리는 현상
//loss만 줄이려하다보니 G가 전체 데이터 분포를 찾지 못하고 한번에 하나의 mode에만 강하게 몰린다.
2) Wasserstein GAN
GAN의 값 함수에서 Jensen-Shannon 발산 대신 연속적인 Wasserstein 거리(=Earth Mover's distance = EM distance) 사용
=> 좀 더 smooth한 측정을 통해 안정적인 gradient descents를 사용한 learning 진행
γ는 x에서 y로 얼마의 흙 비율이 이동되어야 하는지 설명하여 P가 Q의 확률 분포를 따르도록 만듦
x에 대한 주변 분포는 P로 더해짐
=> P에서 Q로 옮겨진 흙의 총량dr(x,y) * 이동거리c(x,y)
즉 모든 x,y 쌍에 대한 평균 예상 비용 : E(x,y)∼γ[c(x,y)]
위 솔루션 중 최솟값이 EM distance
gan과 wgan
-js 발산은 불연속적으로 급격히 변하거나 미분 불가능한 부분 존재
-wasserstein 지표만이 부드러운 측정을 제공하며, 경사하강법을 사용한 안정적인 학습 과정에 유용함
이를 통해 gan의 문제점들을 보완함
근데 이제 wgan을 사용하려면 기반되는 조건이 Lipschitz continuity가 있음
∣f(x)−f(y)∣≤K∣∣x−y∣∣
실수값 함수 f가 모든 x,y에 대해 위 식을 만족할 때 K-Lipschitz 연속
위 조건들이 학습되는 과정
-f가 파라미터 θ로 매개변수화된 1-Lipschitz 연속 함수들이라면
수정된 wasserstein-GAN에서 'discriminator'은 좋은 θ를 찾기 위해 fθ를 학습하는데 사용됨
-손실 함수는 P와 Q 사이 EM distance를 측정하는데 사용됨
위 과정에 따라 discriminator은 더이상 진짜와 가짜를 직접 구별하는 것이 아닌 EM distance를 계산하기 위해 1-Lipschitz 연속함수를 학습하는데 훈련됨
훈련 중 손실함수의 감소에 따라 EM distance는 줄고 생성 모델의 출력은 real data의 분포에 더 근접한다
=> 단, 이때 1-Lipschitz 연속성을 유지해야하는 것이 문제
위 조건에 부합하기 위해 트릭 사용
- 가중치 w를 [-0.01,0.01]로 clipping 진행하여 상한과 하한을 얻음 : weight clipping
[Algorithm]
-weight clipping
-wasserstein distance
-Adam => RMSProp 최적화기 사용
3) WGAN-GP