2. 누구나 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
3
직선으로 데이터 구분하기
Logistic classification
- Introduction to Linear Classification
- Naïve Bayes (NB)
- Linear Discriminent Analysis (LDA)
- Logistic Regression (LR)
- NB vs LDA vs LR
- LAB5: Linear Classication in TensorFlow
Module
4
딥러닝의 선조
뉴럴 네트워크
4
- 뉴런을 수학으로 표현하기
- Feed-Forward Neural Networks
- Linear 뉴런의 한계와 Activation 함수
- Gradient descent Revisit
- Backpropagation algorithm
- LAB6: Two-layer neural net with Backpropagation in
TensorFlow
4. 누구나 TensorFlow!
J. Kang Ph.D.
GitHub link
GitHub link (all public)
– https://github.com/jwkanggist/EveryBodyTensorFlow
4
5. 누구나 TensorFlow!
J. Kang Ph.D.
1. 직선으로 구분하기
- Linear classification: 딥러닝이 만능이 아니라구!
- Classification이란 무엇인가?
- Linear Separable data
- Naïve Bayes (NB)
- Linear Discriminent Analysis (LDA)
- Logistic Regression (LR)
- NB vs LDA vs LR
5
6. 누구나 TensorFlow!
J. Kang Ph.D.
Classification이란 무엇인가?
Definition
– 주어진 데이터 (경험)를 통해서 컴퓨터에서 데이터를 구분하는
법을 알려주는 일!
– Supervised learning !!
6
이미지 출처: http://amanullahtariq.com/male-and-
female-classification/
7. 누구나 TensorFlow!
J. Kang Ph.D.
Classification vs Regression
Classification: label이 있는 데이터를 구분 모델 찾기
Regression: 데이터의 경향을 파악하고 예측 모델 찾기!
Clustering: 비슷한 데이터들 끼리 속성 구분하기 (Labeling)
7
이미지 출처: http://www.csie.ntnu.edu.tw/~u91029/Classification.html
8. 누구나 TensorFlow!
J. Kang Ph.D.
Feature Space
Feature space가 몬가요…..
– 시스템의 입력 데이터 X 가 정의 되는 공간!
– Ex: spam mail이 아래와 같은 feature를 가진다고 한다면?
• Feature1: Mail에사용되는 단어
• Feature2: Mail 제목 길이
• Feature3: Mail에 사용된 언어
• Feature4: Mail 본문 길이
– 입력데이터는 위와 같은 feature들의 조합으로 다양하게 구성될 수
있음
– 하지만 구성될 수 있는 입력데이터 X의 구성은 feature의 조합으로
제한됨!
– Feature Space는 입력데이터 X가 정의될수 있는 제한적인 공간을
의미함
8
9. 누구나 TensorFlow!
J. Kang Ph.D.
Linear Separable Data
Feature space에서 직선(hyperplane)으로 다른 종류의
label을 가지는 데이터를 구분할 수 있는 경우!
– 예제: 2D Feature space: X1 = [x1,x2]
9
x1x1
x2x2
10. 누구나 TensorFlow!
J. Kang Ph.D.
Linear Separable Data
저차원 feature Space에서 linear separable하지 않아도
feature의 차원을 높이면 linear separable 하게 만들 수 있다.
– Ex) Support Vector Machine
10
이미지 출처:
https://www.researchgate.net/publication/235698156_Support_vector_machine_for_multi-
classification_of_mineral_prospectivity_areas/figures?lo=1&utm_source=google&utm_medium=organic
11. 누구나 TensorFlow!
J. Kang Ph.D.
Binary Class vs. Multi Class
얼마나 많은 종류로 구분이 가능한가요?
– 과일의 종류는 엄청 많은데…
11
이미지출처: http://www.mdpi.com/1424-8220/12/9/12489
12. 누구나 TensorFlow!
J. Kang Ph.D.
Binary Class vs. Multi Class
얼마나 많은 종류로 구분이 가능한가요?
– 동물도…
12
이미지 출처: https://www.youtube.com/watch?v=mRidGna-V4E
14. 누구나 TensorFlow!
J. Kang Ph.D.
Some Background Revisit
Linear Basis function Model
Additive Measurement Model
Bayes Rule
14
15. 누구나 TensorFlow!
J. Kang Ph.D.
Linear Modeling
Linear Basis function model
– 시스템의 입출력 (X,Y)을 선형관계를 가진다고 가정
Additive Measurement Model
– 가산 측정오류가 특정 통계 분포를 가진다고 가정
15
System
W
Y
System
W
Y
+ T
Error, E
f(X)X
Basis function
16. 누구나 TensorFlow!
J. Kang Ph.D.
Linear Modeling
Linear Basis function model
Measurement Model
16
Y =Y(X,W) =Wf(X)+ B
T =Y(X,W)+ E
17. 누구나 TensorFlow!
J. Kang Ph.D.
Bayes Rule
“사전정보”과 “관찰정보”를 확률적으로 결합하기 위한
규칙
훈련데이터 (X,T)로 부터 모델 W를 구하고 싶은 경우
– Prior: 데이터를 보기전에 알고있는 W에 대한 확률정보
– Likelihood: 데이터를 관찰 하여 알게 된 확률정보
– Posterior: prior와 likelihood를 결합한 W에 대한 확률정보
17
posterior prior likelihood
p(W | X,T ) =
p(W )p(X,T |W )
p(X,T )
18. 누구나 TensorFlow!
J. Kang Ph.D.
Bayes Rule
“사전정보”과 “관찰정보”를 확률적으로 결합하기 위한
규칙
예제) 사진으로 남자여자 구분하는 문제
– Likelihood:
• 수많은 남자/여자의 사진 데이터
• 머리가 긴 남자 사진 데이터
• 수염이 있는 여자 사진 데이터
– Prior:
• 여자는 머리가 길고 남자는 머리가 짧을 확률이 높다.
• 수염이 있으면 남자일 확률이 높다.
• 화장을 하면 여자일 확률이 높다
• 남자가 여자보다 인구가 많다.
– Posterior:
• 위 두가지를 종합해서 남자여자를 구분하기 위한 확률정보
18
19. 누구나 TensorFlow!
J. Kang Ph.D.
Bayes Rule for Classification
데이터 셋 정의
Class (-conditional) likelihood density
– 데이터가 말해주는 Class 에 대한 확률 분포
Class prior density
– 사전 정보로 알고있는 Class 에 대한 확률 분포
Class posterior density
–
19
Posterior µ Likelihood ´ Prior
T = {T1,..,TM },X = {X1,...,XM },Y = {Y1,...,YN }
T Î{0,1}
T Î{0,1}
p(T)
p(X |T,W )
20. 누구나 TensorFlow!
J. Kang Ph.D.
Bayes Rule for Classification
W와 데이터 (X,T) 가 주어졌을때 classification (Cn)
– Prior: 데이터를 보기전에 알고있는 Cn에 대한 확률정보
– Likelihood: 데이터를 관찰 하여 알게 된 확률정보
– Posterior: prior와 likelihood를 결합한 Cn에 대한 확률정보
20
Class posterior Class prior likelihood
21. 누구나 TensorFlow!
J. Kang Ph.D.
Linear classifier
Feature Space에 직선을 그어서 class를 구분하자!
그 직선을 구하는 방법!
– 방법1) 시스템의 입출력관계 T = Y(X,W)+ E 를 통계적
모델링을 하고 Classifier (W)를 ML est으로 구한다.
• Naïve Bayes Classifier
• Linear Discriminant Classifier
– 방법2) 시스템 출력를 함수를 이용해서 확률값
[0,1]으로 Mapping 하고, ML est 통해서 Classifier (W)를
구한다.
• Logistic Regression Classifier
21
22. 누구나 TensorFlow!
J. Kang Ph.D.
Classifier 1: Naïve Bayes
Bayes Rule를 그대로 적용한 Linear classifier
– X의 모든 축이 독립이라고 가정 Likelihood density Modeling
22
23. 누구나 TensorFlow!
J. Kang Ph.D.
Classifier 1: Naïve Bayes
Bayes Rule를 그대로 적용한 Linear classifier
– X의 모든 축이 독립이라고 가정 Likelihood density Modeling
– ML estimation을 통해서 W를 구한다. likelihood의 파라미터를
구한다.
– Bay’s Rule을 적용하여 Class posterior density 구한다.
– Binary Classifier gamma 를 구한다.
– The classifier choose T = 1 when
23
p(T | X,W ) = p(ti | xi ,W )
i
Õ
24. 누구나 TensorFlow!
J. Kang Ph.D.
Classifier 2: Linear Discriminent Analysis
Naïve Bayes와 달리 X의 축간의 상관성을 고려한다.
– Feature X를 Gaussian 분포로 통계적 모델링 한다.
– Feature X의 축간의 상관성을 고려한다.
• Feature X의 모든 축은 독립이 아니다!
• class likelihood density는 covariance matrix 를 포함
• 모든 class에서 같은 covariance matrix를공유
• Covariance matrix의 정보를 이용하여 두 class가 가장 이격되는
축을 찾고, 그 축을 기반으로 classifier를 찾는다.
24
S
25. 누구나 TensorFlow!
J. Kang Ph.D.
Classifier 2: Linear Discriminent Analysis
Likelihood를 구하는 과정을 제외하고 Naïve Bayes와 같음
– X를 correlated Gaussian라고 가정 Likelihood density Modeling
– W를 likelihood 파라미터 ( )로 표현할수 있다. (복잡 ㅜ)
– ML estimation을 통해서 W를 구한다. ( )을 구한다.
– Bay’s Rule을 적용하여 Class posterior density 구한다.
– Binary Classifier gamma 를 구한다.
– The classifier choose T=1 when
25
p(X |T = k,W ) =
1
(2p)M /2
1
S
1/2 exp -
1
2
(X - mk )T
S-1
(X - mk )
ì
í
î
ü
ý
þ
mk=1,mk=0,S
mk=1,mk=0,S
26. 누구나 TensorFlow!
J. Kang Ph.D.
LDA VS Naïve Bayes
Naïve Bayes
– 분포의 contour가 원형 feature의 축간 상관성 고려 X
26
X = [x1,x2 ]
x1
x2
27. 누구나 TensorFlow!
J. Kang Ph.D.
LDA VS Naïve Bayes
LDA
– 분포의 contour가 기울진 타원 feature 축간 의 상관성 고려 O
– Variance가 최소화되는 축을 찾음
27
X = [x1,x2 ]
x1
x2
28. 누구나 TensorFlow!
J. Kang Ph.D.
Classifier 3: Logistic Regression
통계적 모델링 없이 classifier를 찾는다.
– T = Y(X,W) + E의 관계를 통계적으로 모델링하기 귀찮다
어렵다!
– Feature의 분포의 통계적 모델링이 어렵다.
– ML추정해야하는 파라미터의 개수가 너무 많다
28
29. 누구나 TensorFlow!
J. Kang Ph.D.
x2
++++++ +++
OOOOO
O
O OOOOO
x1
Sigmoid
mapping
Y
Classifier 3: Logistic Regression
통계적 모델링 없이 classifier를 찾는다.
– Sigmoid 함수를 사용하여 시스템 측정값 “Wx + B”을 바로 확률
값으로 맵핑!
– Sigmoid 함수를 여기서 “Activation function”이라고 한다.
29
Y =s(Wf(X)+ B)Î[0,1]
Wf(X)+ B s(×)
Wf(X)+ B
X
30. 누구나 TensorFlow!
J. Kang Ph.D.
Classifier 3: Logistic Regression
Y값을 바로 likelihood 확률 값으로 간주하고 Classifier를
구한다.
이기 때문에 cost function으로 MSE를 사용할수
없다!
Probabilistic uncertainty 측정 Cross-entropy사용!
Cross-entropy를 최소화하는 W를 찾는다.
– No Close form
– Numerical solver required! Gradient descent!
30
p(T |Cn,X,W) =Y =s(Wf(X)+ B)
T Î{0,1}
cost = - tj logyj + (1- tj )log(1- yj ){ }j
N
å
31. 누구나 TensorFlow!
J. Kang Ph.D.
NB vs LDA vs LR 비교
31
Classifier
Name
Pros Cons Assumption
Naïve
Bayes
- Simple
- Low complexity
- Ignore correlation
in features
- All features
are
independent
Linear
Discrimina
nt Analysis
- Providing
maximum
separation of
classes
- Bayesian
optimality
- Only for Gaussian
like data
- Higher complexity
as increases
feature dimension
- Vulnerable to
outlier
- All feature are
Gaussian
Logistic
Regression
- Simple
- Low complexity
- Robust to outlier
- External numerical
solver required
- None
32. 누구나 TensorFlow!
J. Kang Ph.D.
LAB 5 Logistic Regression in Tensorflow
Logisitic regression을 tensorflow로 구현하고
성능을 비교해보자!
– 데이터 생성
• C0: X = N(mean = [0,0] ,var =1), Y = 0 XOR E
• C1: X = N(mean = [3,3], var =2), Y = 1 XOR E
– where E is 1 with p = 0.1
• Total_size =5000
• Traning_size = 4000, Validation_size = 1000
• ML Model = sigmoid( XW + B)
• Optimizaer: GradiantDescent
• Cost : cross-entropy
– https://github.com/jwkanggist/EveryBodyTensorFlow/blob/master/lab5_runTFLogisticReg.py
32
Editor's Notes
안녕하세요 MATLAB 1일차 첫 시간을 시작하겠습니다
강의를 시작하기 전에 제 소개를 잠깐 드리면
저는 현재 정보통신과 박사과정에 재학중인 학생이고요
강재욱이라고 합니다
즉 여러분의 학교 선배가 입니다
저는 현재 김기선 교수님과 연구를 같이하고 있습니다
연구분야는 간단하게 얘기하면 선형 시스템의 저복잡도 역변환 알고리즘을 연구하고 있습니다
자세한 내용은 저의 홈페이지나 저희 연구실 홈페이지에서 보실수 있습니다.
강의내용에 대한 질문이나 기타 저희 연구에 관심이 있으신 분은 이메일로 연락주시면 자세히 설명해 드리도록 하겠습니다
또한 기타 도움이 필요하신 경우에 연락 주시기바랍니다
본 matlab 강의는 총 3일에 걸쳐서 3명의 강사가 진행합니다.
그 차례는 다음과 같습니다
따라서 저는 여러분 오늘 아침시간과
내일 아침시간을 함께 즐겁게 보내게 되겠습니다
먼저 메트랩 프로그래밍의 가장 일반적인 부분에 대해서 애기를 해보겠습니다
강의 중간에 질문이 있으시면 언제든지 손을 들고 말씀해 주세요
사실 맵틀랩도 하나의 프로그래밍 언어이기 때문에 그 기초는 다른 언어와 매우 흡사합니다
혹시 매트랩 프로그래밍에 경험이 있으신 분 얼마나 되나요?
아니면 씨언어?
잘하시는 분들은 좀 지루할 수도 있겠지만 간단하게 짚어보도록 하겠습니다.