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.
논문 리뷰 자료
발표자: 이활석(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
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.
논문 리뷰 자료
발표자: 이활석(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
발표자: 최윤제(고려대 석사과정)
최윤제 (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
발표자: 최윤제(고려대 석사과정)
최윤제 (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
이번 슬라이드는 Graph mining의 기초에 대한 것이다.
고전 문제인 Graph cut에 대한 개념과 수학적인 배경을 설명하고, 이 개념이 clustering (클러스터링)에서 어떻게 사용되는지를 설명한다.
Graph mining, cut, clustring의 기초를 알기에 매우 적합한 자료이다.
10. 곱셈
스칼라곱 (Scalar product)
αv = (αv , ⋯ , αv )
alpha * v 또는 np.multiply(alpha,v)
성분곱 Elementwise multiplication (Hadamard product)
v ⊙ u = (v u , ⋯ , v u )
v * u 또는 np.multiply(v,u)
1 d
1 1 d d
20. 행렬곱 (Matrix multiplication)
X : (n × m ) 행렬, Y : (m × m) 행렬
XY = x y = (x ⋅y )
X = np.random.normal(0,1,(n,p)) # (n,p)행렬 생성
Y = np.random.normal(0,1,(p,m)) # (p,m)행렬 생성
np.matmul(X,Y) # (n,m)행렬
np.matmul(Y,X) # 에러
′ ′
(
k=1
∑
m′
ik kj)
(n×m)
i j
T
21. Transpose
행렬의각 성분들의행과 열을바꾸는걸 전치(Transpose)라합니다.
X = (x ) → X = (x )
벡터도전치가 가능합니다
v = (v ) → v = (v )
X = np.array([[x11,..,x1m],..,[xn1,..,xnm]]) # (n,m) 행렬
X_transpose = np.transpose(X) # (m,n) 행렬
X.T
ij (n×m)
T
ji (m×n)
i (d×1)
T
i 1×d
22. 몇가지알아둬야할것들
1. v, u 가 벡터인경우
v u =u v
2. X, Y 가 행렬인경우
(X ) = X
(XY) =Y X
(X + Y) =X +Y
T T
T T
T T T
T T T
23. NumPy 에서행렬연산시주의할점
u = np.array([[1,2,3],[4,5,6]]) # (2,3) 행렬
v = np.array([[1,0,0],[0,1,0]])
u*v # 성분곱 (2,3) 행렬
np.matmul(u.T, v) # 행렬곱 (3,3) 행렬
np.matmul(u, v.T) # 행렬곱 (2,2) 행렬
u = np.matrix([[1,2,3],[4,5,6]])
v = np.matrix([[1,0,0],[4,5,6]])
np.multiply(u,v) # 성분곱 (2,3) 행렬
u.T * v # 행렬곱 (3,3) 행렬
u * v.T # 행렬곱 (2,2) 행렬
u*v # 에러
33. Norm
∥X∥ (1 ≤ p ≤ ∞)
Norm 은벡터, 행렬의크기 (≠ 부피)를나타내는양입니다
수치해석학에선Norm 의크기를통해오차를제어할수있습니다
p
34. ∥X∥ = ∣x ∣
linalg.norm(X,1)
∥X∥ =
linalg.norm(X,2)
linalg.norm(X, 'fro')
∥X∥ = ∣x ∣
linalg.norm(X, np.inf)
1
1≤j≤m
max
i=1
∑
n
ij
H
⎷
x
i=1
∑
n
j=1
∑
m
ij
2
∞
1≤i≤n
max
j=1
∑
m
ij