머신러닝/Vision 11

DCGAN

Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks DCGAN? DCGAN은 불안정한 GAN의 구조적 단점을 보완하고 좋은 성능을 보여주었습니다. DCGAN은 이름 (Deep Convolutional GAN)에서도 알 수 있듯이 Convolutional 구조를 GAN에 사용하였습니다. 지도 학습에서는 CNN을 이용하여 좋은 성능들이 이미 보였지만, 이 DCGAN은 GAN과 같이 비지도 학습에 Convolutional 구조를 사용하여 좋은 성능을 보인 대표적인 결과물이라고 할 수 있습니다. 따라서 이후의 대부분의 GAN 모델들은 DCGAN의 구조가 기반으로 사용되었다고 할 수 있습니다. DCG..

머신러닝/Vision 2020.08.18

LSGAN

Motivation 성공적인 GAN의 성능에도 불구하고 discriminator 학습 과정에서 "Gradient Vanishing" 문제가 발생하여 모델의 학습이 제대로 이루어지지 않는 현상이 발견 되었습니다. discriminator에는 sigmoid cross-entropy loss 함수를 사용하는데 이는 discriminator가 입력으로 받은 샘플이 진짜일 확률을 출력한다는 것을 의미합니다. (진짜 -> 1 / 가짜 -> 0) 그런데 이 loss 함수를 사용하면 generator 학습시 vanishing gradient 현상이 발생하게 됩니다. 왜 이런 현상이 발생하는지 그림을 참조해서 설명하도록 하겠습니다. 위 그림에서 decision boundary를 기준으로 아래를 진짜, 위를 가짜로 판별할..

머신러닝/Vision 2020.08.12

Generative Adversarial Networks?

Generative Adversarial Networks (GAN)은 2014년 Ian Goodfellow가 Generative Adversarial Nets 논문에서 처음 제안한 비지도 학습 인공지능 알고리즘입니다. 다른 딥러닝 알고리즘들과 다르게 데이터 생성에 목적을 둔 알고리즘으로 다른 알고리즘들에 비해 학습이 어렵다는 특징이 있지만, 지금까지 수많은 연구 끝에 성능을 향상할 수 있었고 다양한 분야에서 활용되고 있습니다. 특히 Image 도메인에서 주로 활용되고 있으며 GAN하면 가장 쉽게 떠올릴 수 있는 Image-to-Image translation의 대표 모델 CycleGAN이 있습니다. 아래 이미지가 바로 CycleGAN을 통해 말을 얼룩말로 변환한 결과물입니다. GAN 모델 구조 GAN은 ..

머신러닝/Vision 2020.08.12

The Lottery Ticket Hypothesis

ICLR 2019에서 Best Paper에 선정된 "The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural" 논문에 대한 정리입니다. 이 논문은 Network Pruning에 관련된 논문으로 pruning은 쉽게 말해 뉴럴 네트워크의 사이즈를 줄이는 방법을 말합니다. 네트워크의 pruning을 위해서는 pre-trained 된 네트워크에서 불필요한 연결을 제거하여 네트워크의 사이즈를 줄임으로써 기존의 네트워크와 동일한 정확도를 유지하면서도 더 빠른 처리 속도를 얻기 위해 사용되는 기법입니다. Pruning에 대해서는 1990년도의 Yann Lecun 교수님의 논문 "Optimal Brain Damage"에서 처음 다루어졌습니다. 오늘 소개할 논문..

머신러닝/Vision 2019.06.24 (4)

ResNet 이해하기

아래 두 논문을 통해서 ResNet에 대해서 가볍게 이해해보자 Deep Residual Learning for Image Recognition Identity Mappings in Deep Residual Networks CNN이 이미지 인식 분야에서 뛰어난 성능을 보여주고 있었고, 네트워크의 층(layer)을 더 쌓으며 아주 깊은 네트워크를 구현하여 성능 향상을 이루고 있었습니다. 하지만 실제로 어느정도 이상 깊어진 네트워크는 오히려 vanishing/exploding gradient 문제 때문에 성능이 더 떨어졌는데 이러한 현상을 degradation problem이라고 합니다. 문제가 발생하는 이유는 weight들의 분포가 균등하지 않고, 역전파가 재대로 이루어지지 않기 때문입니다. ResNet은 ..

머신러닝/Vision 2019.06.04

Generative Adversarial Networks (GANs)

본 포스팅은 Medium의 Joseph Rocca에 의해 작성된 "Understanding Generative Adversarial Networks (GANs)"를 공부하며 한글로 재작성하였습니다. 전문 번역가가 아니고 제가 이해한대로 작성하였기 때문에 문맥상 이상한 부분은 원문을 읽으시면 도움이 될 것 같습니다. Deep Learning을 공부하는 분들 중 GAN에 대해서 모르는 분이 없을거라 생각합니다. 2014년도 Ian Goodfellow에 의해서 소개된 이후 최근까지 정말 많은 연구가 진행되고 관심을 받았던 모델입니다. 이미 공부를 했었고 구현도 해봤지만 최근 다시금 기본이 중요하다는 생각이 들고 있어 차근차근 기본을 다지기 위해 오늘 포스팅을 하게 됬습니다. Introduction Yann L..

머신러닝/Vision 2019.02.27

Batch Normalization?

Batch Normalization : Accelerating Deep Network Training by Reducing Internal Covariance ShiftBatch Normalization은 ICML 2015에 publish된 논문에 소개된 방법으로 쉽게 말하면 전체적인 모델의 학습 과정을 안정화시켜 학습 속도를 향상시키는 방법입니다. 모델을 학습하다보면 Gradient Vanishing / Exploding 같은 문제들이 발생하는데 이러한 원인으로 'Internal Covariance Shift'를 들 수 있습니다. Internal Covariance Shift는 Network가 깊어지면서 값들의 변화 폭이 커지는, 그래서 각 층의 input들의 distribution이 달라지는 현상이라..

머신러닝/Vision 2018.10.23

Recurrent Neural Networks ?

이번 포스트에서는 Recurrent Neural Networks(RNN)에 대해서 간단히 알아보도록 하겠습니다. 포스트 내용의 대부분은 colah's blog에 있는 "Understanding LSTM Networks" 글을 참고하였으며, 개인 공부의 목적으로 한글로 정리하였습니다. Introduction Recurrent Neural Networks는 CNN과 더불어 많이 활용되고 있는 알고리즘입니다. Wikipedia에는 다음과 같이 소개하고 있습니다 "A recurrent neural network (RNN) is a class of artificial neural network where connections between nodes from a directed graph along a seque..

머신러닝/Vision 2018.09.30

Convolutional Neural Networks ? [2]

해당 글은 Adit Deshpande의 블로그에 게제되어 있는 "A Beginner's Guide To Understanding Convolutional Neural Networks Part 2"를 개인 공부 목적으로 한글로 재작성한 것 입니다. 원문을 읽으시는게 문맥상이나 모든면에서 훨씬 이해가 쉬울 수 있습니다. Introduction 이번 포스트에서는 이전에 대략적으로 개념만 이해한 ConvNets에 대해서 조금 더 자세히 알아보겠습니다. 모든 개념이 깊게 들어갈수록 복잡하기 때문에 모든 내용을 이번 포스트에 담지는 못 합니다. 따라서, 다양한 참고 자료의 링크들을 추가로 작성할테니 참고하시면서 읽으시면 도움이 될 것 같습니다. Stride and Padding 자, 이전 포스트에서 알아봤던 fil..

머신러닝/Vision 2018.09.06