InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets
오사카 대학 박사과정인 Takato Horii군이 작성한 자료
데이터 생성 모델로 우수한 GAN을 이용하여 비지도학습을 통해
"알기쉬게" 이미지의 정보를 표현하는 특징량을 "간단하게"획득하기
* 특징이 서로 얽혀있는 Physical space에서 서로 독립적인 Eigen space로 변환하는 것과 같은 원리
발표자: 최윤제(고려대 석사과정)
최윤제 (Yunjey Choi)는 고려대학교에서 컴퓨터공학을 전공하였으며, 현재는 석사과정으로 Machine Learning을 공부하고 있는 학생이다. 코딩을 좋아하며 이해한 것을 다른 사람들에게 공유하는 것을 좋아한다. 1년 간 TensorFlow를 사용하여 Deep Learning을 공부하였고 현재는 PyTorch를 사용하여 Generative Adversarial Network를 공부하고 있다. TensorFlow로 여러 논문들을 구현, PyTorch Tutorial을 만들어 Github에 공개한 이력을 갖고 있다.
개요:
Generative Adversarial Network(GAN)은 2014년 Ian Goodfellow에 의해 처음으로 제안되었으며, 적대적 학습을 통해 실제 데이터의 분포를 추정하는 생성 모델입니다. 최근 들어 GAN은 가장 인기있는 연구 분야로 떠오르고 있고 하루에도 수 많은 관련 논문들이 쏟아져 나오고 있습니다.
수 없이 쏟아져 나오고 있는 GAN 논문들을 다 읽기가 힘드신가요? 괜찮습니다. 기본적인 GAN만 완벽하게 이해한다면 새로 나오는 논문들도 쉽게 이해할 수 있습니다.
이번 발표를 통해 제가 GAN에 대해 알고 있는 모든 것들을 전달해드리고자 합니다. GAN을 아예 모르시는 분들, GAN에 대한 이론적인 내용이 궁금하셨던 분들, GAN을 어떻게 활용할 수 있을지 궁금하셨던 분들이 발표를 들으면 좋을 것 같습니다.
발표영상: https://youtu.be/odpjk7_tGY0
발표자: 이활석(NAVER)
발표일: 2017.11.
최근 딥러닝 연구는 지도학습에서 비지도학습으로 급격히 무게 중심이 옮겨 지고 있습니다. 본 과정에서는 비지도학습의 가장 대표적인 방법인 오토인코더의 모든 것에 대해서 살펴보고자 합니다. 차원 축소관점에서 가장 많이 사용되는Autoencoder와 (AE) 그 변형 들인 Denoising AE, Contractive AE에 대해서 공부할 것이며, 데이터 생성 관점에서 최근 각광 받는 Variational AE와 (VAE) 그 변형 들인 Conditional VAE, Adversarial AE에 대해서 공부할 것입니다. 또한, 오토인코더의 다양한 활용 예시를 살펴봄으로써 현업과의 접점을 찾아보도록 노력할 것입니다.
1. Revisit Deep Neural Networks
2. Manifold Learning
3. Autoencoders
4. Variational Autoencoders
5. Applications
Variational Autoencoders For Image GenerationJason Anderson
Meetup: https://www.meetup.com/Cognitive-Computing-Enthusiasts/events/260580395/
Video: https://www.youtube.com/watch?v=fnULFOyNZn8
Blog: http://www.compthree.com/blog/autoencoder/
Code: https://github.com/compthree/variational-autoencoder
An autoencoder is a machine learning algorithm that represents unlabeled high-dimensional data as points in a low-dimensional space. A variational autoencoder (VAE) is an autoencoder that represents unlabeled high-dimensional data as low-dimensional probability distributions. In addition to data compression, the randomness of the VAE algorithm gives it a second powerful feature: the ability to generate new data similar to its training data. For example, a VAE trained on images of faces can generate a compelling image of a new "fake" face. It can also map new features onto input data, such as glasses or a mustache onto the image of a face that initially lacks these features. In this talk, we will survey VAE model designs that use deep learning, and we will implement a basic VAE in TensorFlow. We will also demonstrate the encoding and generative capabilities of VAEs and discuss their industry applications.
발표자: 최윤제(고려대 석사과정)
최윤제 (Yunjey Choi)는 고려대학교에서 컴퓨터공학을 전공하였으며, 현재는 석사과정으로 Machine Learning을 공부하고 있는 학생이다. 코딩을 좋아하며 이해한 것을 다른 사람들에게 공유하는 것을 좋아한다. 1년 간 TensorFlow를 사용하여 Deep Learning을 공부하였고 현재는 PyTorch를 사용하여 Generative Adversarial Network를 공부하고 있다. TensorFlow로 여러 논문들을 구현, PyTorch Tutorial을 만들어 Github에 공개한 이력을 갖고 있다.
개요:
Generative Adversarial Network(GAN)은 2014년 Ian Goodfellow에 의해 처음으로 제안되었으며, 적대적 학습을 통해 실제 데이터의 분포를 추정하는 생성 모델입니다. 최근 들어 GAN은 가장 인기있는 연구 분야로 떠오르고 있고 하루에도 수 많은 관련 논문들이 쏟아져 나오고 있습니다.
수 없이 쏟아져 나오고 있는 GAN 논문들을 다 읽기가 힘드신가요? 괜찮습니다. 기본적인 GAN만 완벽하게 이해한다면 새로 나오는 논문들도 쉽게 이해할 수 있습니다.
이번 발표를 통해 제가 GAN에 대해 알고 있는 모든 것들을 전달해드리고자 합니다. GAN을 아예 모르시는 분들, GAN에 대한 이론적인 내용이 궁금하셨던 분들, GAN을 어떻게 활용할 수 있을지 궁금하셨던 분들이 발표를 들으면 좋을 것 같습니다.
발표영상: https://youtu.be/odpjk7_tGY0
발표자: 이활석(NAVER)
발표일: 2017.11.
최근 딥러닝 연구는 지도학습에서 비지도학습으로 급격히 무게 중심이 옮겨 지고 있습니다. 본 과정에서는 비지도학습의 가장 대표적인 방법인 오토인코더의 모든 것에 대해서 살펴보고자 합니다. 차원 축소관점에서 가장 많이 사용되는Autoencoder와 (AE) 그 변형 들인 Denoising AE, Contractive AE에 대해서 공부할 것이며, 데이터 생성 관점에서 최근 각광 받는 Variational AE와 (VAE) 그 변형 들인 Conditional VAE, Adversarial AE에 대해서 공부할 것입니다. 또한, 오토인코더의 다양한 활용 예시를 살펴봄으로써 현업과의 접점을 찾아보도록 노력할 것입니다.
1. Revisit Deep Neural Networks
2. Manifold Learning
3. Autoencoders
4. Variational Autoencoders
5. Applications
Variational Autoencoders For Image GenerationJason Anderson
Meetup: https://www.meetup.com/Cognitive-Computing-Enthusiasts/events/260580395/
Video: https://www.youtube.com/watch?v=fnULFOyNZn8
Blog: http://www.compthree.com/blog/autoencoder/
Code: https://github.com/compthree/variational-autoencoder
An autoencoder is a machine learning algorithm that represents unlabeled high-dimensional data as points in a low-dimensional space. A variational autoencoder (VAE) is an autoencoder that represents unlabeled high-dimensional data as low-dimensional probability distributions. In addition to data compression, the randomness of the VAE algorithm gives it a second powerful feature: the ability to generate new data similar to its training data. For example, a VAE trained on images of faces can generate a compelling image of a new "fake" face. It can also map new features onto input data, such as glasses or a mustache onto the image of a face that initially lacks these features. In this talk, we will survey VAE model designs that use deep learning, and we will implement a basic VAE in TensorFlow. We will also demonstrate the encoding and generative capabilities of VAEs and discuss their industry applications.
NICE: Non-linear Independent Components Estimation Laurent Dinh, David Krueger, Yoshua Bengio. 2014.
Density estimation using Real NVP
Laurent Dinh, Jascha Sohl-Dickstein, Samy Bengio. 2017.
Glow: Generative Flow with Invertible 1x1 Convolutions
Diederik P. Kingma, Prafulla Dhariwal. 2018.
논문 리뷰 자료
以下の6つの論文をゼミで紹介した
Progressive Growing of GANs for Improved Quality, Stability, and Variation
Spectral Normalization for Generative Adversarial Networks
cGANs with Projection Discriminator
High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs
Are GANs Created Equal? A Large-Scale Study
Improved Training of Wasserstein GANs
NICE: Non-linear Independent Components Estimation Laurent Dinh, David Krueger, Yoshua Bengio. 2014.
Density estimation using Real NVP
Laurent Dinh, Jascha Sohl-Dickstein, Samy Bengio. 2017.
Glow: Generative Flow with Invertible 1x1 Convolutions
Diederik P. Kingma, Prafulla Dhariwal. 2018.
논문 리뷰 자료
以下の6つの論文をゼミで紹介した
Progressive Growing of GANs for Improved Quality, Stability, and Variation
Spectral Normalization for Generative Adversarial Networks
cGANs with Projection Discriminator
High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs
Are GANs Created Equal? A Large-Scale Study
Improved Training of Wasserstein GANs
Knowing when to look : Adaptive Attention via A Visual Sentinel for Image Cap...홍배 김
본 논문에서는 Hidden layer 뒤에 추가적인 새로운 시각중지 벡터
(visual sentinel vector)를 갖는 LSTM의 확장형을 채택함으로서
- 시각신호로부터 필요 시 언어모델로 전환이 가능한
Adaptive attention encoder-decoder framework을 제안하였고
- 이로 인하여 “white”, “bird”, “stop,”과 같은 시각적 단어에 대해서는 좀 더 이미지에 집중하고, “top”, “of”, “on.”의 경우에는 시각중지를 사용함으로서 Image Captioning의 정확도를 향상
오사카 대학 Nishida Geio군이 Normalization 관련기술 을 정리한 자료입니다.
Normalization이 왜 필요한지부터 시작해서
Batch, Weight, Layer Normalization별로 수식에 대한 설명과 함께
마지막으로 3방법의 비교를 잘 정리하였고
학습의 진행방법에 대한 설명을 Fisher Information Matrix를 이용했는데, 깊이 공부하실 분들에게만 필요할 듯 합니다.
Explanation on Tensorflow example -Deep mnist for expert홍배 김
you can find the exact and detailed network architecture of 'Deep mnist for expert' example of tensorflow's tutorial. I also added descriptions on the program for your better understanding.
One-stage Network(YOLO, SSD 등)의 문제점 예를 들어 근본적인 문제인 # of Hard positives(object) << # of Easy negatives(back ground) 또는 large object 와 small object 를 동시에 detect하는 경우 등과 같이 극단적인 Class 간 unbalance나 난이도에서 차이가 나는 문제가 동시에 존재함으로써 발생하는 문제를 해결하기 위하여 제시된 Focal loss를 class간 아주 극단적인 unbalance data에 대한 classification 문제(예를 들어 1:10이나 1:100)에 적용한 실험결과가 있어서 정리해봤습니다. 결과적으로 hyper parameter의 설정에 매우 민감하다는 실험결과와 잘만 활용할 경우, class간 unbalance를 해결하기 위한 data level의 sampling 방법이나 classifier level에서의 특별한 고려 없이 좋은 결과를 얻을 수 있다는 내용입니다.
파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI ) Yunho Maeng
#Python #딥러닝 #API #ibmdeveloperday2019
여러분들의 성원에 보답하기 위해 IBM Developer Day에서 발표한 세션 자료를 공개합니다! 그 어느때 보다 발표자료를 요청한 분들이 많아 놀랐습니다~ 그럼 다음에 또 뵙겠습니다 :)
Github https://github.com/yunho0130/devday_python_api
세션 영상 https://youtu.be/Z7bTfnuLXck
** 해당 자료는 외부 공유 인가 되었습니다.
1. 딥러닝의 동작 방식에 대한 기초 가이드
2. 네트워크를 통한 공간 변환 개괄
"다음을 꼭 기억하세요. 지금까지 딥러닝의 실제 성공은 연속된 기하학적 변환을 사용하여 공간 X 에서 공간 Y 로 매핑하는 능력에 기인합니다."
프랑소와 숄레, 케라스 창시자에게 배우는 딥러닝 가운데.
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.Adonis Han
*Introduction - Unsupervised Learning (Text-mining or Machine learning?
*Method - Learning Process, Packages
*Explanation Formula
*Case Study of LDA
*Coding with Best LDA Model from Grid search
*Conclusion - insight & Furthur more
*Not edit here
-What is Text-Rank?
-What is Jieba Packages?
Robot의 Gait optimization, Gesture Recognition, Optimal Control, Hyper parameter optimization, 신약 신소재 개발을 위한 optimal data sampling strategy등과 같은 ML분야에서 약방의 감초 같은 존재인 GP이지만 이해가 쉽지 않은 GP의 기본적인 이론 및 matlab code 소개
Anomaly detection using deep one class classifier홍배 김
- Anomaly detection의 다양한 방법을 소개하고
- Support Vector Data Description (SVDD)를 이용하여
cluster의 모델링을 쉽게 하도록 cluster의 형상을 단순화하고
boundary근방의 애매한 point를 처리하는 방법 소개
요즘 Image관련 Deep learning 관련 논문에서 많이 나오는
용어인 Invariance와 Equivariance의 차이를 알기쉽게 설명하는 자료를 만들어봤습니다. Image의 Transformation에 대해
Equivariant한 feature를 만들기 위하여 제안된 Group equivariant Convolutional. Neural Networks 와 Capsule Nets에 대하여 설명
Deep learning기법을 이상진단 등에 적용할 경우, 정상과 이상 data-set간의 심각한 unbalance가 문제. 본 논문에서는 GAN 기법을 이용하여 정상 data-set만의 Manifold(축약된 모델)를 찾아낸 후 Query data에 대하여 기 훈련된 GAN 모델로 Manifold로의 mapping을 수행함으로서 기 훈련된 정상 data-set과의 차이가 있는지 여부를 판단하여 Query data의 이상 유무를 결정하고 영상 내에 존재하는 이상 영역을 pixel-wise segmentation 하여 제시함.
InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets
1. InfoGAN: Interpretable Representation Learning by
Information Maximizing Generative Adversarial Nets
Xi Chen1,2, Yan Duan1,2, Rein Houthooft1,2, John Schulman1,2,
Ilya Sutskever2, Pieter Abbeel1,2
1 UC Berkeley, Department of Electrical Engineering and Computer Science
2 OpenAI
설명자료 : Takato Horii
번역 : 김홍배
2. Motivation
특징이 서로 얽혀 있어 해석이 불가능한 Physical space에서
해석이 용이하도록 서로 독립적인 Eigen space로 변환하는 것 처럼
5. 논문개요
• 목적
– 데이터 생성의 모델로서 우수한 GAN으로 정보를 표현하는 "알기쉬운"
특징량을 "간단하게" 얻는다.
• Key idea
– GAN의 생성 벡터에 특징을 표현하는 Latent code를 삽입한다.
– Latent code 와 생성분포간 상호 정보량 최대화를 학습의
목적함수로 추가
• 결과
– 복수의 이미지 데이터 세트에 대하여 해석이 가능한 결과를 얻었다
7. GAN이란?
• GAN: Generative Adversarial Networks [Goodfellow+,2014]
– Generator (G)와 Discriminator (D)를 서로 경쟁시켜서
생성 정확도의 향상을 도모하는 모델
Generator(G) Discriminator(D)Data True data
or
Generated data
8. GAN이란
데이터셋의 데이터를
「진짜」로 식별
생성된 데이터를「위조」로 식별
• GAN: Generative Adversarial Networks [Goodfellow+,2014]
• Generator (G)와 Discriminator (D)를 서로 경쟁시켜서 생성 정확도
의 향상을 도모하는 모델
• G : 생성용 벡터 z로부터 데이터를 생성
• D : 대상 데이터가 진짜(데이터 세트)
인가 가짜(G에 의해 생성)를 식별
목적함수
9. • Deep Convolutional GAN (DCGAN)
– G와D에CNN을 이용
• 활성화 함수가 특수하긴
하지만 같은 아이디어
– Z 벡터 연산에 의한 새로운 이미지 생성
GAN에 의한 데이터 생성
[Randford+, 2015]
Z의 공간중에서 다양한 특징량이 얻어진다 !
11. • GAN, DCGAN (Chainer-DCGAN)
– 무대뽀로 찾는다 !
• 원하는 특징과 대항하는 특징을 포함하는
데이터를 생성하는 z를 찾는다.
특징량은 어떻게 얻어질까 ?
𝒛
• Semi-supervised Learning with Deep Generative Models
[Kingma+, 2014]
– 소수의 라벨링된 데이터를 사용
• 라벨 데이터를 z의 일부로 학습
얼굴의 방향을
바꾸는 특징벡터
12. • GAN으로 특징량 얻기
– 생성 벡터 z의 공간 중에 생성
이미지의 특징이 표현된다.
• z의 각 차원의 특징은 해석하기
어렵다.
• 해석 가능한 표현은 생성 이미지를
확인해서 찾을 수 밖에 없다
• 지도학습으로는 일부의 특징밖에
학습시킬 수 없다
문제점 정리
?
스
타
일
카테고리
비지도학습으로 해석가능한
특징량을 "간단"하게 얻고싶다 !!
?
14. 제안모델
• Information Maximizing GAN (InfoGAN)
– 목적 :
• 생성시에 이용 가치가 높은 특징량을 비지도학습으로 획득
• 기존의 GAN계 모델에 비하여 간단하게 특징량을 획득
– 아이디어 :
• 생성용 벡터 를 Source z과 Latent code c로 분할
• Latent code c와 생성기 분포 G(z,c)의 상호정보량 𝐼(𝒄; 𝐺 ( 𝒛, 𝒄 ) )
을 극대화
덧붙여서 InfoGAN는 OpenAI가 소스를 공개하고 있습니다
https://github.com/openai/InfoGAN
15. • 생성분포 : G(𝒛, 𝒄) = 𝑃𝐺(𝒙|𝒄)
InfoGAN의 아이디어 I
𝒙
𝒛 ~ 𝑃𝑛 𝑜 𝑖𝑠𝑒 (𝒛)
𝒛
𝒛 ~ 𝑃𝑛 𝑜 𝑖𝑠 𝑒 (𝒛)
𝒛
𝒄 ~ 𝑃(𝒄)
𝒄
𝒙 ~ 𝐺 𝒛
𝐺 𝒛 = 𝑃𝐺 (𝒙)
𝒙
𝒙~𝐺( 𝒛, 𝒄)
𝐺( 𝒛, 𝒄)= 𝑃𝐺 (𝒙|𝒄)
GAN InfoGAN
GAN의 학습에서는 생성분포 𝑃𝐺
𝒄에 조건화된다는 보장이 없다.
𝑃𝐺(𝒙|𝒄) → 𝑃𝐺(𝒙) 로 된다
어떻게 Latent code의 조건화를 보장할까 ?
1. 생성용 벡터의 분할
– 생성용 벡터 𝒛′를 소스 z과 latent code c로 분활
– 𝒄 로 데이터 특징을 나타내는 특징량을 확보하도록
Latent code 분포 :
16. – 𝐼 (𝑋; 𝑌)= 0인 경우, 2개의 확률변수는 독립관계
– 상호정보량 극대화를 목적함수에 도입
• InfoGAN의 목적함수 :
InfoGAN의 아이디어 II
GAN의 목적함수 상호정보량화
• Latent code와 생성분포의 상호정보량 극대화
– 𝐼(𝒄; 𝐺(𝒛, 𝒄 ))를 최대화하여 𝒄와 𝐺(𝒛, 𝒄)사이를 종속관계로 만든다.
• 상호정보량 : 2개의 확률변수 X, Y의 상호의존의 척도를 나타내는 양
17. Variational Information Maximization I
• 상호정보량 𝐼(𝒄; 𝐺 𝒛, 𝒄 )을
– 계산에 𝑃(𝒄|𝒙)가 필요하지만 직접 최대화가 불가능
– 보조분포 𝑄(𝒄|𝒙)를 사용하여 low limit을 구한다.
• Variational Information Maximization을 이용 [Barber and Agakov, 2003]
– 보 조 분 포 를 도 입 시 KL 정보량으로 low limit을 설정
18. – 상호정보량의 low limit 𝐿𝐼(𝐺, 𝑄)
– 최종적인 InfoGAN의 목적함수
GAN의 목적함수 상호정보량 low limit
• 𝑐′~𝑃(𝑐|𝑥) 에서의 기대값 계산을 회피
– 변수변환에 의하여 𝑐′~𝑃(𝑐|𝑥) 부터의 샘플링을 회피
Variational Information Maximization II
19. 구현
• 보조분포 𝑄(𝑐|𝑥)의 선정
– 𝑄는 식별기의 식별기 𝐷 네트웍을 활용
• GAN에서의 학습비용의 증가는 매우 작다
– 𝐷의 최상위 층에 조건부 분포를 표현하는 전결합층
(Fully Connected Layer)을 추가
• 분류형 Latent code : softmax
• 연속값 Latent code : factored Gaussian
• 𝜆의 선정
• 이산값 Latent code : λ = 1을 추천
• 연속값 Latent code : λ는 작은편을 추천
26. 결론
• GAN에 의한 해석 가능한 특징량 표현을 획득하는 InfoGAN
- 생성벡터 z의 소스와 latent code c의 명시적인 분할
- Latent code와 생성분포의 상호정보량 I를 극대화하여 종속성 보장
- I의 하한을 계산하는 보조분포 Q는 식별기 D을 활용하여 비용절감
- 다양한 데이터세트에서 획득된 표현과 생성이미지를 확인
• 한계와 향후문제
- 비지도학습등으로 데이터의 분포에 내재된 특징만 추출 가능
- VAE 등 다른 모델로의 응용과 반지도학습의 개선
- 계층적인 표현의 획득
- 멀티 모달정보의 취급
27. [Goodfellow+, 2014] Ian J. Goodfellow, Jean Pouget-Abadiey, Mehdi Mirza, Bing Xu, David Warde-Farley,
Sherjil Ozairz, Aaron Courville, and Yoshua Bengio, Generative Adversarial
Nets,NIPS2014
[Randford+, 2015] Alec Radford, Luke Metz, and Soumith Chintala, Unsupervised Representation
Learning with Deep Convolutional Generative Adversarial Networks, ICLR 2016
[Kingma+, 2014] Diederik P.Kingm, Danilo J. Rezendey, Shakir Mohamedy, and Max Welling, Semi-
supervised Learning with Deep Generative Models, NIPS2014
[Barber and Agakov, 2003] David Barber and Felix Agakov, The IM Algorithm : A variational approach to
Information Maximization, NIPS2003
Chainer-DCGAN: http://mattya.github.io/chainer-DCGAN/, ChainerによるDCGANのデモ
참고문헌