Autoregressive models: PixelRNN, PixelCNN
explicit density function을 정의해놓고 바로 optimize
pixel에 대한 sequence를 정의해놓고 순차적으로
PixelRNN은 training time이 길다, sequential하게 generate하는 것도 오래 걸림
PixelCNN도 training time은 효율적으로, generation time은 sequential의 한계로 오래 걸림
explicit한 확률 기반 함수를 정의해놓고 이것의 training data에 대한 likelihood를 maximize하는 방법으로 tractable한 model을 만들어 사용할 수 있었다
Variational Autoencoder
explicit density function을 정의, lower bound
x → z를 만드는 encoder, z → x'을 만드는 decoder networks
모든 latent factor z에 대해 적분하는 과정이 intractable ⇒ lower bound를 정의하고 이를 maximize하여 optimize하는 방법 사용
Generative Adversarial Networks (GANs)
implicit한 방법으로 generator와 discriminator의 경쟁을 통해 결과 도출
discriminator : real, fake data를 모두 입력받아 real인지 fake인지 구별
generator : 어떤 분포 z로부터 새로운 fake data를 만들어냄
discriminator와 generator가 서로 경쟁하듯 alternative learning을 통해 둘의 성능을 높임
둘의 balancing이 잘 맞으며 학습이 일어나야 GAN이 효과적으로 동작
semantic arithmetic 연산이 가능
중간에서는 어떤 일이 벌어지고 있는걸까? 뉴런들에는 어떤 변화가 있는걸까?
input에 대한 first layer에 있는 각 filter들 visualizaion
AlexNet은 64개의 3x11x11 filters
물결 무늬, 직선, 포인트, 색 등에 대해 학습, 굉장히 작은 패턴들을 catch
ResNet, DenseNet의 경우 64개의 3x7x7 filters
⇒ 네트워크의 구조, filter size가 달라도 convolve되었을 때 나타나는 결과들은 유사하다