4. 1-2. Unsupervised Learning Approach
Clustering
k-means
mixture models
hierarchical clustering,[2]
Anomaly detection
Neural Networks
Autoencoders
Deep Belief Nets
Hebbian Learning
Generative Adversarial Networks
Self-organizing maps
Approaches for learning latent variable models such as
Expectation–maximization algorithm (EM)
Method of moments
Blind signal separation techniques, e.g.,
5. 2. Generative model
Simulated environments and training data,
Missing data,
Semi-supervised learning,
Multiple correct answers,
Realistic generation tasks,
Simulation by prediction,
Solve Inference Problem
6. 3. AutoEncoder
Encoding : 정보의 형태, 형식을 목적에 맞게 변환.
입력을 압축하고, ( Feature Selection)
재구성 한다. ( Approximation )
10. 4. Generative Adversarial Networks
GAN : 적대적 학습
Ian Goodfellow ( 이안 좋은 동료), 2014
- 논문을 정말 이해가 잘되도록 쓰심.
Yann Lecun : GAN은 근 10-20년 간에 기계학습 분야에서 나온
아이디어 중 최고
http://papers.nips.cc/paper/5423-generative-adversarial-nets
11. 4. Generative Adversarial Networks
Adversarial(적대적) : Generator(G) VS Discriminator(D)
Ex) 지폐위조범 VS 경찰 -> 구별 못 할 확률 Pd = 0.5
12. 4. RNN & CNN 은 이걸 할 수 없는가?
PixelRNN, PixelCNN
이전 픽셀에 의존해서 생성.
모서리 부터 각 픽셀을 지속적으로 생성.
14. 5. Learning
BLACK : Data generating distribution.
BLUE : Discriminator Distribution
GREEN : Generative Distribution
Arrow : x=G(x)의 Mapping
1
2
15. 5. Global Optimality of Pg = Pdata
𝑃𝐺 = 𝑃𝑑𝑎𝑡𝑎 -> Global Optimum. >>>
1
2
Reducing cost of G could increase cost of D!
-> G와 D를 번갈아 학습 시킨다.
-> D를 G보다 많이 학습 시킨다.
16. 4. 수학적 표현 -Minimax problem
Min : D는 판별이 틀릴 확률을 최소화
Max : G는 판별이 틀릴 확률을 최대화
D가 Ideal 하게 학습이 되었다면,
x가 Real Data 이면, D(x) = 1
G(z)가 Fake Data 이면, D(G(z)) = 0
G가 Ideal 하게 학습이 된다면,
𝑃𝐺 = 𝑃𝑑𝑎𝑡𝑎 -> Global Optimum.
19. 6. GAN의 안정화에 대한 연구
이론적으로 fixed solution으로 수렴하는 것이 보장되지만
실제 적용에서는 이론적인 가정이 깨지는 단점.
DCGAN : CNN + GAN
UNROLLED GAN : generate upload 시, descriminator에
추가적인 정보를 제공.
Editor's Notes
autoencoder에서 출력값은 입력값의 개수와 같다.
인풋과 히든 레이어의 가중치를 계산해서 시그모이드 함수를 통과시킨다.
1의 결과물과 출력 레이어의 가중치를 계산해 시그모이드 함수를 통과시킨다.
2의 값으로 MSE를 계산한다.
3의 결과로 나온 loss 값을 SGD로 최적화시키고
backpropagation으로 weight를 갱신한다.
autoencoder에서 출력값은 입력값의 개수와 같다.
인풋과 히든 레이어의 가중치를 계산해서 시그모이드 함수를 통과시킨다.
1의 결과물과 출력 레이어의 가중치를 계산해 시그모이드 함수를 통과시킨다.
2의 값으로 MSE를 계산한다.
3의 결과로 나온 loss 값을 SGD로 최적화시키고
backpropagation으로 weight를 갱신한다.
Sparse AE가 일반적인 AE에 비교하여 다른 점은 BP Algorithm을 보안하기 위한 Parameter의 추가(Weight Decay)와 히든 유닛의 Activation을 제약하는 Parameter을 추가한 것이다. 이는 Coursera의 Machine Learning 강좌로도 유명한 Andrew Ng의 그의 [Lecture Note(CS294)]에서 자세히 설명되어 있다. Sparse AutoEncoder를 처음으로 제안한 사람은 [Ranzato et al 08], [Lee et al 08] 이다. 기본적으로 SaE는 AE의 모델을 그대로 가져오나, 2가지의 Parameter을 추가 하였는데, 그중 한가지가 BP과정에서 Weight Decay Term 이다. 즉 BP과정에서 Vanishing Gradient 문제가 발생할 여지가 있으므로, 고정된 Parameter로 Weight Decay Term을 매우 작은수로 줘서, Vanishing Gradient 문제를 해결하였다.
또한 sparsity parameter를 둬서 hidden Unit (hidden Neurons)에서 발생하는 active/inactive에 대한 제약을 주었다. 여기에 추가적인 penalty term으로 Cross-Entropy 텀을 주었다.
Autoencoder에서는 z가 training data와 특별히 관련이 없이 단순히 계산 중간에 나오는 deterministic한 값일 뿐입니다. 반면, VAE에서는 latent variable z가 continuous한 분포를 가지는 random variable이라는 점이 중요한 차이입니다. 이 latent variable z의 분포는 training 과정에서 data로부터 학습됩니다.
즉, 지금부터는 latent variable z가 평균과 표준편차로 결정되는 확률 분포를 가진다는 뜻입니다. VAE의 encoder는 주어진 x로부터 z를 얻을 확률 p(z|x)p(z|x)로, VAE의 decoder는 z로부터 xx를 얻을 확률 p(x|z)p(x|z)로 나타낼 수 있습니다. 아래 그림들은 Kevin Frans의 블로그와 Oliver Dürr의 슬라이드에서 인용했습니다.
지폐위조범(Generator)는 경찰(Descriminator)을 최대한 열심히 속이려고 하고 다른 한편에서는 경찰이 위조된 지폐를 진짜와 감별하려고(Classify) 노력한다.
경쟁 속에서 Generator 와 Descriminator 모두 능력이 발전하게 되고 Descriminator가 구별할 수 없을 정도가 50%에 이른다고
처음에는 Black과 Greeen이 서로 다르다.
D가 학습을 하게 되면 Blue가 smooth하고 잘 구별하는 Distribution이 된다.ㅏ
G가 학습을 시작하면 Green이 Black과 비슷해져가고
결국 최종적으로는 Black과 Green이 같아져서 D(x) = 0.5가 된다.