누구나 TensorFlow!
J. Kang Ph.D.
§ GIST EEC Ph.D. (2015)
§신호처리 과학자, 삽질러
§ 좋아하는 것:
§ 통계적 신호처리 / 무선통신 신호처리
§ 임베디드 오디오 DSP C/C++라이브러리 구현
§ 머신러닝 기반 오디오 신호처리 알고리즘
§ 배워서 남주기
2
§ 대표논문:
Jaewook Kang, et al., "Bayesian Hypothesis Test using Nonparametric Belief Propagation for
Noisy Sparse Recovery," IEEE Trans. on Signal process., Feb. 2015
Jaewook Kang et al., "Fast Signal Separation of 2D Sparse Mixture via Approximate Message-
Passing," IEEE Signal Processing Letters, Nov. 2015
Jaewook Kang (강재욱)
소 개
3.
누구나 TensorFlow!
J. Kang Ph.D.
강의 일정
3
일정 목표
시
간
세부 내 용
Module
1
Python 준비하기 4
- python / anaconda /pyCharm 설치확인
- LAB0: python 개발환경 설치
- python, numpy / pandas 기본
- LAB1: python 예제 실습
머신러닝 가족에게 설명하기 4
- 머신러닝이란?
- 왜 머신러닝인가?
- 최근에 머신러닝이 각광받는 이유
- 머신러닝의 종류
- 머신러닝의 trade-off
Module
2
꼭 알아야할 수리 개념 2
- 확률이론 기본
- 조건부 확률 / 베이지안 룰
- 선형대수 기본
TensorFlow 준비하기 3
- 왜 TensorFlow인가? + TensorFlow 설치
- LAB2: Helloworld in TensorFlow
- TensorFlow 기본 요소
- LAB3: TensorFlow 기본예제 line-fitting
- ML training in Tensorflow
선형 예측 모델 만들기
Linear Regression
3
- Linear Basis function model
- Maximum likelihood and least square
- LAB4: TensorFlow curve-fitting
누구나 TensorFlow!
J. Kang Ph.D.
확률이론 기본
v확률이몬가요?
– 매우 많은 정의가 존재….
• 통계적확률
• 공리적 확률
• 기하학적 확률…….. ㅜㅜㅜ
v쉽게갑시다!
– 일정한 조건? 아래 에서 어떤 사건이 일어난 가능성의 정도를
수치화 한것
– 0보다 크고 1보다 작다.
– 확률 0은 사건이 절대 일어나지 않음을 의미
– 확률 1은 사건이 무족건 일어남을 의미
7
누구나 TensorFlow!
J. Kang Ph.D.
확률이론 기본
v확률변수
–랜덤 시도 결과 (outcomes) 를 수치적 값으로 맵핑한 것
• 따라서 확률변수는 outcomes 의 함수이다
• 일어날 수 있는 모든 outcomes의 집합을 sample
space라고 한다.
– 주사위 던지기 example
• Outcomes: 주사위를 던져서 나온 결과
9
Out
comes
RV
X1
1 2 3 4 5 6
RV
X2
1.5 3.2 2.1 54.3 6.14 9.23
10.
누구나 TensorFlow!
J. Kang Ph.D.
확률이론 기본
v확률분포: p(X=x)
– 확률변수 X가 특정값을 가질 확률을 나타내는 함수
– 확률분포는 확률변수의 함수이다.
10
Out
comes
RV
X
1 2 3 4 5 6
확률
P(X=x)
1/6 1/6 1/6 1/6 1/6 1/6
X
p(X=1), …, p(X=6)
11.
누구나 TensorFlow!
J. Kang Ph.D.
확률이론 기본
v확률분포: p(X=x)
– 확률변수 X가 특정값을 가질 확률을 나타내는 함수
– 확률분포는 확률변수의 함수이다.
– X이 연속확률변수이면 대응하는 확률 분포
• Probability density function (PDF)
– X이 이산확률변수이면 대응하는 확률 분포
• Probability mass function (PMF)
11
X
PMF: Binomial random variablePDF: Normal random variable
X
12.
누구나 TensorFlow!
J. Kang Ph.D.
확률이론 기본
v정규분포 (Normal distribution)
– 우주 만물을 설명하기 위한 핵심 개념 중 하나
– 확률분포를 배우면 가장 먼저 배우는 대표
– 연속 확률 변수 대표주자
– 중심극한 정리 때문에 매우 중요
– PDF 수학표현
• Scalar form
• Vector form
12
p(X | µ,σ ) = N(X | µ,σ ) =
1
2πσ 2
exp −
(x − µ)2
2σ 2
⎧
⎨
⎩
⎫
⎬
⎭
p(X | µ,σ ) =
13.
누구나 TensorFlow!
J. Kang Ph.D.
확률이론 기본
v이항분포 (Binomial distribution)
– 반복적인 독립시행을 모델링할 때 사용
– 주사위 던지기 example
– 이산 확률 변수
– p à0 or 1, Nà inf이면 정교 분포가 된다.
– PDF 수학표현
• Scalar form
13
p(X = k | N, p) =
N
k
⎛
⎝⎜
⎞
⎠⎟ pk
(1− p)N−k
14.
누구나 TensorFlow!
J. Kang Ph.D.
확률이론 기본
v기대값또는 평균 (Mean)
– 확률 변수 값을 확률로 가중치를 줘서 합한것
– 수식:
v분산 (Variance)
– 확률 변수 값의 분포가 얼마나 넓게 분포하는지 나타냄
– 수식:
14
µX := E[X] = x p(X = x)
−∞
∞
∫ dx
µX := E[X] = k p(X = k)
∀k
∑
σ X
2
:= Var[X] = (x − µX )2
p(X = x)
−∞
∞
∫ dx
σ X
2
:= Var[X] = (k − µX )2
p(X = k)
∀k
∑
15.
누구나 TensorFlow!
J. Kang Ph.D.
확률이론 기본
v공분산(Covariance)
– 두 확률 변수 사이의 상관성을 보여주는 값
• 공분산 값이 (+) 이면 양의 상관성을 가진다.
• 공분산 값이 (-) 이면 음의 상관성을 가진다.
– 수식:
15
Cov(X,Y ) = E[XY ]− E[X]E[Y ]
누구나 TensorFlow!
J. Kang Ph.D.
확률이론 기본
v난평균을 그렇케 안구하는데…
v공대생이면 알아야 한다.
– 전제1: 우리는 확률변수 X를 N번 시행하였다. 따라서
• Sample set = {x1,x2,…,xN}을 가지고 있다.
– 전제2: 근데 우리는 X의 확률 분포 p(X=x) 를 모른다.
그래서 대~충 균등 확률 분포를 가정한다( )
19
E[X] = x p(X = x)
−∞
∞
∫ dx ≈ xi p(X = xi )
∀xi
∑
E[X] ≈ xi p(X = xi )
∀xi
∑ ≈
1
N
xi
i=1
N
∑
∀xi , p(X = xi ) =
1
N
20.
누구나 TensorFlow!
J. Kang Ph.D.
Bayes Rule
v “사전정보”과“관찰정보”를 확률적으로 결합하기 위한
규칙
v 훈련데이터 (X,T)로 부터 모델 W를 구하고 싶은 경우
– Prior: 데이터를 보기전에 알고있는 W에 대한 확률정보
– Likelihood: 데이터를 관찰 하여 알게 된 확률정보
– Posterior: prior와 likelihood를 결합한 W에 대한 확률정보
20
posterior prior likelihood
p(W | X,T ) =
p(W )p(X,T |W )
p(X,T )
21.
누구나 TensorFlow!
J. Kang Ph.D.
Bayes Rule
v “사전정보”과“관찰정보”를 확률적으로 결합하기 위한
규칙
v 예제) 사진으로 남자여자 구분하는 문제
– Likelihood:
• 수많은 남자/여자의 사진 데이터
• 머리가 긴 남자 사진 데이터
• 수염이 있는 여자 사진 데이터
– Prior:
• 여자는 머리가 길고 남자는 머리가 짧을 확률이 높다.
• 수염이 있으면 남자일 확률이 높다.
• 화장을 하면 여자일 확률이 높다
• 남자가 여자보다 인구가 많다.
– Posterior:
• 위 두가지를 종합해서 남자여자를 구분하기 위한 확률정보
21
누구나 TensorFlow!
J. Kang Ph.D.
2. Tensorflow준비하기
- 왜 TensorFlow인가? + TensorFlow 설치
- LAB2: Helloworld in TensorFlow
- TensorFlow의 기본요소
- LAB3: TensorFlow 기본예제 line-fitting
- ML training in TensorFlow
- LAB4: TensorFlow 기본예제 Curve-fitting
이제야 준비 끝! 텐플 소개 시작….
23
누구나 TensorFlow!
J. Kang Ph.D.
Why TensorFlow ?
v장/단점(다른 ML프레임워크와의 비교)
– 장점
• 간편한 front-end interface
• 호환성 == 폭 넓은 OS지원
• 빠른 러닝 속도 (Torch 보다는 느림)
• 구글 문서화 (Google!!)
• 넓은 사용자 커뮤니티: 많은 third-party 라이브러리 및
오픈소스 예제
• 강력한 시각화 기능
– 단점
• 잦은 문법 변경 (현재 릴리즈 문법이 다음릴리즈에 변경 ㅋㅋ)
• Define-by-Run 모델: 훈련 실행중에 변경 불가
• 세세한 모델링 / 훈련 설정이 초보자에게 어려움
29
30.
누구나 TensorFlow!
J. Kang Ph.D.
Tensorflow 설치(OSX, ubuntu)
vEasy: pip를 이용한 설치
30
Ubuntu 16.04: shell commands
$ pyenv virtualenv 2.7.12 tensorflow #가상환경 설정
$ pyenv shell tensorflow
(tensorflow) $ pip install numpy scipy matplotlib scikit-learn pandas
(tensorflow) $ pip install –upgrade tensorflow==1.3.0
Collecting tensorflow==1.3.0
…..
(tnesorflow) $ pip list
.....
tensorflow (1.3.0)
.....
31.
누구나 TensorFlow!
J. Kang Ph.D.
Tensorflow 설치(win10)
vEasy: anaconda3 prompt + pip를 이용한 설치
– Win10에서는…. Python 3.5 이상만 tensorflow와
호환된다고 함ㅠ
– Anaconda 4.4 with python 3.6설치
• https://www.anaconda.com/download/#windows
31
32.
누구나 TensorFlow!
J. Kang Ph.D.
Tensorflow 설치(win10)
vEasy: anaconda prompt + pip +conda를
이용한 설치
– 관리자 권한으로 anaconda prompt 실행
32
Anaconda prompt in win10
Ø $ python –m pip install --upgrade pip
Ø $ pip install tensorflow
누구나 TensorFlow!
J. Kang Ph.D.
Tensorflow 설치
vAdv:github에서 직접 소스 다운해서 설치
– 자신의 러닝머신에 커스터 마이즈해서 빌드
• CPU / GPU support
• Python 버전
• CUDA 버전
– 러닝 속도 최적화
– 링크 참고
• http://startupphd.blogspot.kr/2017/06/git-source-tensorflow-r12-
with-gpu.html
35
누구나 TensorFlow!
J. Kang Ph.D.
LAB2: helloWorld in Tensorflow
vPip를통해서 tensorflow를 설치하고 helloWorld를
찍어보자!
37
lab2_runHelloTensorflow.py
(tensorflow) $ vim helloworld.py
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print ('[Lab2] %s' % sess.run(hello))
# Hello, TensorFlow!
a = tf.constant(10)
b = tf.constant(32)
print '[Lab2] a + b = %s' % sess.run(a+b)
# 42
38.
누구나 TensorFlow!
J. Kang Ph.D.
TensorFlow 기본요소
v계산그래프(Computational graph)
– 정의: 연산노드와 텐서노드(Variable/Constant)로 구성된
그래프로 학습 모델을 묘사한다.
38
그림출처: https://medium.com/@camrongodbout/tensorflow-
in-a-nutshell-part-one-basics-3f4403709c9d
누구나 TensorFlow!
J. Kang Ph.D.
TensorFlow 기본요소
vPART I) 계산그래프정의하기
40
ex_runTFconstant.py
#-*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
g = tf.Graph()
with g.as_default():
x = tf.constant(6,name="x_const")# 상수노드 1
y = tf.constant(14,name="y_const") # 상수 노드2
sum = tf.add(x,y,name="sum_xy")# 연산 노드
누구나 TensorFlow!
J. Kang Ph.D.
TensorFlow 기본요소
vPART II) 계산그래프평가하기
– 계산그래프를 평가하기 위해서는 tf.Session()을 열어야
한다.
– 방법2: with 키워드 이용하기
• Indent 안 블럭에서는 매번 run()을 호출하지 않아도 된다.
• 블럭이 끝나면 자동으로 session이 종료된다.
– sum.eval()
• tf.constant()는 그래프 평가 중에 값이 변경될 수 없다.
43
44.
누구나 TensorFlow!
J. Kang Ph.D.
TensorFlow 기본요소
vPART II) 계산그래프평가하기
44
ex_runTFconstant.py
#-*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
g = tf.Graph()
with g.as_default():
x = tf.constant(6,name="x_const")
y = tf.constant(14,name="y_const")
sum = tf.add(x,y,name="sum_xy")
# 세션 블럭 시작
with tf.Session() as sess:
print ('sum.eval()=%d'%sum.eval())
print ('sess.run(sum)=%d'%sess.run(sum))
누구나 TensorFlow!
J. Kang Ph.D.
TensorFlow 기본요소
vtf.Variable()
50
ex_runTFvariable.py
import tensorflowas tf
g = tf.Graph()
with g.as_default():
state = tf.Variable(0, name="cnt")
one = tf.constant(1) # 상수 노드
add_one = tf.add(state, one) # 연산 노드
cnt_update = tf.assign(state, add_one) # state에 연산결과를 대입
# 변수는 그래프가 올라간 뒤 ‘init’ 연산 실행으로 초기화
init_op = tf.global_variables_initializer()
# 계산 그래프를 올리고 연산을 실행합니다.
with tf.Session() as sess:
sess.run(init_op) #변수를 사용하기 위해서 ‘init’ 연산을 실행
print(sess.run(state)) # ‘state’의 초기값 출력
# ‘state’를 갱신하는 연산 실행 후 ‘state’를 출력
for _ in range(3):
sess.run(cnt_update)
print(sess.run(state))
누구나 TensorFlow!
J. Kang Ph.D.
TensorFlow 기본요소
vtf.placeholder()와data feeding
54
ex_runTFfeed.py
import tensorflow as tf
in1 = tf.placeholder(tf.float32)
in2 = tf.placeholder(tf.float32)
out = tf.multiply(in1, in2)
with tf.Session() as sess:
# 계산 그래프를 세션에 올리고 그 입력으로 아래를 그래프 내에서 할당
print(sess.run([out], feed_dict={in1:[6.], in2:[14.]}))
누구나 TensorFlow!
J. Kang Ph.D.
2. Tensorflow준비하기
- 왜 TensorFlow인가? + TensorFlow 설치
- LAB2: Helloworld in TensorFlow
- TensorFlow의 기본요소
- LAB3: TensorFlow 기본예제, Line-fitting -
- ML training in TensorFlow
- LAB4: TensorFlow 기본예제 Curve-fitting
이제한번 해보자!
56
57.
누구나 TensorFlow!
J. Kang Ph.D.
머신러닝 훈련단계
v step I: 해결해야 할 문제 파악하기
v step II: 데이터 수집 + 정제하기 + 관찰하기
v step III: 훈련 모델 정하기
– Linear model ?, Neural network?
– Types of Activation functions ?
– Number of layers?
v step IV: cost function 정하기
– 어떤 cost를 가지고 모델 파라미터를 훈련할 것인가?
– MSE, MAE, cross-entropy,…
57
58.
누구나 TensorFlow!
J. Kang Ph.D.
머신러닝 훈련단계
v step V: 모델 파라미터 찾기위한 optimizer 정하기
– 어떤 solver로 최적화 문제를 풀것인가?
– Gradient descent?, Conjugate gradient?
v step VI: 훈련 설정 정하기
– 데이터 feeding 설정
• Total_size : 전체 training set 크기
• Batch_size: 단일 batch processing에 들어갈 데이터 사이즈
• Batch 횟수 : total_batch_num = int(total_size / batch_size)
– 최적화 Solver 설정
• total_steps: 최적화 문제 해결을 위한 step수
• local_steps: 1회 solving에서 진행할 step수
• Learning_rate: 최적화 속도
58
누구나 TensorFlow!
J. Kang Ph.D.
ML training in Tensorflow
vStep I) 데이터 셋(X,Y) 준비하기
vML 좋은 데이터 셋을 준비하는 것이 80% 이다!!
vX: feature, Y: label
– 1) Outlier & Irregular 데이터 제거
• 빈칸, NaN
– 2) Normalization of data set X
• 데이터 크기(abs)가 [0,1] 범위 안에 들어오록 스케일링
• norm_X = abs( X ) / max_value_abs * sign(X)
– 3) Standardization of data set X
• 데이터의 분포가 zero-mean, unit-variance를 가지게 스케일링
• 여러 종류 데이터를 비교: ex) 카카오 주식 / 네이버 주식
• stand_X = ( X – mean(X) ) / std(X)
63
누구나 TensorFlow!
J. Kang Ph.D.
ML training in Tensorflow
vStep II) Model trainingconfig 설정하기
– 1) training_epochs > 0 : 최적화 반복 학습 횟수
• training_epochs = int (total_steps / local_steps)
– 2) learning_rate in (0,1] : model이 데이터로 부터
학습하는 속도를 결정한다.
• learning_rate↑ à 학습속도 ↑, 발산가능성↑
– 3) 데이터 batch 횟수:
• Training data가 batch_size 단위로 나누어 져서 총 total_batch =
int(total_size / batch_size)회 학습이 수행됨
• 데이터 feeding loop가 도는 동안 cost는 누적 계산된다.
65
누구나 TensorFlow!
J. Kang Ph.D.
ML training in Tensorflow
vStep III) 계산그래프 정의하기
vEx) Linear model: pred_Y = a*x + b, MSE cost func.
– 1) training data (X, Y) 를 feeding 하기위한 tf.placehoder Tensor 선언
– 2) model parameter (a, b)값 저장을 위한 tf.Variable Tensor 선언
– 3) 학습모델의 입출력 관계 설정
• linear model: y_pred = a * x + b
– 4) MSE cost function 설정
• cost = tf.reduce_mean(tf.reduce_sum( tf.square(y - pred_y) ,
reduction_indices=1), name="mse")
– 5) optimizer 설정 (GradientDescent)
• optimizer =
tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
67
68.
누구나 TensorFlow!
J. Kang Ph.D. 68
lab3_runTFLineFitting.py
# computational TF graph construction ================================
x= tf.placeholder(tf.float32, [xsize,None])
y = tf.placeholder(tf.float32, [xsize,None])
# Set model weights which is calculated in the TF graph
a = tf.Variable(0.) # initialization by 1
b = tf.Variable(0.)
print ('TF graph nodes are defined')
# Construct model
pred_y = a * x + b
# Minimize error using MSE function
cost = tf.reduce_mean(tf.reduce_sum( tf.square(y - pred_y) , reduction_indices=1),
name="mse")
# Gradient Descent
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
print ('Functions in TF graph are ready')
69.
누구나 TensorFlow!
J. Kang Ph.D.
ML training in Tensorflow
vStep IV) 성능측정 모델 정의하기
– 학습결과에 대한 성능을 측정하기 위한 model을 정의
– 학습모델에 의한 예측값과 실제 데이터의 label값이
어느정도로 일치하는 측정한다.
• 1) Classification: Miss-classification rate를 사용
– training set과 validation set의 성능을 나누어서 측정
– Bayesian theory 에 근거함
• 2) Regression: Mean squared error 사용
69
누구나 TensorFlow!
J. Kang Ph.D.
ML training in Tensorflow
v Step V)모델 훈련시키기
– 1) 정의한 계산그래프를 tf.Session()에 올려서 계산
– 2) tf.Session() 안에서 variable사용을 위해서…
• init = tf.global_variables_initializer() 정의
• tf.Session() 안에서 가장 먼저 실행한다. (sess.run(init) # this for variable use)
– 3) tf.Sesson()안에서 두개의 for loop 로 구성된다.
• Iteration Loop: 최적화 반복 학습을 위한 loop
• Data feeding Loop: 데이터 feeding 를 위한 loop
– 4) placeholder (x,y)에 training data가 feeding
• 여기서 전체 데이터가 training_epoch 번으로 나뉘어서 feeding된다.
• 데이터 feeding loop가 도는 동안 cost는 누적 계산된다.
71
72.
누구나 TensorFlow!
J. Kang Ph.D. 72
lab3_runTFLineFitting.py
# Launch the graph (execution) ========================================
# Initializing the variables
init= tf.global_variables_initializer()
## -------------------- Learning iteration start --------------------
with tf.Session() as sess:
sess.run(init) # this for variable use
# Training cycle
for epoch in range(training_epochs): # iteration loop
avg_cost = 0.
total_batch = int(training_size/batch_size) #
# Loop over all batches
for i in range(total_batch): # data feeding loop
[ Data feeding loop inside …]
print("--------------------------------------------")
print("Optimization Finished!")
73.
누구나 TensorFlow!
J. Kang Ph.D. 73
lab3_runTFLineFitting.py
for iin range(total_batch): # data feeding loop
data_start_index = i * batch_size
data_end_index = (i + 1) * batch_size
# feed traing data --------------------------
batch_xs = x_training_data[:,data_start_index:data_end_index]
batch_ys = y_training_data[:,data_start_index:data_end_index]
#----------------------------------------------
# Run optimization op (backprop) and cost op (to get loss value)
# feedign training data
_, local_batch_cost = sess.run([optimizer, cost], feed_dict={x: batch_xs, y: batch_ys})
# Compute average loss
avg_cost += local_batch_cost / total_batch
# print ("At %d-th batch in %d-epoch, avg_cost = %f" % (i,epoch,avg_cost) )
# Display logs per epoch step
if (epoch+1) % display_step == 0:
print("Epoch:", '%04d' % (epoch+1), "cost=", "{:.9f}".format(avg_cost/batch_size))
batch_xs = x_training_data
batch_ys = y_training_data
error_rate_training[epoch] = accuracy.eval({x: batch_xs, y: batch_ys},session=sess)/training_size
error_rate_validation[epoch] = accuracy.eval({x: x_validation_data,
y:y_validation_data},session=sess)/validation_size
print("Training set MSE:", error_rate_training[epoch])
print("Validation set MSE:", error_rate_validation[epoch])
누구나 TensorFlow!
J. Kang Ph.D.
- 3.선형 예측 모델 만들기
Linear Regression
- Linear Basis function model
- Maximum likelihood and least square
- LAB4: TensorFlow curve-fitting
이론 간단히 후딱 넘어갑시다!
77
누구나 TensorFlow!
J. Kang Ph.D.
Measurement Model
v측정에는 항상오류가 동반된다!
vE(error)의 모델링에 따라 cost 함수을 다르게 준다
– E is Gaussian noise à Sum of Square (MSE)
– E is Laplacian noise à Sum of Absolute (MAE)
– E is from probabilistic uncertainty of ‘t’
• à Sum of cross-entropy
79
t = Y(X,W )+ E
cost = (Yj − tj )2
j
N
∑
cost = Yj − tj
j
N
∑
cost = − tj log yj + (1− tj )log(1− yj ){ }j
N
∑
누구나 TensorFlow!
J. Kang Ph.D.
Bayesian Framework in Line-fitting
v Prior: 데이터를보기전에 알고있는 확률 정보
– ML문제에서는 모델 파라미터 a,b에 대한 확률 분포
– 주로 특정 분포로 모델링하는 것으로 가정하는 경우가 많음
– Gaussian, Laplace, ….
v Likelihood: 주어진 데이터의 확률 정보
– ML문제에서는 측정데이터 {t}에 대한 확률 분포
– 주로 측정데이터의 히스토그램 분포를 보고 모델링
– 모델에서는 E의 확률분포를 따라감
– 왜?
v Posterior:
– 사전 정보와 데이터의 정보를 결합한 확률 분포
– 데이터의 개수가 많아지면 Posterior는 Likelihood에 근접하게 됨
82
t = Y(X,W )+ E
Posterior ∝ Prior × Likelihood
83.
누구나 TensorFlow!
J. Kang Ph.D.
Maximum likelihood Estimation
v N개training data set을 가정
–
v Likelihood 확률분포
– 각 data pair (x_i, t_i) 는 서로 독립임을 가정)
– 모든 측정 데이터 ‘{t}’에 대한 joint likelihood 확률분포
v Maximum likelihood (ML) estimation
– Line-fitting 문제 처럼 추정해야할 모델 파라미터가 a,b인 경우
83
p(t |Y, X,a,b) = p(ti | yi ,xi ,a,b)
i=1
N
∏
(a!,b!) = argmax
a,b
p(t | X,Y,a,b)
(X,T ) = {(x1,t1),...,(xN ,tN )} T = Y(X,W )+ E
84.
누구나 TensorFlow!
J. Kang Ph.D.
Least Square Estimation (LSE)
vLinear model + AWGN model => LSE
–AWGN(백색 가산 잡음): 주파수 특성이 모든 스팩트럼에 대해서 일정한
잡음
v Likelihood function
v ML estimation for W
84
p(t | X,Y,W ) =
1
2πσ 2
exp −
(tj − wjφ(X))2
2σ 2
⎛
⎝⎜
⎞
⎠⎟
j=1
N
∏
p(E) = p(Ej )
j=1
N
∏ , where p(Ej ) =
1
2πσ 2
exp −
Ej
2
2σ 2
⎛
⎝⎜
⎞
⎠⎟
W! = argmax
W
p(t | X,Y,W )
where p(t | X,Y,W ) =
1
2πσ 2
exp −
(tj − wjφ(X))2
2σ 2
⎛
⎝⎜
⎞
⎠⎟
j=1
N
∏