딥러닝을 위한 tensor flow(skt academy)

143
딥러닝을 위한 TENSORFLOW WRITTEN BY TAE YOUNG LEE

Upload: tae-young-lee

Post on 24-Jan-2018

684 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: 딥러닝을 위한 Tensor flow(skt academy)

딥러닝을 위한 TENSORFLOW

WRITTEN BY TAE YOUNG LEE

Page 2: 딥러닝을 위한 Tensor flow(skt academy)

TENSORFLOW OVERVEIW

Page 3: 딥러닝을 위한 Tensor flow(skt academy)

TENSORFLOW의 출현

• 기술의 변천

• CLOUD INFRA → BIG Data → IOT, IOE → 4차 산업혁명

• 통계 모델 (R, SPSS, SAS) → Machine Learning → Deep Learning

• Paradigm Shift

• Solution (해결책) → Optimize (최적화)

• SOA → MSA

Page 4: 딥러닝을 위한 Tensor flow(skt academy)

딥러닝 Project의 특징

머신러닝 프로젝트 R분석을 통한 PCA(주성분 분석)기반으로 Factor를 찾고 변수의 조정 및 변인의 조절을 통한

변수와의 관계를 규정한 뒤 앙상블 기법을 통한 예측 수행 능력을 확인

딥러닝 프로젝트 Data가 제공하는 factor들의 관계를 Vectorize화 하여 다양한 기법과 알고리즘을 적용하여

다차원 분포를 통한 Matching관계 정립을 한 후 차원 축소를 통한 정밀 분석을 수행 후 모델링화

하여 예측을 수행함

하지만 단순히 알고리즘을 적용하는 것이 아니라 데이터 특성에 맞추어 Customizing이

수반되어야 한다.

Page 5: 딥러닝을 위한 Tensor flow(skt academy)

딥러닝이란?

• Deep Insight (다양한 Factor들 간의 다차원 관계를 구성)

• Data Generation

• Model Optimization •HYPER Parameter Tunning

•Accuracy rate

•Prediction

Page 6: 딥러닝을 위한 Tensor flow(skt academy)
Page 7: 딥러닝을 위한 Tensor flow(skt academy)
Page 8: 딥러닝을 위한 Tensor flow(skt academy)
Page 9: 딥러닝을 위한 Tensor flow(skt academy)
Page 10: 딥러닝을 위한 Tensor flow(skt academy)
Page 11: 딥러닝을 위한 Tensor flow(skt academy)
Page 12: 딥러닝을 위한 Tensor flow(skt academy)
Page 13: 딥러닝을 위한 Tensor flow(skt academy)

Deep Learning Process

• 데이터 로딩 - ( 데이터 생성, 데이터 Agumentation(R-VAE))

• 학습 데이터/평가 데이터로 분리

• 학습 (Training) - DNN, RNN, CNN, VAE 다양한 알고리즘 Customizing

• 평가 - GAN

• 모델 저장 - Accuracy rate확인 및 Data 정제 수행

• 서비스 활용

Page 14: 딥러닝을 위한 Tensor flow(skt academy)

TENSORFLOW BASIC

Page 15: 딥러닝을 위한 Tensor flow(skt academy)

TENSORFLOW PROJECT에서 만나는 문제

Page 16: 딥러닝을 위한 Tensor flow(skt academy)

TENSORFLOW PROJECT에서 만나는 문제

• version

• data 정합성 / 실 data 부족 / 현업 및 PM의 데이터에 대한 무지

• optimization

• si식으로 deep learning 프로젝트에 접근하는 개발 문화

Page 17: 딥러닝을 위한 Tensor flow(skt academy)

Deep Learning을 이해하는 첫 걸음

SI 와 Deep Learning의 가장 근본적인 차이는

SI = SOLUTION

DEEP LEARNING = OPTIMIZATION

이라는 것이다

결과와 해결책 보다는 문제를 해결해가는 과정에 초점을 두어야 한다는 것이다

또한 이는 바로 현 시대의 불확실성과 연관이 있으며, 다양성을 인정하고 다름을

수용하는 문화적 기반이 뒷받침 되어야 한다는 의미다.

Page 18: 딥러닝을 위한 Tensor flow(skt academy)

TENSORFLOW 환경 확인

import tensorflow as tf

dir(tf)

tf.__version__

Version확인을 통해 하위 호환성 지원이 되지 않는 tensorflow의 api확인

Page 19: 딥러닝을 위한 Tensor flow(skt academy)

TENSORFLOW VERSION 문제

• Deprecated

• Tensorflow1.0.0

• tf.multiply, tf.subtract, tf.negative 가 추가되고 tf.mul, tf.sub, tf.neg 는 deprecated

• tf.scalar_summary, tf.histogram_summary 같은 summary 연산자가 삭제되고

tf.summary.scalar, tf.summary.histogram 이 추가

• TensorFlow 1.2.0-rc1

• https://github.com/tensorflow/tensorflow/releases

• 적용 스크립트

• http://github.com/Finfra/TensorflowInstallMultiVersionWithJupyter

Page 20: 딥러닝을 위한 Tensor flow(skt academy)

TENSORFLOW 구현 가능한 프로젝트는?

Page 21: 딥러닝을 위한 Tensor flow(skt academy)

Neural Style Translation

Chat bot

Page 22: 딥러닝을 위한 Tensor flow(skt academy)

TENSORFLOW 요소

• Operation • 그래프 상의 노드는 Operation(op)로 불리고, 오퍼레이션은 하나 이상의 Tensor를 받을 수 있다.

• Tensor • Tensor는 일종의 다차원 배열인데, 그래프 내의 오퍼레이션 강에는 텐서만이 전달됨

• Session • Graph를 실행하기 위해서는 세션 객체가 필요, Session은 오퍼레이션의 실행 환경을 캡슐화한 것

• Variable • 출처 : https://gist.github.com/haje01/202ac276bace4b25dd3f

Page 23: 딥러닝을 위한 Tensor flow(skt academy)

Data Flow Graph

TensorFlow는 계산 정의를 실행과 분리합니다. Phase1 : assemble a graph

Phase2 : 세션을 사용하여 그래프에서 작업을 실행

Why?

Page 24: 딥러닝을 위한 Tensor flow(skt academy)

Tensor란 무엇인가?

An n-dimensional matrix

0-d tensor: scalar (number)

1-d tensor: vector

2-d tensor: matrix

Page 25: 딥러닝을 위한 Tensor flow(skt academy)

Why Graphs?

1. 계산 저장 (가져올 값으로 연결되는 하위 그래프 만 실행)

2. 계산을 작은 차동 조각으로 나누어 자동 차별화를 촉진합니다.

3. 분산 컴퓨팅을 촉진하고 여러 CPU, GPU 또는 장치에 작업을

분산시킵니다.

4. 많은 일반적인 기계 학습 모델은 일반적으로 지시 그래프로 이미

가르쳐지고 시각화됩니다

Page 26: 딥러닝을 위한 Tensor flow(skt academy)

GRADIENT DESCENT로 인자 찾아내기

import tensorflow as tf

import numpy as np

# Numpy random으로 100개의 가짜 데이터 2개 만들기

a_data = np.float32(np.random.rand(2, 100))

# Learning Lable은 아래 식으로 산출 (W = [0.1, 0.2], b = 0.3)

b_data = np.dot([0.100, 0.200], a_data) + 0.300

Page 27: 딥러닝을 위한 Tensor flow(skt academy)
Page 28: 딥러닝을 위한 Tensor flow(skt academy)

B_DATA = NP.DOT([0.100, 0.200], A_DATA) + 0.300

Page 29: 딥러닝을 위한 Tensor flow(skt academy)

PYTHON NUMPY기초 - 선형대수 다뤄보기

행렬 연산의 기초

dot( )함수는 두 행렬의 곱

T는 전치행렬(transpose)를 의미

y.T = [ 1 1

0 1

-1 0 ]

Page 30: 딥러닝을 위한 Tensor flow(skt academy)

NUMPY 과제

A = [ 2, 2, 0 역행렬을 구하라

-2, 1, 1

3, 0, 1 ]

Page 31: 딥러닝을 위한 Tensor flow(skt academy)

과제 정답

Page 32: 딥러닝을 위한 Tensor flow(skt academy)

하기 식을 행렬로 표현하고 변수의 해를 구하라

Page 33: 딥러닝을 위한 Tensor flow(skt academy)

과제 정답

http://pinkwink.kr/191

Page 34: 딥러닝을 위한 Tensor flow(skt academy)

TensorFlow Operations

Basic operations

Tensor types

Project speed dating

Placeholders and feeding inputs

Lazy loading

Page 35: 딥러닝을 위한 Tensor flow(skt academy)

TENSORFLOW basic operation

https://www.tensorflow.org/api_guides/python/math_ops

Page 36: 딥러닝을 위한 Tensor flow(skt academy)

TensorBoard 맛보기

Page 37: 딥러닝을 위한 Tensor flow(skt academy)

TensorBoard를 활용하여 모델을 튜닝할 factor를 찾을 수 있고

이를 통해 bagging과 boosting 여부를 결정할 수 있다.

Bagging(Bootstrap Aggregating)

bootstrap 샘플링 방법을 이용해서 여러개의 트레이닝 데이터를

생성하는 방법이다. 이렇게 생성된 데이터 셋은 하나의 모델을 생성

Boosting

약한 learner들을 합쳐서 강한 learner로 만들어주는 알고리즘을 말한다.

Page 38: 딥러닝을 위한 Tensor flow(skt academy)

Constants

tf.constant(value,

dtype=None,

shape=None,

name='Const',

verify_shape=False)

Page 39: 딥러닝을 위한 Tensor flow(skt academy)

Tensors filled with a specific value

Page 40: 딥러닝을 위한 Tensor flow(skt academy)

Constants as sequences

tf.linspace(start, stop, num, name=None) # slightly different from np.linspace

tf.linspace(10.0, 13.0, 4) ==> [10.0 11.0 12.0 13.0]

tf.range(start, limit=None, delta=1, dtype=None, name='range')

# 'start' is 3, 'limit' is 18, 'delta' is 3

tf.range(start, limit, delta) ==> [3, 6, 9, 12, 15]

# 'limit' is 5

tf.range(limit) ==> [0, 1, 2, 3, 4]

Tensor objects are not iterable for _ in tf.range(4): # TypeError

Page 41: 딥러닝을 위한 Tensor flow(skt academy)

Tensorflow library 내 function

Page 42: 딥러닝을 위한 Tensor flow(skt academy)

Tensorflow library 살펴보기(1)

Page 43: 딥러닝을 위한 Tensor flow(skt academy)

Tensorflow library 살펴보기(2)

Page 44: 딥러닝을 위한 Tensor flow(skt academy)

Tensorflow playground 이해 및 기본 활용 실습

Page 45: 딥러닝을 위한 Tensor flow(skt academy)

HTTP://PLAYGROUND.TENSORFLOW.ORG

Page 46: 딥러닝을 위한 Tensor flow(skt academy)

Batch Size

배치(batch)는 한 번에 처리하는 사진의 장 수를 말합니다.

batch_size: 100 이라는 부분이 있습니다.

한 번에 100장의 사진을 처리한다는 의미

Page 47: 딥러닝을 위한 Tensor flow(skt academy)

EPOCH(ITERATION IS BACKPROPACTION)

Page 48: 딥러닝을 위한 Tensor flow(skt academy)

Iteration(epoch)

훈련용 사진 전체를 딱 한 번 사용했을 때 한 세대 (이폭, epoch)

만약, 사진 60,000장 중 50,000장이 훈련용, 10,000장이 검사용으로

지정되어 있다고 가정한다.

max_iter에서 훈련에 사진 6,000,000장을 사용하기로 했기 때문에

50,000장의 훈련용 사진이 여러번 재사용되게 됨

6,000,000 / 50,000 = 120 이니 한 사진이 120번 씩 재사용될 것입니다.

이 경우 120 세대(epoch)라고 말합니다.

Page 49: 딥러닝을 위한 Tensor flow(skt academy)

ACTIVATION(ACTIVATE FUNCTION)

Page 50: 딥러닝을 위한 Tensor flow(skt academy)

Activation

ReLU : Geoffrey Hinton

Page 51: 딥러닝을 위한 Tensor flow(skt academy)

REGULARIZATION(OVERFITTING SOLUTION)

Page 52: 딥러닝을 위한 Tensor flow(skt academy)

Regularization

Overfitting이나 Underfitting이 일어나는 것을 방지하기 위하여

Regularization을 해야 한다.

이는 Classification Error를 줄이는 것에 목적이 있으며, 그렇기 때문에

Baysian 추론 관점에서의 설명도 가능하다.

file:///C:/Users/Home/Documents/강의%20자료/tensorflow%20강의/Bayesian%20Learning.pdf

Page 53: 딥러닝을 위한 Tensor flow(skt academy)

Regularization(1)

Page 54: 딥러닝을 위한 Tensor flow(skt academy)

Regularization(2)

Page 55: 딥러닝을 위한 Tensor flow(skt academy)

PROBLEM TYPE

Page 56: 딥러닝을 위한 Tensor flow(skt academy)

CLASSIFICATION VS REGRESSION

• Classification • Model → Class (categorical data 범주형 데이터)

• Regression • Model → 실수

• Model → Class (categorical data 범주형 데이터)

• Logistic Regression은 Classfication으로 볼 수 있따.

• 종속 변수가 많을 수록 y값을 에측할 수 있는 방정식을 만들 때 유리하다. • Jupyter notebook 예제 실행

Page 57: 딥러닝을 위한 Tensor flow(skt academy)

Linear Regression

좌표값들을 생성하기 위해 numpy import

https://github.com/tylee33/tfk-notebooks/blob/master/first-contact-with-tensorflow/chapter2_regression.py.ipynb

Page 58: 딥러닝을 위한 Tensor flow(skt academy)

TENSORBOARD의 활용

Page 59: 딥러닝을 위한 Tensor flow(skt academy)
Page 60: 딥러닝을 위한 Tensor flow(skt academy)

GPU 사용 확인법

• sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

Page 61: 딥러닝을 위한 Tensor flow(skt academy)

MNIST 필기체 인식 실습 및 과제 수행

Page 62: 딥러닝을 위한 Tensor flow(skt academy)

MNIST의 유래

MNIST의 이름은 NIST(표준 기술 미국 국립 연구소)에 의해 수집된

데이터 셋 일부가 수정되었다하여 MNIST라 붙여짐

Page 63: 딥러닝을 위한 Tensor flow(skt academy)

MNIST 다운로드

Page 64: 딥러닝을 위한 Tensor flow(skt academy)

MNIST Data file 소개

Page 65: 딥러닝을 위한 Tensor flow(skt academy)

MNIST 필기체 인식 실습

Page 66: 딥러닝을 위한 Tensor flow(skt academy)

mnist data 확인

dir(mnist)

mnist.__class__

mnist.train.__class__

dir(mnist.train) #image, label확인

mnist.train.images[0]

mnist.train.images[0].__class__

Page 67: 딥러닝을 위한 Tensor flow(skt academy)

Numpy를 활용한 mnist image 확인

28 * 28 = ?

Page 68: 딥러닝을 위한 Tensor flow(skt academy)

Data Description 확인

Page 69: 딥러닝을 위한 Tensor flow(skt academy)

MNIST Data 확인

Page 70: 딥러닝을 위한 Tensor flow(skt academy)

MNIST Data 확인

Page 71: 딥러닝을 위한 Tensor flow(skt academy)

실습 후 Data 확인

Page 72: 딥러닝을 위한 Tensor flow(skt academy)

mnist data에 대한 라벨값 확인

0 1 2 3 4 5 6 7 8 9

Page 73: 딥러닝을 위한 Tensor flow(skt academy)

MNIST train label data 정보 보기

Page 74: 딥러닝을 위한 Tensor flow(skt academy)

MNIST train label data 정보 보기

반디집으로 압축 풀기 sublime text에서 열면 windows에서 바로

hexa값으로 표기됨 (리눅스에선 vi편집기 모드에서 %!xxd 입력

원상 복구 %!xxd -r)

Page 75: 딥러닝을 위한 Tensor flow(skt academy)

image저장하고 읽기

Page 76: 딥러닝을 위한 Tensor flow(skt academy)

MNIST 과제

• 과제 hidden lay(256 * 512) matrix를 추가하고 accuracy rate을 비교하라

# all the variables are allocated in GPU memory W1 = tf.Variable(tf.zeros([784, 256])) # create (784 * 256) matrix b1 = tf.Variable(tf.zeros([256])) # create (1 * 256) vector weighted_summation1 = tf.matmul(x, W1) + b1 # compute --> weighted summation h1 = tf.sigmoid( weighted_summation1 ) # compute --> sigmoid(weighted summation) W2 = tf.Variable(tf.zeros([256, 10])) # create (256 * 10) matrix b2 = tf.Variable(tf.zeros([10])) # create (1 * 10) vector weighted_summation2 = tf.matmul(h1, W2) + b2 # compute --> weighted summation y = tf.nn.softmax(weighted_summation2) # compute classification --> softmax(weighted summation)

Page 77: 딥러닝을 위한 Tensor flow(skt academy)

과제 정답

Page 78: 딥러닝을 위한 Tensor flow(skt academy)

optimizer 종류와 활용 방안

Page 79: 딥러닝을 위한 Tensor flow(skt academy)

Optimizer란?

Data의 특성 및 유형에 따라 어떤 Optimizer를 쓰는가가 성능에 많은

영향을 미친다.

그렇기 때문에 대부분의 논문의 서문에서 전제사항을 통해 Data의

특성과 유형을 정의한다.

Machine Learning에서는 Object의 전처리 수행만으로도 다수의 논문이

출간되었으나, Deep Learining의 도래로 전처리 보다는 선험적인

알고리즘 적용이 선호되고 있는 추세이다.

Page 80: 딥러닝을 위한 Tensor flow(skt academy)

Optimize Selection

Page 81: 딥러닝을 위한 Tensor flow(skt academy)

Full Batch - Online Learning

Page 82: 딥러닝을 위한 Tensor flow(skt academy)

Optimization Method

https://github.com/tylee33/DeepLearning_Tutorial/blob/master/fastcampus/optimizer_simulation.ipynb

Page 83: 딥러닝을 위한 Tensor flow(skt academy)

CNN (CONVOLUTIONAL NEURAL NETWORKS)

Page 84: 딥러닝을 위한 Tensor flow(skt academy)

Graphic 과 Vision의 차이는?

Page 85: 딥러닝을 위한 Tensor flow(skt academy)

CNN의 활용

Convolution layer 여러 층을 가진 deep learning model

DBN은 overfitting issue를 initialization으로 해결하였지만, CNN은

overfitting issue를 모델 complexity를 줄이는 것으로 해결한다. CNN은

convolution layer와 pooling layer라는 두 개의 핵심 구조를 가지고

있는데, 이 구조들이 model parameter 개수를 효율적으로 줄여주어

결론적으로 전체 model complexity가 감소하는 효과를 얻게 된다.

Page 86: 딥러닝을 위한 Tensor flow(skt academy)
Page 87: 딥러닝을 위한 Tensor flow(skt academy)

출처 : http://sanghyukchun.github.io/75/

Page 88: 딥러닝을 위한 Tensor flow(skt academy)

CNN은 이렇게 convolution layer와 pooling layer가 결합된 형태로 deep 하게 구성

http://inspirehep.net/record/1252539/plots

Page 89: 딥러닝을 위한 Tensor flow(skt academy)

MNIST 필기체 인식 연습 (CNN)

Page 90: 딥러닝을 위한 Tensor flow(skt academy)

additive and subtractive color combinations

RGB (Red, Green, Blue)는 빛의 혼합 즉

더하면 더할수록 밝아지는 가산혼합인데 반해

CMYK (Cyan, Magenta, Yellow, Black)는

물감의 혼합 즉 더하면 더할수록 어두워 져서

최종적으로 Black이 되는 감산혼합을 의미

CMYK 모드는 밝고 화려한 색은 제대로 표현할 수 없습니다. 잉크의

표현력에 한계가 있고, 특히 모니터와 달리 잉크는 빛을 내지 않기

때문입니다.

즉 RGB모드에서 CMYK 모드로 변환하면 손실되는 색이 있습니다.

손실되는 모든 색들을 회색으로 표시

Page 91: 딥러닝을 위한 Tensor flow(skt academy)

PNG와 JPEG파일의 차이

PNG파일은 비손실압축 방식이라 원본이 훼손되지 않음

JPEG 알고리즘에는 DCT(discrete cosine transform)를 적용한 후 데이터를 줄이기 위해

Quantization(양자화)를 함 쉽게 말하면 자연스러운 색상을 단순화함

양자화를 하면 색수가 줄어듬

이 때 데이터 손실 발생

Page 92: 딥러닝을 위한 Tensor flow(skt academy)

Imagemagick 설치와 사용법

Page 93: 딥러닝을 위한 Tensor flow(skt academy)

Imagemagick란?

ImageMagick은 이미지를 생성하고 수정하고 변환하는 시스템 툴이다.

대개는 서버에서 업로드된 이미지의 썸네일 버전을 생성하거나 다양한

변화를 주기 위해 사용한다.

공식 사이트 : https://www.imagemagick.org/script/index.php

Page 94: 딥러닝을 위한 Tensor flow(skt academy)

왜 뜬금없는 Imagemagick?

Image Training Data 표본의 단일성 보장

Image 정제를 통한 Size 축소 및 Training시 퍼포먼스 확보

Linux상에 shell script 작성을 통한 많은 Training Data 처리에 용이함

Page 95: 딥러닝을 위한 Tensor flow(skt academy)

https://www.imagemagick.org/script/binary-releases.php

ImageMagick-7.0.5-10-Q16-x64-dll.exe

Page 96: 딥러닝을 위한 Tensor flow(skt academy)

파일포맷변경

convert image_org.gif image_out.jpg

[설명] image_org.gif 이미지를 image_out.jpg로 바꾼다.

convert image_org.png image_out.jpg

[설명] image_org.png 이미지를 image_out.jpg로 바꾼다.

http://www.imagemagick.org/Usage/를 참고

Page 97: 딥러닝을 위한 Tensor flow(skt academy)

확대, 축소, 리사이즈

convert image_org.jpg -resize 25%x25% -quality 100 image_out.jpg

[설명] image_org.jpg 이미지를 1/4 축소한 image_out.jpg로 바꾼다.

convert image_org.jpg -resize 800x600 -quality 100 image_out.jpg

[설명] image_org.jpg 이미지를 800x600픽셀로 리사이즈 하지만 비율을

유지하며 큰사이즈 비율 기준으로 image_out.jpg를 생성한다.

convert image_org.jpg -resize 800x600\! -quality 100 image_out.jpg

[설명] image_org.jpg 이미지를 800x600픽셀로 강제적으로 바꾸어

image_out.jpg를 생성한다.

Page 98: 딥러닝을 위한 Tensor flow(skt academy)

회전

convert image_org.png -matte -background none -rotate 90

image_out.png

[설명] 이미지를 90도 회전하고 나머지 영역은 투명하게한다.

convert image_org.png -matte -background none -rotate -15

image_out.png

[설명] 이미지를 -15도 회전하고 나머지 영역은 투명하게한다.

http://www.imagemagick.org/Usage/를 참고

Page 99: 딥러닝을 위한 Tensor flow(skt academy)

좌우반전, 상하반전

convert -flop image_org.jpg image_out.jpg

[설명] image_org.jpg 이미지를 좌우반전시켜 image_out.jpg 이미지를

생성한다.

convert -flip image_org.jpg image_out.jpg

[설명] image_org.jpg 이미지를 상하반전시켜 image_out.jpg 이미지를

생성한다.

http://www.imagemagick.org/Usage/를 참고

Page 100: 딥러닝을 위한 Tensor flow(skt academy)

밝게, 어둡게

convert image_org.jpg -sigmoidal-contrast 3,0% image_out.jpg

[설명] image_org.jpg 이미지를 밝게하여 image_out.jpg 이미지를

생성한다.

convert image_org.jpg -sigmoidal-contrast 3,100% image_out.jpg

[설명] image_org.jpg 이미지를 어둡게하여 image_out.jpg 이미지를

생성한다.

http://www.imagemagick.org/Usage/를 참고

Page 101: 딥러닝을 위한 Tensor flow(skt academy)

자르기(crop)

convert image_org.jpg -crop 800x600+10+20 image_out.jpg

[설명] image_org.jpg를 Left 10픽셀 Top 20픽셀 부터 800x600픽셀까지

자르고 그 결과로 image_out.jpg 이미지를 생성한다.

convert image_org.jpg -crop 800x600+10-30 image_out.jpg

[설명] image_org.jpg를 Left 10픽셀 Top -30픽셀 부터 800x600픽셀까지

자르고 그 결과로 image_out.jpg 이미지를 생성한다.

http://www.imagemagick.org/Usage/를 참고

Page 102: 딥러닝을 위한 Tensor flow(skt academy)

Linux에서 실습

Page 103: 딥러닝을 위한 Tensor flow(skt academy)

Linux Shell Program을 통한 이미지 처리

Page 104: 딥러닝을 위한 Tensor flow(skt academy)

Neural Network Architecture

Page 105: 딥러닝을 위한 Tensor flow(skt academy)
Page 106: 딥러닝을 위한 Tensor flow(skt academy)
Page 107: 딥러닝을 위한 Tensor flow(skt academy)
Page 108: 딥러닝을 위한 Tensor flow(skt academy)

[ 실습] Neural Art 제작하기

Page 109: 딥러닝을 위한 Tensor flow(skt academy)

Neural Art

내용 : ‘artistic style’을 learning하는 neural network algorithm

논문 : A Neural Algorithm of Artistic Style

https://arxiv.org/abs/1508.06576

구현 예 : https://github.com/anishathalye/neural-style

참고 자료 : http://sanghyukchun.github.io/92/

Page 110: 딥러닝을 위한 Tensor flow(skt academy)

구글 이미지 검색 : 임지현 training 시 iteration : 1000 https://www.tumblr.com/search/isobel%20francisco

Page 111: 딥러닝을 위한 Tensor flow(skt academy)
Page 113: 딥러닝을 위한 Tensor flow(skt academy)

Windows10에서 library설치

Page 114: 딥러닝을 위한 Tensor flow(skt academy)

실습

Page 115: 딥러닝을 위한 Tensor flow(skt academy)
Page 116: 딥러닝을 위한 Tensor flow(skt academy)

Iteration Default 1000

Page 117: 딥러닝을 위한 Tensor flow(skt academy)

명령어 수행

mkdir ./out cpu client pc환경에선 iterations 20도

10분 이상 소요

python neural_style.py --content ./n.jpg --styles ./s.jpg --output ./o.jpg --iterations 20 --print-

iterations 20 --checkpoint-output ./out/%s.jpg --checkpoint-iterations 20

Page 118: 딥러닝을 위한 Tensor flow(skt academy)

RNN 시계열 분석 실습

Page 119: 딥러닝을 위한 Tensor flow(skt academy)

Deep Learing에서의 시계열 개념

Data Mining의 시계열 분석은 예측 자체

Deep Learing에서 시계열은 예측이 아닌 Sequence다.

뇌는 예측과 Sequence가 혼재되어 있다.

예측) 날이 흐리니 비가 오려나? - 내재적/외재적 상호작용

Sequence) 동해물과 백두산이 마르고 - 내재적 흐름

Page 120: 딥러닝을 위한 Tensor flow(skt academy)

RNN(Recurrent Neural Networks)

Recurrent Neural Networks 기존에 널리 쓰이던 Hidden Markov

Model을 뉴럴넷을 이용하여 구현한 것임.

Page 121: 딥러닝을 위한 Tensor flow(skt academy)
Page 122: 딥러닝을 위한 Tensor flow(skt academy)
Page 123: 딥러닝을 위한 Tensor flow(skt academy)
Page 124: 딥러닝을 위한 Tensor flow(skt academy)
Page 125: 딥러닝을 위한 Tensor flow(skt academy)
Page 126: 딥러닝을 위한 Tensor flow(skt academy)

Dynamic RNN

https://github.com/hunkim/DeepLearningZeroToAll/blob/master/lab-

12-5-rnn_stock_prediction.py

Page 127: 딥러닝을 위한 Tensor flow(skt academy)

NLP 실습 (Data Training)

Page 128: 딥러닝을 위한 Tensor flow(skt academy)

NLP 실습 (Prediction Test)

Page 129: 딥러닝을 위한 Tensor flow(skt academy)

Word Embedding 실습

https://ronxin.github.io/wevi/ [입력 샘플]

king|kindom,queen|kindom,king|palace,queen|palace,king|royal,queen

|royal,king|George,queen|Mary,man|rice,woman|rice,man|farmer,wom

an|farmer,man|house,woman|house,man|George,woman|Mary

왕|왕국,여왕|왕국,왕|왕궁,여왕|왕궁,왕|왕가,여왕|왕가,왕|조지,여왕|메리

,남자|쌀,여자|쌀,남자|농부,여자|농부,남자|집,여자|집,남자|조지,여자|메

Page 130: 딥러닝을 위한 Tensor flow(skt academy)

https://www.facebook.com/groups/1174547215919768/?fref=ts

Page 131: 딥러닝을 위한 Tensor flow(skt academy)

https://github.com/explosion/spaCy/issues/929

Page 132: 딥러닝을 위한 Tensor flow(skt academy)

[별첨] TENSORFLOW 설치

Page 133: 딥러닝을 위한 Tensor flow(skt academy)

TENSORFLOW 환경 구성

• https://www.python.org/downloads/release/python-353/

Page 134: 딥러닝을 위한 Tensor flow(skt academy)

ANACONDA 설치

• https://www.continuum.io/downloads

Page 135: 딥러닝을 위한 Tensor flow(skt academy)

• Anaconda Prompt관리자 권한으로 실행

Page 136: 딥러닝을 위한 Tensor flow(skt academy)

TENSORFLOW 설치 및 확인

Page 137: 딥러닝을 위한 Tensor flow(skt academy)

JUPYTER NOTEBOOK환경 설정 및 실행

• Command (jupyter notebook --generate-config) 입력

• 사용자 폴더에 .jupyter 폴더 진입

• jupyter_notebook_config.py 열기

• #c.NotebookApp.notebook_dir = '' 열찾기 (179 번째 line 정도) 주석제거

• '' 란 안에 원하는 폴더의 절대 경로 삽입. 단 \ --> / 로 변경

• 저장 후 jupyter notebook 재실행

Page 138: 딥러닝을 위한 Tensor flow(skt academy)

[별첨] 소통하기

Page 141: 딥러닝을 위한 Tensor flow(skt academy)

Tensorflow의 GPU 연동에 대해 궁금합니다. OpenCL 혹은 CUDA가 지원되는 그래픽카드면 모두 사용 가능한지, 실제 AWS를 통해 제공되는 GPU 연산 유닛은 어떤 타입인지 궁금합니다.

https://aws.amazon.com/ko/ec2/instance-types/

Page 142: 딥러닝을 위한 Tensor flow(skt academy)

챗봇 구현에 필요한 한국어 논문 모음 공유

https://sites.google.com/site/2016hclt/jalyosil