ch.5 deep learning

29
Python Machine Learning Chapter 05. Deep Learning

Upload: partprime

Post on 21-Jan-2018

34 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Ch.5 Deep Learning

Python Machine Learning Chapter 05. Deep Learning

Page 2: Ch.5 Deep Learning

Deep�Learning

Page 3: Ch.5 Deep Learning

딥러닝은�머신러닝�중�하나�

여러�층을�가진�신경망을�사용해�머신러닝을�수행하는�것

딥러닝이란�?

Page 4: Ch.5 Deep Learning

다른�머신러닝하고�무엇이�다른가?

기존�방식은�사람들이�자료에�대한�특징을�직접�지정�

하지만�딥러닝은�학습데이터를�가지고�스스로�특징들을�학습

Page 5: Ch.5 Deep Learning

딥러닝은�어떤�방식으로?

사람의�신경망을�본따�만든�신경망�네트워크�구조를�사용합니다.

입력출력

중간층

입력층

출력층

Page 6: Ch.5 Deep Learning

TensorFlow에서�변수를�표현하는�방법

constant()로�상수�정의�Variable()로�변수�정의�

assign(v,�calc_op)�계산한�값을�v에�할당�Session()�을�만들고�처리�내용을�수행�

Tip 머신러닝을�할�때는�학습�할�매개변수를�변수에�저장해야합니다.�

매개변수를�사용하여�상수와�변수에�별칭�설정

Page 7: Ch.5 Deep Learning

TensorFlow의�플레이스홀더

플레이스홀더는��값을�넣을�수�있는�공간

placeholder()로�선언�

여기서는�32비트�정수�형태에�요소가�3개�있는�배열로�선언

run()�을�할�때�feed_dict에��플레이스홀더�값을�집어�넣고�연산

Tip SQL�문장에�“?”도�플레이스홀더라고�이야기�할�수�있습니다.�

Page 8: Ch.5 Deep Learning

TensorFlow의�플레이스홀더�

placeholder(,[None])으로�선언

Tip 요소의�개수�고정이�불편�할�때는�요소를�None으로�지정하세요.�

feed_dict에서�원하는�크기의�배열을�사용

Page 9: Ch.5 Deep Learning

TensorFlow으로�머신러닝�해보기

1 2

3

Page 10: Ch.5 Deep Learning

TensorFlow으로�머신러닝�해보기

1

1.�pandas를�통해�bmi.csv�파일�읽기�2.�데이터를�정규화�3.�3개의�레이블을�배열로��변환�4.�테스트를�위해�5000개�데이터�분류

bmi�데이터�생성�코드

Page 11: Ch.5 Deep Learning

TensorFlow으로�머신러닝�해보기

2

데이터�플로우�그래프�구축하기

1. 플레이스홀더�선언�2. 변수�선언�초기값�0�(가중치,�바이어스)�3. 소프트맥스�회귀함수�정의�4. 모델�훈련하기��5. 정답률�구하기

Tip softmax와�cross�entropy�함수는�한번�찾아보시면�좋습니다.�

Page 12: Ch.5 Deep Learning

소프트맥스�회귀�함수는�들어온�값을�확률로�리턴�해주는�함수�

y�=�tf.nn.softmax(tf.matmul(x,W)+b)���

y�=�softmax�(W*x�+�b)의�표현을�TensorFlow에서는�다음과�같이�표현

softmaxinput probability

SOFTMAX와�CROSS�-�ENTROPY

Page 13: Ch.5 Deep Learning

softmax로�구한�값을�가지고�

�비용함수를�구하는�방식이�cross_entropy��

softmax

2.0�1.0�0.1

0.7�0.2�0.1

1.0�0�0

cross�entropy

SOFTMAX와�CROSS�-�ENTROPY

Page 14: Ch.5 Deep Learning

TensorFlow으로�머신러닝�해보기

3

Page 15: Ch.5 Deep Learning

TensorBoard로�시각화하기

tw=�tf.summary.FileWriter(“log_dir”,�graph=sess.graph)�TensorBoard�출력시키기�위한�SummeryWriter를�생성�하는�문장�실행시키면�log_dir�파일이�생성되고�위에�결과처럼�events파일이�생김

Tip 그래프를�보는�방법은�보통�노드�아래에서부터�계산합니다.�

$�tensorboard�—logdir=log_dir�-Tensorboard�출력-�

Page 16: Ch.5 Deep Learning

TensorBoard로�시각화하기

상수와�변수,�그리고�계산식을�시각화

Page 17: Ch.5 Deep Learning

TensorBoard로�보기�쉽게�정리하기

상수,�변수,�플레이스홀더에�name�속성으로�이름을�붙여�구별

tb.name_scope()�메서드를�이용하면�처리를�스코프�단위로�분할

Page 18: Ch.5 Deep Learning

TensorBoard으로�딥러닝하기

딥러닝의�구조

입력층

출력층

합성곱층

플링층합섭곱층

플링층전결합층

합성곱�신경망

합성곱층은�이미지의�특징을�추출�할�때�사용합니다.

풀링층은�합섭곱층으로�얻은�특징맵을�축소하는�층입니다.

전결합층은�각�층의�유닛을�결합합니다.

Page 19: Ch.5 Deep Learning

합성곱층

77 80 90 55 34 93

30 85 80 44 55 39

35 70 74 33 45 87

72 83 98 83 32 43

77 76 45 60 59 77

67 76 48 77 39 30

합성곱층은�이미지의�특징을�추출�할�때�사용합니다.

입력�이미지

c0 c1 c2 c3

c4 c5 c6 c7

c8 c9 c10 c11

c12 c13 c14 c15

w0 w1 w2

w3 w4 w5

w6 w7 w8

필터

특징맵

입력�x의�일부분을�잘라내고 가중치�필터�W를�적용해 특징�맵�c를�만들어낼�때�사용합니다.

Page 20: Ch.5 Deep Learning

풀링층

77 80 90 55

30 85 80 44

35 28 74 33

45 51 65 29

특징맵

85 90

51 74

68 67

39 50

최대�풀링

평균�풀링

축소�방법

풀링층은�합섭곱층으로�얻은�특징맵을�축소하는�층입니다.

특징을�유지한�상태로�축소하므로�위치�변경으로�인한�결과�변화를�막아줍니다.

Page 21: Ch.5 Deep Learning

전결합층

전결합층은�각�층의�유닛을�결합합니다.�

합성곱층과�풀링층의�결과인�2차원�특징맵을�1차원으로�전개�하는�역할을�합니다.

Page 22: Ch.5 Deep Learning

1

2

3

TensorBoard으로�딥러닝하기

Page 23: Ch.5 Deep Learning

5

TensorBoard으로�딥러닝하기

4

6

Page 24: Ch.5 Deep Learning
Page 25: Ch.5 Deep Learning

TensorBoard으로�딥러닝하기

MNIST�손글씨�데이터를�내려받음

플레이스�홀더를�정의하고�x는�이미지�데이터�배열을�넣을�곳이고,��

y_은�정답�레이블을�넣을�곳

여러�층을�중첩한�딥러닝을�수행하기�때문에�가중치와�바이어스를�위해�여러�변수를�사용

Page 26: Ch.5 Deep Learning

TensorBoard으로�딥러닝하기

합성곱을�수행하는�함수와��최대�풀링을�하는�함수

합성곱층1(conv1)을�지정

5*5�필터로�입력�채널1(흑백),�출력�채널�32로�지정

이것들을�합성곱�함수의�첫번째�매개변수에�지정

Relu함수�사용�:�입력이�0�이하면�0,�0�이상이면�값�출력

합성곱층2(conv2)을�지정

5*5�필터로�입력�32,�출력�64�채널을�지정

Page 27: Ch.5 Deep Learning

TensorBoard으로�딥러닝하기

과잉적합을�피하기�위해�드롭아웃�처리

출력층에서�softmax함수�사용

Page 28: Ch.5 Deep Learning

TensorBoard으로�딥러닝하기

이전�프로그램과�거의�같음

Page 29: Ch.5 Deep Learning

Thank�You

-�파이썬을�이용한�머신러닝,�딥러닝�실전�개발�입문(위키북스)��내용을�기반으로�정리함�

http://www.partprime.com