본문 바로가기

머신러닝

[머신러닝]DCGAN 알아보기 1. GAN의 한계GAN은 분명히 혁신적인 알고리즘 이었지만 한계 또한 존재했다. 고해상도 이미지 생성 불가학습 불안정이와 같은 문제는 Minimax problem을 해결하는 네트워크 구조와 Fully connected network를 사용하는 GAN 자체의 구조에서 기인한 것이었다. 오늘 알아볼 DCGAN은 FCN을 사용하는 네트워크 구조를 바꾸어 이와 같은 문제점을 해결했다.2. GAN과의 차이점사실 GAN과의 차이는 별로 없다. GAN의 Fully-connected network를 Deep convolution network로 대체했을 뿐이다. 하지만 이와 같은 차이점이 다음과 같은 결과를 이끌어 낼 수 있었다 Scene을 이해하고 기존 GAN보다 고해상도의 이미지 생성기존 GAN에 비해 안정된 학.. 더보기
[머신러닝]GAN - Generative Adversarial Network 훑어보기 1. GAN이란?머신러닝은 크게 세가지 분류로 나누어진다. 첫번째는 지도학습(Supervised Learning), 두번째는 강화학습(Reinforcement learning)그리고 마지막은 비지도 학습(Unsupervised Learning)이다. GAN은 이 중에서 비지도 학습에 속하며 2014년 NIPS에서 Ian Goodfellow가 발표한 생성 모델으로써 Yann Lecun 교수님이 근10년 안에 나온 딥러닝 아이디어 중 가장 최고라는 말을 했을 정도로 유명한 생성 모델이다. 2. GAN의 구조와 원리 GAN의 원리를 설명하려면 GAN의 구조를 알아야 한다. GAN은 분류를 담당하는 판별자 D(Discriminator), 그리고 랜덤한 노이즈에서 데이터를 만들어 내는 생성자 G(Generator.. 더보기
[머신러닝] Jensen–Shannon 발산과 Kullback–Leibler 발산 GAN에서 조금 고전하던 도중 GAN에서 D와 G 사이의 확률분포 차이를 줄이기 위해 사용하는 발산들을 알아보았다. 1. KLD(쿨백-라이블러 발산) 쿨백-라이블러 발산, 줄여서 KLD는 간단히 말해 한 확률분포와 그 확률분포의 근사 간의 정보 손실율을 계산하는것이다. 양 확률분포가 같으면 KLD는 0이 된다. 확률분포 p와 근사 분포 q의 KLD는 다음과 같이 나타낸다 또한 KLD는 로그값을 이용해 그 차이를 계산하기 때문에 KLD는 다음과 같이 설명할 수 있다 또한 이 수식은 log a - log b = log a/b이므로 다음과 같이 정리된다 즉, log p(xi)와 log q(xi)의 차를 이용하여 KLD를 구하는 것을 알수 있으며 p와 q가 완전히 같으면 0이 된다는 것을 알 수 있다 2. JS.. 더보기
[머신러닝] Sigmoid를 넘어 ReLU 로 1. Sigmoid와 신경망sigmoid 함수를 활성화 함수로 사용한 심층신경망을 사용하다보면 이상하게 학습이 잘 되지 않는 문제가 발생한다. 왜일까? 우리는 신경망의 파라미터를 조정할 때 backpropagation(오류역전파)을 사용한다. 여기서 문제가 발생하는 것인데 왜 sigmoid가 오류역전파에 문제를 만들어 내는 것일까? sigmoid는 많은 장점을 가지고 있는데 말이다. 2. Vanishing Gradientsigmoid는 일단 지수함수를 계산해야 하기 때문에 계산이 느리고, 결정적으로 Vanishing Gradient 라고 하는 근본적인 문제를 시그모이드 함수가 가지고 있었다. Vanishing Gradient 라는 문제는 미분값이 작기 때문에 (0~1) 0.xxx 를 계속 곱하다 보면 0.. 더보기