기본적인 Machine Learning의 용어와 개념 설명

출처

edwith, https://www.edwith.org/, 머신러닝과 딥러닝 BASIC>

https://steemit.com/it/@sukjunko/38ndhz-sj


텐서플로 기본을 배워볼게여

6


텐서플로

7

  • 구글에서 만들었어여
  • 머신 인텔리전스를 위한 오픈소스 라이브러리에여

많은 라이브러리 중 왜 텐서플로냐

8

  • 사람들이 많이 사용함

텐서플로 사람들이 많이 사용함

9

  • 공부할 때 많은 자료가 있음

텐서플로는 그래서 뭐냐

10

  • 데이터 플로 그래프를 사용해서 어떤 numerical한 계산을 할 수 있는 라이브러리
  • 파이썬을 쓰니 개꿀

데이터 플로가 뭐지

11

  • 노드와 노드를 구성하는 엣지를 그래프라고 함
  • 데이터 플로 그래프에서 노드는 하나의 operation(더하기, 곱하기)
  • 엣지는 데이터, 데이터 배열(tensor)
  • 어떤 연산이 일어나 결과물을 얻거나 작업을 할 수 있는 것을 데이터 플로 그래프라 함
  • 이런 것들을 할 수 있는게 텐서플로
  • 텐서 = 데이터, 텐서 플로 = 데이터가 돌아다닌다

텐서플로 설치 방법

12

  • 리눅스, 맥, 윈도우 전부 pip를 써야함
  • bazel이라는 빌드 프로그램을 사용해서 설치 가능
  • 검색해서 설치해라
  • 난 아나콘다의 주피터 노트북 쓰겠음
  • 이거 참고

텐서플로 설치 확인

13

>>> import tensorflow as tf
>>> tf.__version__
'1.10.1'

많은 소스코드들…

14

https://github.com/hunkim/DeepLearningZeroToAll/


Hello World!

15

image

  • tensorflow를 tf로 불러옴
  • tf.constant()를 사용해서 constant를 만듦
  • 실제로 그래프 속에 노드 하나가 있고 그 노드에 “Hello, TensorFlow”가 만들어진 것
  • 실행하려면 Session()이 필요
  • 실행하는 명령어는 run()
  • b라고 나오는 것은 Bytes literals라는 것으로 어쨋든 정상임

좀 더 복잡한 Computational Graph

16

  • float32는 데이터 타입을 준 것
  • 3.0, 4.0, (3+4) 노드 세 개를 만듦

image

  • 출력 결과는 그래프의 한 요소를 보여주는 Tensor를 보여줌, 즉 더하기 결과가 나오지 않음 –> 세션을 만들어야 함

image

  • 세션을 만들고 sees.run([node1, node2])를 실행
  • sess.run(node3)로 더하기도 실행

텐서플로의 구조

17

  • 텐서플로는 기본 프로그램과 다름
  1. 첫 번째로 그래프를 빌드함
  2. see.run(op)로 그래프를 실행함
  3. 그래프 속의 값이 나옴

Computational Graph를 다시 보면

18

  1. 그래프를 빌드하는 과정
  2. sess.run(op)로 세션이 오퍼레이션을 넣음
  3. 리턴 값 확인 가능

Placeholder 노드

19

  • 값을 상수로 정해서 넣는게 아니라 식을 만들고 값을 넣고 싶을 때 사용
  • a와 b를 placeholder로 만듦
  • feed_dict로 값을 넘겨줄 수 있음
  • feed dict에 값을 여러 개 넘겨주는데 보면 각각 실행해서 덧셈 결과 반환함

정리하면

20

  • 텐서플로는 그래프를 정의하고 이 때 placeholder로 만들 수 있음
  • placeholdoer는 세션을 실행할 때 feed_dict로 값을 넘겨줌
  • 그 후 결과를 출력

Tensor의 의미

21

  • Tensor는 기본적으로 배열들을 말함

Tensor를 말할 때(Ranks)

22

  • Ranks는 몇 차원 배열이냐를 의미

Tensor를 말할 때(Shapes)

23

  • 각각의 elements에 몇 개 들어있는가가 Shape
  • t = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]의 Shape은

–> [3 3] 혹은 [3, 3]으로 나타냄


Tensor를 말할 때(Types)

24

  • 32타입을 많이 사용함

마지막으로 정리

25

  • TensorFlow는 기존 프로그램과 달리 그래프를 먼저 만들고 그래프를 실행할 때 placeholder 노드는 feed_dict로 넘겨줄 수 있음

다음시간엔

26

  • 이거 하겠음

Comments