Tensorflow : Tensor를 흘려보내면서 데이터를 처리하는 라이브러리

3   # 랭크 0 Tensor; shpae[ ] ==> 스칼라
[1,2,3]   # 랭크 1 Tensor; shpae[ 3 ] ==> 벡터
[[1,2,3],[4,5,6]]   # 랭크 2 Tensor; shpae[ 2,3 ] ==> 행렬
[[[1,2,3]],[[4,5,6]]]   # 랭크 3 Tensor; shpae[ 2,1,3 ] ==> Tensor

Tensorflow를 이용해 프로그램 작성시 순서

1. 그래프 생성

2. 그래프 실행

텐서플로 그래프

노드(node) :연산, 변수, 상수 등을 정의

엣지(edge) : 텐서를 주고받으며 계산 수행

==> 실행하기 위해서 Tensorflow 의 Session() 을 사용한다.

예제1

 

1. Tensorflow 기초 그래프 생성

코드부 import tensorflow as tf # 그래프 노드 정의후 출력 node1 = tf.constant(4.0) #암시적으로 float32 로 선언 node2 = tf.constant(3.0) print("생성된 그래프 각각 출력 : ",node1,node2) # 그래프를 생성..

ai-hong.tistory.com

tf.constant  #상수텐서를 의미

# tf.constant 의 인자
tf.constant(value , dtype=' ' , shpae=' ' , name = " " )

# ex1)
node = tf.constant(1.0,shpae=[2,3]) # [[1,1,1],[1,1,1]]

 

3-2 Placeholder ==> 임의의 값을 받아 임의의 값을 출력

tf.placeholder(dtype, shape = [ ] , name = " " )
# 값을 입력하기 위해서는 feed_dict를 사용
feed_dict = { a : ____ , b : _____ }

예제2

 

2. Placeholder 연습

코드부 import tensorflow as tf # placeholder 로 2개의 변수 선언 num1 = tf.placeholder(tf.float32) num2 = tf.placeholder(tf.float32) # placeholder로 선언된 두 변수 덧셈 adder = num1 + num2 print(adde..

ai-hong.tistory.com

3.3.1 선형회귀 및 경사하강법

회귀 : 어떤 실수값 예측 ex) 출산률, 주식시장 변동 등등..

분류 : 어떤 이산값 예측 ex) 이미지분류, 선호하는 정당 예측 등등..

 

* 머신러닝의 과정

① 학습하고자 하는 가설( Hx )을 수학적 표현식으로   - Hypothesis

② 가설의 성능을 측정할 수 있는 손실함수 정의         - Loss function

③ 손실함수를 최소화 할수 있는 학습 알고리즘 설계    - Minimize

 

가설  H = Wx + b

Loss 함수 1/2 ∑ (예측값 - 실제값 )^2  # reduce_mean ( tf.scare (가설 - y 값 ))

피라미터의 값을 적절히 업데이트 (Optimizer) --> 경사하강법 ( Gradient Descent )

 

# 경사 하강법 ( Gradient Descent )

- 현재 스텝의 피라미터에서 손실함수(cost, loss function) 의 미분값에 learning rate를 곱한 만큼 빼서 다음 스템의 피라미터 값으로 지정

* Loss function의 미분값이 크면 하나의 스템에서 피라미터 많이 업데이트

Loss function의 미분값이 작으면 적게 업데이트

* learning rate 값이 크면 많이, 적으면 조금씩 업데이트 수행

경사하강법

 

3.3.2 선형회귀 알고리즘 구현 및 변수

#tf.Variable 함수의 인자 알아보기
tf.Variable(value = "__", trainable="True", name = "___")

# ex1)
w = tf.Variable(tf.random_normal([1])

예제3

 

3. 선형회귀 기초

코드부 import tensorflow as tf #선형회귀(Linear Regression) 모델 정의 = Wx + b W = tf.Variable(tf.random_normal([1]),name="W") b = tf.Variable(tf.random_normal([1]),name="b") X = tf.placeholder(dtyp..

ai-hong.tistory.com

tf.Variable로 초기화할수 있는 연산표

 

3.4 Tensorboard ( 텐서보드를 통한 시각화)

tf.summary.scalar('loss',loss) # 요약정보를 로그에 저장

merged = tf.summary.merge_all() # 모든 요약정보 병합 

tensorboard_write = tf.summary.Filewriter('./tensorboard_log',sess.graph)
# 요약정보를 저장할 폴더 경로 설정 , sess.graph를 통해 그래프 구조도 함께 저장

summary = sess.run(merged.feed_dict{x:__, y:__}
tensorboard_write.add_summary(summary,i)
# 매 스테마다 요약정보 값을 계산해서 저장

인공지능의 머신러닝과 딥러닝의 관계도

* 딥러닝 : 머신러닝을 깊게 쌓아올려 학습

 

1) 지도학습 : 정답데이터가 있는 상황에서 학습하는 알고리즘

                 ( x , y ) 한쌍의 데이터 ==> y 는 정답데이터

 

2) 비지도학습 : 정답없이 데이터의 특징만을 분류

                     ==> 보통 비지도학습 + 지도학습 형태로 사용

 

3) 강화학습 : Agent 가 주어진 환경에서 어떤 행동을 취하고 그에대한 보상 획득

 

 

2장. 인공지능 기술의 활용

1 ) 컴퓨터 비전 : 인간의 시각과 관련된 부분을 컴퓨터 알고리즘을 이용해 구현

                      ex) 이미지분류 , 물체검출 ==> 주로 CNN알고리즘 사용

 

2) 자연어 처리 : 인간의 언어와 같은 자연어로 표현된 언어를 학습

 

3) 음성인식 : 음성 데이터가 표현하는 문장을 학습

 

4) 게임 : 인공지능의 성능을 확인하기 위해 주로 개발

 

5) 생성 모델 : 학습데이터의 분포를 학습하여 학습한 분포로부터 새로운 데이터 생성

+ Recent posts