딥러닝(Deep-Learning)

    구글 클라우드 플랫폼(GCP)으로 pgGAN 실행하기

    구글 클라우드 플랫폼(GCP)으로 pgGAN 실행하기 여러가지 딥러닝 기술 중 pgGAN(progressive_growing_of_gans)을 GCP에서 gpu를 할당받아 실행해보는 과정을 진행해보겠습니다. 우선, 구글 클라우드 플랫폼에서 gpu를 할당받는 방법은 아래 포스팅을 참고하시면 됩니다. 2018/08/14 - [정보] - 구글 클라우드 플랫폼(GCP)으로 NVIDIA GPU 사용해보기 이 포스팅을 토대로 플랫폼을 사용할 환경이 다 만들어졌다면, pgGAN을 가져와보도록 하겠습니다. pgGAN github주소 : https://github.com/tkarras/progressive_growing_of_gans 이 주소를 통해 pgGAN의 전체 소스코드를 clone 해올 수 있고, README에 ..

    [pix2pix 모델] 코드 리뷰

    [pix2pix] 텐서플로우 코드 리뷰 pix2pix github 코드 : https://github.com/yenchenlin/pix2pix-tensorflow/blob/ GAN을 이용한 이미지 변환 모델인 pix2pix를 텐서플로우로 구현한 코드 리뷰 포스팅입니다. main.py와 model.py에 해당하는 코드의 내용을 이해하기 위해 한줄씩 리뷰해보고자 합니다. 우선 main.py부터 알아보고 가겠습니다. 1234567891011121314151617181920212223242526272829parser = argparse.ArgumentParser(description='')parser.add_argument('--dataset_name', dest='dataset_name', default='f..

    Cycle GAN에 대해서 알아보자

    Cycle GAN이 무엇인지에 대해서 알아보겠습니다. 해당 논문 링크 : https://arxiv.org/abs/1703.10593 Cycle GAN이 탄생하게 된 배경은, Pix2Pix에서 필요로 했던 양쪽에 대응되는 데이터 쌍의 존재 필요성에서 벗어나도록 하기 위함이었습니다. 즉, 데이터 쌍 없이도 문제를 풀어보자는 시도에서 탄생한 것이 바로 Cycle GAN입니다. 위의 Pix2Pix를 이용한 학습을 본다면, 완전한 신발 이미지를 생성하기 위해 input data set으로 신발의 외곽선 이미지를 넣었습니다. 이처럼, 완전한 형태의 신발로 결과값을 도출하기 위해서는 학습 단계에서 특정한 신발 이미지와 그에 해당하는 외곽선 이미지 쌍이 존재해야만 합니다. 그냥 이미지에서 외곽선 추출 기법을 통해 얻어..

    [DCGAN 모델] 코드 리뷰

    [DCGAN 모델] 코드 리뷰 DCGAN을 통한 MNIST 과정을 실제 구현한 코드로, 어떤 진행과정을 거치는지 알아보려고 합니다.DCGAN 모델에서 train.py와 model.py의 코드를 살펴보겠습니다. DCGAN github 주소 : https://github.com/yihui-he/GAN-MNIST 기존에 구성된 train.py에 우리가 원하는 model을 만들어 학습을 시켜야 하는데, train이 어떻게 이루어지는지 진행과정을 알고 있는 것도 중요합니다.또한 현재 github에 만들어진 model이 어떤 구성요소를 갖추고 있는지도 확인해보도록 합시다. 코드는 train.py와 model.py를 조금씩 쪼개서 설명이 필요할 때마다 번갈아가며 작성하도록 하겠습니다. train.py 12345678..

    모델에서 이루어지는 '딥러닝'

    모델에서 이루어지는 '딥러닝' 데이터 값을 찾기 위한 과정에서, 크게 두 가지를 통해 진행된다.Linear Transform (선형 변환)Activation Function (활성화 함수) 진행과정에서 Model은 data, variable, activation이 사용되는데 3가지는 다음과 같다. data : INPUT 값 (변경할 수 없다 - uncontrollable)variable : weight을 업데이트하는 데 사용되는 값 (변경할 수 있다 - controllable)activation : 선형으로 해결되지 않는 문제에 활성화를 이용 INPUT data X가 [28,28]이라고 가정X 데이터에 Weight을 곱하는 과정으로 데이터를 찾는다. ( func = W * X ) [28,28] x [28..

    모델에 데이터를 학습시키는 과정(MNIST)

    모델에 데이터를 학습시키는 과정(MNIST) 하드디스크(HDD)에 방대한 데이터가 들어있다고 가정해보자.우리는 이 하드디스크에 있는 데이터를 이용해 모델을 MNIST로 학습시킬 것이다..! 데이터를 가져와 학습시키기 위해서는 하드디스크에 있는 데이터를 RAM으로 가져와야 한다. 하지만 RAM이 소화할 수 있는 용량은 제한적이라 한꺼번에 모두 가져올 수 없는 문제가 발생한다. 따라서 데이터를 나눠서 RAM으로 가져와 학습을 진행해야 한다. 이를 가능하게 해주는 것이 바로 '파이프라인'이다. HDD와 RAM 사이를 파이프라인으로 연결해 데이터를 RAM에 쪼개서 보내도록 한다.우리는 MNIST를 이용해 모델이 데이터를 학습해 나가는 과정을 말하고 있다. MNIST는 사람이 직접 손으로 쓴 숫자들을 이미지화 시..

    GAN (Generative Adversarial Network) 정리

    GAN (Generative Adversarial Network)머신러닝은 크게 3가지 분류로 이루어진다. (지도학습, 강화학습, 비지도학습)GAN은 '비지도 학습(Unsupervised Learning)'에 해당Yann Lecun 교수 "근 10년 안에 나온 딥러닝 아이디어 중 최고의 생성 모델" 개념Adversarial : 대립하는 (즉, 크게 두 부분으로 나누어져 있다는 것을 알 수 있음)Image를 만들어내는 것(Generator - 생성자)만들어진걸 평가하는 것(Discriminator - 구분자)이 두개가 서로 대립하며, 서로의 성능을 점차 개선해 나가는 것이 주요 개념! 개념을 쉽게 예시로 들면?지폐위조범(Generator)은 경찰을 최대한 열심히 속이려고 한다.경찰(Discriminator..

    [딥러닝] Backpropagation & L2 Regularization 정리

    Backpropagation(역전파)역전파 알고리즘은?인공지능의 한 분야인 인공 신경망 ANN(Artificial Neural Network)을 학습시키기 위한 가장 기본적이고 일반적인 알고리즘이다. 역전파라는 이름은 오차의 진행방향이 본래와 반대로 전파된다고 해서 붙여진 이름이다. Backpropagation이 사용되는 상황에 대해 알아보자. input 3개와 output으로 구성된 퍼셉트론 신경망 구조다. 여기서 output을 계산하면 아래와 같다. 우리가 input 값과 output 값을 모두 알고 있다면, weight를 찾아내는 것이 가능하다. weight이 학습되면 이제 퍼셉트론은 input으로 output을 산출할 수 있게 된다. 하지만 한계가 존재한다. 이는 일차 방정식으로 이루어지기 때문에..

    [딥러닝] 머신러닝 & Regression 정리

    [딥러닝] 이론 정리 ML (머신러닝) 이란?일종의 소프트웨어 (입력기반 데이터를 보여주는 것 - explicit programming) 딥러닝이란?머신러닝을 활용해, 인공지능에게 꾸준히 학습 시키며 정확도 높은 출력물을 얻는 것 기본지식수학/컴퓨터 과학 지식이 필요하지만 많은 것은 아님y = Wx+b (y = ax+b) 와 같은 방정식을 주로 이용 기본형태x (입력) → [ black box ] → y (출력)블랙박스를 잘 만들어서, 좋은 출력값 y가 나올 수 있도록 하는 것이 딥러닝의 목표! 사용하는 언어는?텐서플로우 and 파이썬 머신러닝 2가지Supervised learning어떤 하나의 정해진 데이터(training set - 이미 label을 가지고 있음)을 가지고 러닝하는 것ex. 이미지를 ..

    [딥러닝] Linear Regression 코드 실행 및 코드 분석

    Linear Regression 코드 실행 및 코드 분석코드 출처 : https://github.com/hunkim/DeepLearningZeroToAll/blob/master/lab-02-3-linear_regression_tensorflow.org.py 코드 실행결과 캡처 화면 실행 결과를 통해서, W는 -1로 b는 1로 수렴한다는 것을 알 수 있다. linear_model = (-1 * x) + 1 코드 분석 1234567891011121314151617181920212223242526272829303132333435363738# 텐서플로우 import 후, 간단하게 사용하기 위해 tf로 명칭 지정import tensorflow as tf # 가설에서 사용할 W와 b를 선언 (변수는 32bit fl..

    [딥러닝] Linear Regression의 cost 최소화의 TensorFlow 구현

    [딥러닝] Linear Regression의 cost 최소화의 TensorFlow 구현 cost function가설과 실제가 얼마나 차이나는지 확인하는 것 Gradient descent 알고리즘Gradient descent - 경사를 내려가다minimization problem 사용어떤 점에서나 시작이 가능W를 조금씩 바꾸면서 나아감 → cost(W,b) 절감 시도반복어떤 점에서 시작하든, 최소점에 도달할 수 있는 알고리즘'미분'을 사용한다. 미분에 활용하기 편하게 수식을 약간 변경한 형태다.여러번 실행시켜 W값이 변화되는 것이 cost를 minimize하는 값을 구하는 과정이다. 그래프에서 기울기가 +면 W식에서 점차 값이 감소하게 된다.그래프에서 기울기가 -면 W식에서 cost(W)가 음수가 되어 -..

    [딥러닝] 텐서플로우(Tensorflow)로 간단한 선형 회귀(Linear regression)을 구현

    [딥러닝] Tensorflow로 간단한 Linear regression 알고리즘 구현 시험 점수를 예상해야 할 때 (0~100) > regression을 사용 regression을 사용하는 예제를 살펴보자 여러 x와 y 값을 가지고 그래프를 그리며 가장 근접하는 선형(Linear)을 찾아야 한다.이 선형을 통해서 앞으로 사용자가 입력하는 x 값에 해당하는 가장 근접한 y 값을 출력해낼 수 있는 것이다. 현재 파란 선이 가설 H(x)에 해당한다.실제 입력 값들 (1,1) (2,2) (3,3)과 선의 거리를 비교해서 근접할수록 좋은 가설을 했다고 말할 수 있다. 이를 찾기 위해서 Hypothesis(가설)을 세워 cost(비용)을 구해 W와 b의 값을 도출해야 한다. Linear regression 알고리즘..

    [딥러닝] 텐서플로우 설치 및 기본 오퍼레이션

    [딥러닝] 텐서플로우 설치 및 기본 오퍼레이션 텐서플로우란?구글에서 만든 오픈소스 machine intelligencedata flow graph를 사용해서 numerical한 계산을 할 수 있는 라이브러리파이썬을 사용한다! data flow graph란?node(오퍼레이션)와 edge(데이터)를 활용해서 많은 데이터 배열(텐서)의 값을 얻어낼 수 있다. 텐서플로우 설치파이썬 3.6을 64bit로 설치한 뒤, cmd 환경 변수 설정해주고 파이썬의 pip3 라이브러리를 통해 아래와 같이 텐서플로우를 설치하자 `pip3 install --upgrade tensorflow` 주의자신의 컴퓨터가 32bit인지 64bit인지 꼭 확인하자. 파이썬 메인화면에 나오는 다운로드는 32bit이므로 64bit에서 이를 설..

    [딥러닝] 머신러닝 기본 용어 및 개념

    [딥러닝] 머신러닝 기본 용어 및 개념 ML (머신러닝) 이란?일종의 소프트웨어 (입력기반 데이터를 보여주는 것 - explicit programming) explicit programming의 한계 - 룰이 너무 많다!spam filter (스팸 필터)자동 운전 하나하나 프로그래밍하지 말고, 프로그램이 스스로 알아서 학습하면 어떨까?이런 생각을 통해 머신러닝과 딥러닝이 탄생한 것! 머신러닝 2가지Supervised learning어떤 하나의 정해진 데이터(training set - 이미 label을 가지고 있음)을 가지고 러닝하는 것ex. 이미지를 주고, 개인지 고양이인지 맞추기!Unsupervised learninglabel을 가지고 있지 않은 데이터 (데이터를 통해 스스로 학습을 해야함)ex. 구글..

    [딥러닝] 개요

    [딥러닝] 개요우리는 지난 이세돌과 알파고와의 세기의 대국을 통해 인공지능 '딥러닝'에 대해 많은 이야기를 접할 수 있었다. 딥러닝이란?머신러닝을 활용해, 인공지능에게 꾸준히 학습을 시켜 정확도 높은 출력물을 얻어내도록 하는 것"머신러닝을 잘 활용하는 것이 Superpower를 갖는 것이다!" - Andrew Ng 기본지식수학/컴퓨터 과학 지식이 필요하지만 많은 것은 아님y = Wx+b (y = ax+b) 와 같은 방정식을 주로 이용 기본형태x (입력) → [ black box ] → y (출력)블랙박스를 잘 만들어서, 좋은 출력값 y가 나올 수 있도록 하는 것이 딥러닝의 목표! 사용하는 언어는?텐서플로우 and 파이썬 목표머신러닝의 기본 이해하기기본 알고리즘 이해하기Linear regressionLog..