728x90

분류 전체보기 430

GAN ; WGAN & WGAN-gp

이번 포스팅에서는 WGAN 및 WGAN의 개선판(WGAN-gp)에 대해서 설명한다. 1. GAN의 문제점 - 학습이 어렵다. ▶ 기울기 손실 문제가 발생한다. - 생성 결과의 퀄리티를 손실함수로부터 판단하기 힘들다. - 모드 붕괴가 일어난다. 2. 개선 방법 - Wasserstein GAN의 도입 ▶ Wasserstein거리에 의한 손실함수의 설계 ▷ 요소를 만족하기 위해 가중치를 클리핑 (WGAN) ▷ 학습이 불안정한 문제 ▶ 다른 방법으로는 Grgdient penality를 도입 (WGAN-gp) 3. 기본 구조와 비교하여 변경된 점 - 손실함수 (binary cross entropy에서 Wasserstein loss로) - discriminator의 구조 (1) 손실함수 먼저 손실함수에 대해 설명한..

IT/AI\ML 2020.05.01

GAN ; 잠재 변수와 생성 이미지

전에는 DCGAN을 구현해보았다. 이번에는 이미지를 생성하는 것의 씨가 되는 잠재변수 z와 생성되는 이미지, 그리고 이미지의 인식 결과에 대해서 깊이 파보는 시간을 가진다. 코드는 Github를 참고하길 바란다. 1. 생성모델 mnist이미지를 바탕으로 생성 모델에 대해 생각해보자. mnist는 2차원의 이미지 데이터이지만, 실제로는 가로 28픽셀, 세로 28픽셀, 총 784픽셀의 각각에 화소값이 입력되어 있다. 즉, 2차원 이미지이지만, 784차원의 데이터로 취급되므로 주의해야한다. 그럼, 이 784차원의 캔버스에 이미지를 생성하는 의미를 생각해보자. 하나의 이미지 데이터 img는 784개 값의 나열로 나타낼 수 있다. 즉, i번째의 픽셀 값 xi라고 한다면 아래의 식과 같이 표현할 수 있다. 그런데,..

IT/AI\ML 2020.05.01

[논문] GAN ; CycleGAN (Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks)

이번에 설명할 논문은 Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks이다. 본 논문의 테마는 '순환에 의한 일관성을 가지는 적대성 네트워크' 를 이용한 '비지도 학습'으로 '이미지부터 이미지에의 전환'이다. 1. 개요 제안 방법의 최종적인 목표는 쌍이 되는 훈련 데이터없이 (즉 비지도 학습으로), 소스 도메인 X로부터 대상 도메인 Y로의 이미지 변환을 실시하는 것이다. 즉, 훈련 데이로터로써 각각이 짝이 되지 않은 두 개의 이미지 군집을 전달해, 말 → 얼룩말, 경관사진→모네의 그림이라는 사진의 이미지를 학습해, 한 쪽으로부터 다른 한쪽에 자동적으로 변환이 되도록 하는 것이다. 구체적으로는 타겟의 분포 Y와 구..

IT/AI\ML 2020.04.30

[python] GAN; cGAN(conditional GAN)

1. 잠재 변수 공간상의 카테고리의 분포 GAN의 이미지 생성을 봤을 때 떠오른 것은 '다양한 숫자(이미지)가 생성됐지만, 어떻게 구분해서 쓸 수 있는거지?'라는 의문이었다. (보통의) GAN은 지도 학습으로 분류되어 있다고 생각했지만, 이것은 어디까지나 이미지가 진짜인가 가짜인가에 대해 지도학습으로, 예를 들어 minist에서는 이미지가 어떤 숫자에 대응하는지를 지도학습으로 학습하는 것은 아니다. 따라서, 생성기(Generator)가 명시적으로 숫자를 구분해서 쓰는 것을 불가능하다. 훈련 이미지의 라벨을 알려주지 않았으니 당연하다. generator에 있어서 1도, 4도, 6도 모른 채, 오로지 훈련 데이터의 분산에 접근할 수 있도록 학습을 반복한다. 결론적으로 generator 자체는 잘 모르지만서도..

IT/AI\ML 2020.04.30

[python] PCA와 ICA의 개요와 차이점

1. 개요 PCA와 ICA모두Dimension reduction에 해당하는 기술이다. 1) PCA란 PCA(; Principal Component Analysis)는 기본적으로 unsupervised learning이며, 상관관계가 있는 다수의 변수로부터 상관관계가 없는 소수로 전체의 불규칙한 분포를 최대한 좋게 표현하는 주성분이라고 불리는 변수를 합성하는 다변량(다차원)분석 방법 중 하나이다. 데이터의 차원 감소를 위해 사용되고 있다. 주성분을 부여하는 변환은, 제 1 주성분의 분산을 최대화하여, 계속해서 주성분은 지금까지 정해진 주성분과 직교하는 구속조건 하에 분산을 최대화하는 것이 선택된다. 즉, 데이터가 정규분포를 따른다고 가정할 수 있을 때, 분포된 데이터들의 주성분를 찾을 때 데이터를 가장 잘..

IT/AI\ML 2020.04.30

Manifold Learning(多様体学習)과 알고리즘

Manifold의 학습은 곧 다른 의미로 kernel 테크닉의 예시라고 할 수 있다. Kernel이 given data를 High-dimensional Reproducing Kernel Hilbert Space에서 갖고 논다면, Manifold를 배우는 것은 그 반대로 dimension을 효과적으로 줄이는 과정이다. 고차원의 데이터(이미지 등)은 그 자체로는 다루기 까다롭다. 가령 일반적으로 사용되는 euclidean distance도 차원에 값 영향을 많이 받는다. 하지만 대부분의 고차원 데이터는 그 안에 manifold를 가지기 마련인데, 가령 object의 성격이 제한될 때(e.g., 특정 강아지 사진) 데이터 내부적으로 dependent한 correlation이 생기기 때문이다. (e.g., 강아..

IT/AI\ML 2020.04.30

[python/Keras] GAN ; pix2pix

0. 들어가기에 앞서 pix2pix관련 포스팅이 굉장히 많이 되어 있지만, 도저히 내용을 이해할 수 없어서 소스 코드를 통해 내용을 이해하는 것을 목적으로하는 포스팅이다. 우선 간단히 pix2pix에 대해 설명하자면, 지금까지의 이미지 생성과 같이 파라미터부터 이미지로부터 하지 않고, 이미지로부터 이미지를 생성하는 모델이다. DCGAN이라고 불리는 이미지 생성의 기술에 이용되고 있으며, 야간촬영한 이미지로부터 한 낮에 촬영한 이미지로의 상호 교환, 흑백이미지에 채색하는 것, 스케치를 이미지로 변환하는 등의 모든 사례에 있어서 Pix2Pix는 우수한 결과를 냈다. pix2pix는 넓은 의미로 CGAN(Conditional GAN)의 한 종류이다. CGAN에서는 '조건 벡터와 이미지의 짝'을 학습 데이터로써..

IT/AI\ML 2020.04.28

[논문] GAN ; BigGAN (Large Scale GAN Training for High Fidelity Natural Image Synthesis)

1. 도입 BigGAN는 512x512의 고해상도 조건이 있는 이미지 생성(예를 들어 ImageNet을 학습하여 ImageNet의 라벨을 입력 노이즈에 부수적으로 부여하여 그 라벨에 상당하는 이미지를 생성하는 작업)을 실행하지만, 이 스코어는 놀라운 정도였다. GAN의 평가 지표로써 이용되는 Inception Score(IS)와 FID의 값이 각각 166.3과 9.6으로 기존 SoTA의 52.52와 18.65를 크게 뛰어넘는 결과를 보여줬다. 2. Scaling UP GANs 여기는 높은 스코어를 얻기 위해 어떤 공정을 실시했는지에 대해 설명한다. 먼저 베이스 라인 구성에 대해서 설명하겠다. 베이스라인은 Self-Attention GAN(SA-GAN)이다. 이 구성은 기존의 SoTA이다. 논문중에서는 이..

IT/AI\ML 2020.04.28

[연구동향] CNN(Convolution Neural Networks)의 최신 연구 동향(~2017년)

1. 들어가며 Convolutional Neural Networks(이하 CNN)은 주로 이미지 인식에 이용되는 뉴럴 네트워크의 한 종류이다. CNN의 원형은 생물의 뇌의 시각 피질과 관련된 신경 생물학적인 지식을 토대로 고안한 Neocognitron으로 볼 수 있다. Neocognitron은 특징 추출을 실행하는 단순형 세포에 대응하는 Convolution layer과, 위치의 어긋남을 허용하는 움직임을 가진 복수형세포에 대응하는 Pooling layer과의 상호적, 계층적으로 배치한 뉴럴 네트워크이다. Neocognitron에서는 자기 조직화에 의해 학습이 이루어지고 있었지만, 후에 LenCun에 의해 CNN의 backpropagation을 이용한 학습법이 확립되어, 예를 들면 LeNet이 문자인식에..

IT/AI\ML 2020.04.28

[연구동향] GAN의 주요 연구 역사(~2019년 11월)

2014년 발표된 GAN(Generative Adversarial Network)는 획기적인 연구로 최근까지 파생 연구가 굉장히 많다. 따라서 GAN관련 연구 흐름의 아웃 라인을 파악하고 싶은 사람이나 각각의 연구관련 논문과 코드로 한 번에 이동하고 싶은 사람을 위해 이러한 포스팅을 작성했다. 주로 참고하여 작성한 포스트는 링크를 확인해달라. 0. GAN 가족의 소개 ▶ GAN (Generative Adversarial Network) ▶ CGAN (Conditional Generative Adversarial Network) ▶ DCGAN (Deep Convolutional Generative Adversarial Network) ▶ CoGAN (Coupled Generative Adversarial ..

IT/AI\ML 2020.04.24
728x90