Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

Chpter05 Sequence-to-Sequence with Attention

5.1 Seq2seq:Encoder-DecoderModel

 

 

5.1.1 Seq2seq : Encoder

input token x1,,xT 에 대하여
Context vector C 는 T시점에서의 RNN 의 hidden state, 즉 hT

5.1.2 Seq2seq : Decoder

5.1.2 Seq2seq : Decoder (Cho et al.)

 

5.1.3 Seq2seq : Encoder-Decoder Graph Repressentation

간소화를 위하여 hidden state와 input vector의 dimension을 모두 2로 고정 동일한 weight matrix에 속하는 weight들은 같은 색으로 표시

 

 

5.1.3 Seq2seq : Encoder-Decoder Model Training

Encoder-decoder is optimized as a single system. Backpropagation operates "end-to-end"

5.1.4 Seq2seq : Encoder-Decoder Model for ASR

5.2 Seq2Seq: The Bottleneck Problem

5.2.1 Attention

- Bottleneck problem에 대한 해결을 위해 attention 개념이 제안됨

- Core idea : 각 시점마다 decoder에서 입력 sequence의 특정 부분에 초점을 맞출 수 있도록 encoder로 직접적으로 연결

 

5.2.2 Seq2Seq with Attention

5.2.2 Seq2Seq with Attention

 

5.2.2.1 Attention: in equations

 

Encoder Hidden States h1,,hNRh
t 시점에서의 decoder hidden state stRh
Attention score et 는 다음과 같이 계산
et=[sTth1,,sTthN]RN
Attention score에 softmax를 적용한 뒤, attention distribution αt 를 계산
αt 는 더해서 1 이 되는 확률 분포
αt=softmax(et)RN
Attention output atαt 와 encoder hidden state의 weighted sum을 통해서 계산
at=Ni=1αtihiRh
Attention output at 와 decoder hidden state st 를 concatenate한 뒤, 일반적인 seq2seq모델 처럼 처리 [at;st]R2h
et=[sTth1,,sTthN]RNαt=softmax(et)RNat=Ni=1αtihiRh


 

 

 

 

 

 

 

 

 

 

 

 

 

Posted by creatoryoon
,

</p

 

4.1 Introduction

- 아래와 같은 공이 있을 때 다음 위치를 예측 할 수 있을까?

- 이전 시점들의 정보가 주어진다면?

4.1.1 Examples of Sequence Data

4.1.2 Sequence Modeling Applications

4.1.2 Handling Individual Time steps

4.2   Neurons with Recurrence

 

4.2.1  Recurrent Neural Networks (RNNs)

 

 

 4.2.2 Activation Functions

 

 

4.2.3  The Role of the Hidden Layer

The role of the hidden layer is to map samples from the input space to the hidden layer space.

 

4.2.4  RNN State Update and Output

 

4.2.5  RNN : Graph Representation

발성에 있어 인접한 t에는 dependency가 존재한다.

 

4.2.6  RNNs : Computational Graph Across Time

 

4.2.7 Example : Predict Sequence of Character


§ 다음 문자를 예측하는 네트워크를 설계

● "hello"라는 단어 기준

●  h,e, 1,1 이 입력으로 들어왔을 때 o 를 예측

- {'h': 0, 'e':1, 'l':2, 'o':3\}

●  one-hot encoding

h [1,0,0,0]
e [0,1,0,0]
l [0,0,1,0]
o [0,0,0,1]


●  hidden layer는 1 층의 RNN을 사용

전체적으로 봤을 땐 Language 모델, t=1 일 때 h 오면 e 예측 t=2 일때 e 오면 i를 예측 한다.


● 다음과 같은 one-hot encoding을 입력으로 받음

●  RNN model :

ot=htWhoht=tanh(ht1(Whh+xt(Wxh))

 

 

 Wxh 는 다음과 같은 0 에서 1 사이의 값으로 (4×3 )행렬을  random initialize 

Wxh=(0.29730.27660.79740.38690.91700.41250.55380.56460.50260.22060.68010.3880)

 

 x1Wxh 는 다음과 같이 계산

x1Wxh=((1000)×(0.29730.27660.79740.38690.91700.41250.55380.56460.50260.22060.68010.3880)=(0.29730.27660.7974)$

 

 

 

 Whh 는 다음과 같은 0 에서 1 사이의 값으로 random initialized 3×3 행렬

Whh=(0.31520.50830.94540.30080.60580.29990.97410.34190.9133)

 

 ht1Whh 를 계산하기 위해서는 initial hidden state h0 가 필요

- 일반적으로 initial hidden state로는 O 를 사용(영행렬)

 

 

 h1 은 다음과 같이 update

 Why 는 같은 0 에서 1 사이의 값으로 random initialized 3×4 행렬

Who=(0.31890.62160.51640.75010.02600.62300.01790.61230.13200.90090.38730.8142)

 

 

 o1 의 softmax 값과 이중 가장 큰 값의 index를 추출하는 argmax를 적용

미분이 아름답기에 exp를 사용한다.

 

 Wxh,Whh 는 동일한 weight를 사용

 x2Wxhh1Whh는 다음과 같이 계산한다.

 

 h2 는 다음과 같이 update

 

h2=tanh(h1Whh+x2Wxh)=tanh((0.81760.53680.9591)+(0.38690.91700.4125))=tanh((1.20451.45381.3716))=(0.83500.89640.8791)

o2는 시점 1에서와 동일한 방법으로 계산할 수 있다.

o2=h2Who=(0.83500.89460.8791)(0.31890.62160.51640.75010.02600.62300.01790.61230.13200.90090.38730.8142)=(0.40561.86960.78771.8910)

이때 o2는 확률이 아님에 유의.

softmax(o2)=softmax(0.40561.86960.78771.8910))=(0.08920.38580.13080.3942)

 잘못된 예측 발생

- 올바른 예측은 2:1이 되어야 한다.

잘못된 예측

 올바르게 학습된 RNN Model

 

4.3   RNN 학습

4.3.1  RNNs : Computational Graph Across Time

 

4.3.2 Backpropagation Through Time(BPTT)

Backpropagation through time을 계산 하기 위하여 다음과 같은 RNN 모델을 정의한다.

 

ht=f(XtWxh+ht1Whh)  (f is activation function)

ot=htW(h0)

^yt=softmax(ot)

이때, ot 는 출력 logit이고 ˆyt 는 여기에 SoftMax를 취한 값이다.C 개의 Class를 갖는 출력에 대한 cross entropy를 이용할 때, 시점 t 애서의 정답 yt 에 대한 loss t 를 이용하여 길이 T 의 sequence에 대한 총 loss function 은 다음과 같이 주어진다

 

Hidden state를 출력과 연결하는 weight와 관련된 gradient를, 즉 Who 의 속하는 가중치 wij 에 대하여 계산한다.  wij 는 hidden state의 i 번째 unit을 j 번째 출력 unit에 연결하는 welght이다.

 

wij 에 대한 loss function L 에 관한 식을 계산 하기 위해서는 각 시점에서의 gradient를 합산 해야한다. 그러므로 Lwij 에 대한 식은 다음과 같아진다.

Lwij=Tt=1twij=Tt=1tˆy(j)tˆy(j)to(j)th(i)t

Lwij 에 대한 식에서 각 항들의 값들은 다음과 같이 구할 수 있다.


다음으로 T1 시점에서의 hidden state와 T 시점의 hidden state의 weight, 즉 Whh 에 속하는 weight uki 에 대해 계산한다.  uki 는 hidden state 내의 k 번째 unit과 i 번째 unit을 연결하는 weight이며, hidden state는 이전 시점의 값에 따라 변경되기 때문에 이를 이해하기 위해 시점 t 에서 i 번째 hidden state unit, 즉 h(i)t 에 대해h(i)t=f(Nl=1ulih(l)t1+Dm=1vmix(m)t+bhi)로 계산된다

weight uki 에 대한 t 시점에서의 loss function에 대한 gradient는 다음과 같다.

tuki=th(i)th(i)tuki

여기서의 c(i)t 는 다음과 같다.

c(i)t=Nl=1ulih(l)t1+Dm=1vmix(m)t

h(i)t1 는 점화식에 의해 f(ukih(k)t2+uiih(i)t2+c(i)t1) 로 표현 가능하므로 계산하려는 weight ukih(i)t1 에 관한 항으로 정리하며, 시점 t 에서의 점화식은 첫번째 시점까지 계속 될 것이므로, t=t 에서 부터 t=1 까지의 모든 gradient의 합을 고려해야한다. weight uki 에 관한 h(i)t 의 gradient가 점화식에 의해 정의 되므로, uki 에 대한 h(i)t 편미분은 다음과 같이 정리할 수 있다.

h(i)t=f(ukih(k)t1+uiih(i)t1+c(i)t)h(i)tuki=tt=1h(i)th(i)th(i)tuki

ˉh(i)tuki 닌 h(i)t1 를 상수로 유지한 채 계산한 uki 에 대한 h(i)t 의 local gradient를 나타낸다.

tuki=tt=1th(i)th(i)th(i)th(i)tuki

이전 식에서 시점 t에서의 loss function에 관한 gradient로 일반화를 하기 위해서는 모든 시점에서의 gradient의 합으로 표현

Luki=Tt=1tt=1th(i)th(i)th(i)th(i)tuki

h(i)th(i)t 는 다음과 같이 나타낼 수 있다.

h(i)th(i)t=tg=t+1h(i)gh(i)g1

이를 위 식에 대입하면 다음과 같은 수식을 얻을 수 있다

Luki=Tt=1tt=1th(i)t(tg=t+1h(i)gh(i)g1)ˉh(i)tuki

Wxh 에 속하는 weight에 대해서도 유사한 방법으로 계산 가능

 

4.3.3 Problem of Vanilla RNN

 Short term memory 문제

1 초의 음성을 들었으면? 마지막 t=50 에서 나오는 hl 의 벡터를 통해 전체 음성입력의 벡터로 바뀌었다.. 라도 하게 되는데, x50이 가장 큰 영향을 주고있음. 마지막에 준 값이 가장 영향이 큰 것이 문제.

 

 Non-linearity functions에 따른 문제


- sigmoid보다 derivative의 폭이 넓은 tanh 를 사용


- 그럼에도 tanh 의 값이 거의 항상 1 보다 작음  Vanishing gradient(기울기 소실)

LTW=LThT(Tt=2tanh(Whhht1+Wxhxt)))WT1hhh1W

 

 

 

 

 

 

그렇다고 Non-linearity를 제거한다면,

 

 

4.3.4  Solution to The Problem of Vanilla RNN

 

 Gate를 추가하여 선택적으로 정보를 기억할 수 있도록 개선

  - Long Short Term Memory (LSTM) [Hochreiter, 1997], [Gers, 2000]

  - Gated Recurrent Unit (GRU) [Cho, 2014]

기억을 좀더 오래하고, 잊을건 빨리 잊자는.,

 

Posted by creatoryoon
,

 

Chapter 3: Feed Forward Neural Net

3.1 Perceptron – 신경망

퍼셉트론이란 뉴런을 모방한 회로를 말한다. 

http ://cs231n.stanford.edu/slides/winter1516_lecture4.pdf
© 2017, SNU BioIntelligence Lab, h+p ://bi.snu.ac.kr/

다만, 이 퍼셉트론은 선형분류라는 특성상 한계가 존재한다.

 

 §  동그라미와 세모를 분리하려면 어떻게 해야 할까?

 §  y = ax + b 형태의 직선을 이용할 수 있다.

 §  일반화해서 표현해 보자.

 §  Generalization

3.1 Perceptron – AND 분류

 

3.1 Perceptron – OR 분류


3.1 Perceptron – XOR 분류

 

 §  Perceptron XOR을 분류하지 못한다

 §  직선 두 개를 이용하여 XOR 분류를 해결 할 수 있다.

 §  그러면, 어떤 모델을 이용하여 직선 두 개를 나타낼 수 있을까?

 

3.2.1 Multi-later Perceptron

 §  여기서 나온 해결책이 MLP로  layer를 추가하면 해결 가능하다.

 

 레이어를 추가하면 아래와 같이 공간이 사상되어 선형 분류가 가능해진다. 다만 이는 svm과의 커널 트릭과는 다름에 유의.

 

 

 

 

 

 

 

 

3.2.2 Multi layer Perceptron 학습

 §  MLP 학습이란?

  • 학습 자료를 이용하여 W  를 추정하는 것이다.

 §  MLP 학습을 위해 해주어야 하는 일

  • Input layer node 수 결정

    - Domain에 따라 결정

  • Output layer node 수 결정

    - Domain에 따라 결정한다

  • Hidden layer node 수 결정

    - 실험을 통해 결정

  • 학습 algorithm을 이용한 weight 추정

    - Back-propagation알고리즘을 이용하여 레이블 된 학습 자료에 최적 weight를 추정한다

  

 

3.2.2 Back propagation algorithm

 §  학습은 back propagation 알고리즘으로 수행됨

 §  Activation 함수로는 sigmoid를 이용한다.


 

 

 §  두개의 input, 두개의 hidden neurons, 두개의 output neurons으로 구성된 기본 neural network 구조

 

 §  예제

 §  Backpropagation

  • weight들을 최적화하여, 임의의 input/output에 대하여 올바른 답을 낼 수 있도록 함

 §  The forward Pass

  • h1뉴런 input

    -  net h1=w(i1,h1)i1+w(i2,h1)i2+b11

    -  net h1=0.150.05+0.30.1+0.351=0.38075

  • logistic function을 거친  h1 output

    - out h1=11+enet h11=11+e0.3775=0.593269992

  • h2에 대하여 같은 과정을 반복

    - out h2=0.596884378

  • h1h2 의 방법으로 o1을 진행

    - net o1=w(h1,01) out h1+w(h2,01) out h2+b31

    - neto1=0.40.593269992+0.450.596884378+0.61=1.105905967

    - out01=11+enet01=11+e1.105905967=0.75136507

 

  • o1의 방법으로 o2를 반복

    - out o2=0.772928465

 §  Calculating the Total Error

  • 앞서 계산된 뉴런의 output squared error function input으로 에러를 계산

    - 수식의 계수 ½ 은 미분의 편의성을 위함. 후 약분 됨.

  • 예시

    - o1 target output = 0.01

    - o1 neural net output = 0.75136507

    - 따라서, errorEo1=12( target o1  out o1 )2=12(0.010.75136507)2=0.274811083

 §  The Backwards Pass

  • Back propagation의 목표인 weight update를 진행

 §  Output Layer

  • The backwards pass

  • 예를 들어, w(h1,o1)를 update 한다면

    - total error에 어느정도 영향을 주는지 알기 위해 편미분을 진행 (체인 룰 적용)

  • 위 내용을 시각화 하면 아래와 같다

  • 각 부분별로 계산을 진행

  • Etotal w(h1,ω1) out a1 net o1Etotal outo1=Etotal w(h1,ω1)

https://mattmazur.com/2015/03/17/a-step-by-step-backpropagation-example/

 

  •  먼저, output(o1)의 변화에 대한 total error의 변화를 계산

    -Etotal =12( target 01 out 01)2+12( target 02out02)2

    -Etotal  out =212( target o1 out 01)211+0

    -Etotai  out 01=( target 01 out 01)=(0.010.75136507)=0.74136507

  • total net input의 변화에 대한 output(o1)의 변화를 계산

    - logistic function의 편미분 결과는 out(1out)

    -  out o1=11+enet

    -outo1eo1= out o1(1 out o1)=0.75136507(10.75136507)=0.186815602

  • 그리고, w()의 변화에 대한 의 변화를 계산

    - net o1=w(h1,o1) out h1+w(h2,o1) out h2+b21

    - neto1w(1,01)=1 out h1w(11)(h1,o1)+0+0= out h1=0.593269992

  • 위 결과 식들을 종합

    - w(h1,o1) 의 변화에 대한 total error

     *Etotal w(h1,o1)=Etotal outo1outo1 net o1 net o1w(h1,o1)

     *Etotal w(1,01)=0.741365070.1868156020.593269992=0.082167041

  •  error를 감소시키기 위해, 위 식에서 얻은 값을 현재 weight에서 빼준다. 이때 learning rate(eta)을 곱한 뒤 뺀다.

    -w+(h1,01)=w(h1,01)ηEtotal w(h1,01)=0.40.50.082167041=0.35891648

  •  동일한 프로세스를 w+(h1,o1) w+(h2,o2)에 대하여 반복

    -w+(h2,o1)=0.408666186
    -w+(h1,o2)=0.511301270

    -w+(h2,02)=0.561370121

  •  weight실제 update hidden layer에 대해서 새로운 weight모두 구한 후 update를 진행

 

 §  Hidden Layer

  • The backwards pass (Cont.)

    - w(i1,h1) w(i2,h2)에 대해서 값을 계산

  • output layer에서 진행했던 방식과 유사한 방식

    - 차이점 : 여러 개의 output neurons의 변화량 사용
      h1 out부분이 o1,o2에 영향을 줌

         Etotal w(i1,h1)=Etotal outh1outh1neth1 net h1w(i1,h)

                    **Etotal outh1=Eo1outh1+Eo2outh1

https://mattmazur.com/2015/03/17/a-step-by-step-backpropagation-example/

 

 

 §  Hidden Layer (Cont.)

  • Eo1outh1계산시 앞서 계산한 Eo1neth1을 사용

    -Eo1outh1=Eo1 net o1 net o1outh1
    -E01neto1=E01outo1outo1net01=0.741365070.186815602=0.138498562

  •  neto1outh1w(h1,o1)이 같으므로

    - net o1=w(h1,o1) out h1+w(h2,01) out h2+b31
    -neto1outh1=w(h1,o1)=0.40

  • 위 식들을 합쳐주면

    -Eo1 out h1=Eo1 net o1neto1 out h1=0.1384985620.40=0.055399425

  • 같은 방식으로 Eo2outh1를 계산

    ⁻Eo2 out =0.019049119

  • 따라서 Etotal outh1계산 가능

    ⁻Etotal  out h1=Eo1outh1+Eo2outh1=0.055399425+0.019049119=0.036350306

  • Etotal outh1를 얻었으므로, 각 weight에 대해  oout h1 net h1 neth1w를 계산

    - out h1=11+enet h1$
    - ouut h1 net h1= out h1(1 out h1)=0.59326999(10.59326999)=0.241300709

  • output 뉴런에서 했던 방식을 적용하여, w(i1,h1)에 대한 total net input to h1 의 편미분을 계산

    - net h1=w(i1,h1)i1+w(i2,h1)i2+b11
    -neth1w(i1,h1)=i1=0.05

  • 식을 모두 합치면Etotal w(i1,h1)=Etotal outh1outh1neth1neth1w(i1,h1)

    -Etotal w(i1,h1)=0.0363503060.2413007090.05=0.000438568

  • w(i1,h1)update

    -w+(i1,h1)=w(w1,h1)ηEtotal w(i1,h1)=0.150.50.000438568=0.149780716

  • 같은 방법으로 w+(i2,h1)w+(i2,h2) 를 반복

    -w+(i2,h1)=0.19956143

    -w+(i1,h2)=0.24975114
    -w+(i2,h2)=0.29950229

 §  학습 결과 예제

  •  1st error = 0.298371109

  •  2nd error = 0.291027924

    -
    -

  •  10000th error = 0.00035085

    - 이때, 두 output 뉴런을 보면,

     0.015912196 (vs 0.01 target)
     0.984065734 (vs 0.99 target)

 

Posted by creatoryoon
,

흔히 게임이론이라고 하면, 게임을 만드는 방법으로 생각하고는 한다.

나에게 누군가 게임이론이 무엇이냐고 질문한다면, "특정 관념에 기초한 최적화 기법" 이라는 말을 할 것이다. 

게임이론이란, 의사결정, 분배에 대한 문제로써 모든 상황과 문제를 게임 상황에 대입시켜 계산하기 위한 기법이다. 

 

게임이론은 몇가지 테마로 나뉘게 되는데, 대표적으로 협력게임과 비협력 게임이다. 다만, 이를 단순히 구분하기는 어려운 것이 협력게임에서도 (예를들면 경쟁이 아예 없다면 사회의 발전이 어려울 것이다.) 계산과정에서 비협력게임을 도입하는 경우도 존재한다.

이 글에서 설명할 바게닝은 전통적으로 협력게임에 속한다.

 

 

바게닝을 접하면 가장 많이 접하게 되는 내쉬 바게닝 솔루션은, Feasible space에서 내쉬곱의 최대가 되는 지점을 찾는 방법으로, 수식으로 표현하자면 다음과 같다.

 

 

Find NBS for Two-person bargaining problem

S={(y1,y2)0y130,0y230y1}d=(0,0)
NBS(S)=argmax(y1y2)y1y2=y1(30y1)y1(30y1)ddy1=02y1=30y1=15,y2=15

S={(y1,y2)0y130,0y230y1}
y1y2=y130y1y130y1ddy1=030y1+1y1230y1=603y1230y1=0y1=20,y2=10

 

 

NBS=argmax(UEUCUE,UCscenario(n))ES=(UE,UCUE=UC,(UE,UCscenario(n)))KSBS=(UE,UCUE,Ucscenario(n) and UE,UCd+(ad))N={E,C}.T=[0,1]


 scenario1. UE(t)=1t,UC(t)=tNBS:(UEUC)r=12t=0,t=0.5,(UE,UC)=(0.5,0.5)ES:UE=UC1t=tt=0.5,(UE,UC)=(0.5,0.5)KSBS:max

\begin{aligned} & \operatorname{scenario2.} U_E(t)=1-t, U_C(t)=t^{\frac{1}{2}} \\ & N B S:\left(U_E U_C\right)^{\prime}=1 / 2 \sqrt{t}-3 / 2 \cdot \sqrt{t}=(1-3 t) / 2 \sqrt{t}=0, t=1 / 3,\left(U_E, U_C\right)=(2 / 3, \sqrt{1 / 3}) \\ & E S: U_E=U_C \Leftrightarrow 1-t=\sqrt{t} \Leftrightarrow t=3 / 2-\sqrt{5} / 2 \\ & \left(U_E, U_C\right)=((\sqrt{5}-1) / 2,(\sqrt{6-2 \sqrt{5}}) / 2)=\left((\sqrt{5}-1) / 2,\left(\sqrt{(1-\sqrt{5})^2}\right) / 2\right)=((\sqrt{5}-1) / 2,(\sqrt{5}-1) / 2) \\ & K S B S: \max \left(U_E, U_C\right)-\min \left(U_E, U_C\right)=(1,1) \Leftrightarrow U_E=U_C, \text { same as ES } \end{aligned}

\begin{aligned} & \text { scenario3. } U_E(t)=(1-t)^{\frac{1}{2}}, U_C(t)=t^{\frac{1}{2}} \\ & N B S:\left(U_E U_C\right)^{\prime}=\frac{1-2 t}{2 \sqrt{t-t^2}}=0, t=0.5,\left(U_E, U_C\right)=(\sqrt{1 / 2}, \sqrt{1 / 2}) \\ & E S: U_E=U_C \Leftrightarrow \sqrt{1-t}=\sqrt{t} \Leftrightarrow t=0.5,\left(U_E, U_C\right)=(\sqrt{1 / 2}, \sqrt{1 / 2}) \\ & K S B S: \max \left(U_E, U_C\right)-\min \left(U_E, U_C\right)=(1,1) \Leftrightarrow U_E=U_C, \text { same as } E S \end{aligned}

\begin{aligned} & \text { scenario4. } U_E(t)=2(1-t), U_C(t)=t \\ & N B S:\left(U_E U_C\right)^{\prime}=2-4 t=0, t=0.5 \\ & E S: U_E=U_C \Leftrightarrow 2-2 t=t \Leftrightarrow t=2 / 3 \\ & K S B S: \max \left(U_E, U_C\right)-\min \left(U_E, U_C\right)=\operatorname{vector}(2,1) \Leftrightarrow U_E=2 U_C \\ & 2-2 t=2 t \Leftrightarrow t=0.5 \end{aligned}

 

 

Posted by creatoryoon
,

Intreoduction

Bayesian Decision Theory

-       근본적인 통계 패턴 분류 문제에 대한 접근
-       
다양한 분류간의 트레이드 오프를 정량화하는 것을 기반
-       
확률을 이용한 결정과 그러한 결정에 수반되는 비용

State of nature ω  자연의 상태

-        \omega=\omega_1 을 위한 sea bass, \omega=\omega_2 를 위한 salmon

-       자연의 상태는 예측불가
-       
확률적으로 기술되어야 하는 변수

A priori probability

-       Seabass, salmon에 대한 사전지식의 반영

P\left(\omega_1\right): Seabass일 사전확률

P\left(\omega_2\right): Salmon일 사전확률

P\left(\omega_1\right)+P\left(\omega_2\right)=1 (, 다른 생선이 없다면.)

Decision Rule

-       물고기를 보지 못하고 결정해야 한다면?
P\left(\omega_1\right)>P\left(\omega_2\right) 
\omega_1 판정, 반대라면 반대로 판정

 

클레스-조건부(class-conditional)확률 밀도 함수 p(x \mid \omega)

-       자연의 상태가 ω  라고 주어졌을 때, 에 대한 확률 밀도 함수

p\left(x \mid \omega_1\right), p\left(x \mid \omega_2\right)간의 차이는 SeabassSalmon의 모집단 간 밝기의 차이를 묘사

 

부류 \omega_j 에 있고 특징 값를 갖는 패턴을 발견할 결합 확률 밀도는 두 가지 방법을 쓸 수 있다:

p\left(\omega_j, x\right)=P\left(\omega_j \mid x\right) p(x)=p\left(x \mid \omega_j\right) P\left(\omega_j\right)

Bayes formula

P\left(\omega_j \mid x\right)=\frac{p\left(x \mid \omega_j\right) P\left(\omega_j\right)}{p(x)}

이때 이 두부류의 경우는 p(x)=\sum_{j=1}^2 p\left(x \mid \omega_j\right) P\left(\omega_j\right). posterior =\frac{\text { likelihood } \times \text { prior }}{\text { evidence }}

Bayes 공식은x 의 값을 관찰함으로써 사전확률prior을 사후확률posterior(특징x 가 측정되었을 때 자연 상태가\omega_j 일 확률) 로 전환할 수 있다. p\left(x \mid \omega_j\right)x에 대한 \omega_j우도(likelihood)라고 부른다.

 

클레스 조건부 확률 밀도에 대한 특정 사정 확률에 대한 사후 확률. 모든 x에서 사후확률의 합은 1.0이다.

P\left(\omega_1\right)=\frac{2}{3} and P\left(\omega_2\right)=\frac{1}{3}

 

Probability of error when decision is made

결정 방법은 P( error \mid x)=\left\{\begin{array}{l}P\left(\omega_1 \mid x\right) * \text { if decide } \omega_2 \\ P\left(\omega_2 \mid x\right) * \text { if decide } \omega_1\end{array}\right.

- 결정을 내릴 때 오류가 나올 확률은,P( error )=\int_{-\infty}^{\infty} p( error,x) d x=\int_{-\infty}^{\infty} P( error \mid x) p(x) d x 만일 모든 x에 대해 P(\operatorname{error} \mid x) 를 작게 만든다면 이 적분은 가능한 작아야 한다.

 

P\left(\omega_j \mid x\right)=\frac{p\left(x \mid \omega_j\right) P\left(\omega_j\right)}{p(x)}

Bayes Decision Rule (for minimizing the probability of error)

- Decide \omega_1 if p\left(\omega_1 \mid x\right) P\left(\omega_1\right)>p\left(\omega_2 \mid x\right) P\left(\omega_2\right) ; \omega_2 로 판정 otherwise

- \boldsymbol{p}(\boldsymbol{x}) : 는 결정에 있어서는 크게 중요하지 않음 \left(P\left(\omega_1 \mid x\right)+P\left(\omega_2 \mid x\right)=1\right)

 

Decide \omega_1 if p\left(\omega_1 \mid x\right) P\left(\omega_1\right)>p\left(\omega_2 \mid x\right) P\left(\omega_2\right) ; \omega_2 로 판정 otherwise

사후 확률의 역할을 강조.
-
만일 어떤 x에 대해서 p\left(x \mid \omega_1\right)=p\left(x \mid \omega_2\right)라면 판정은 전적으로 사전 확률에 의해 정해진다.
- P\left(\omega_1\right)=P\left(\omega_2\right)라면 판정은 전적으로 우도p\left(x \mid \omega_j\right) 근거하게 된다.

 

 

Bayesion decion theory – continuious features(연속적 특징)

Bayesian Theory의 일반화

-       둘 이상(more than one feature)의 특징을 사용하는 것을 허용하는 것
-
스칼라 x

를 특징vector x

로 대체
-
x

특징공간이라고 부르는 d

-차원 유클리드 공간 Rd

에 속함

Bayesion decion theory – continuious features(연속적 특징)

Bayesian Theory의 일반화

- 둘 이상(more than one feature)의 특징을 사용하는 것을 허용하는 것
-
스칼라 를 특징vector 로 대체
-
특징공간이라고 부르는 d-차원 유클리드 공간 \mathbb{R}^d 에 속함

 

- 셋 이상(more than two states)의 자연의 상태를 허용하는 경우

- \left\{\omega_1, \ldots, \omega_c\right\}: c개의 자연의 상태(“categories”)의 유한 집합

 

- 분류 외의 행동을 허용하는 것

- \left\{\alpha_1, \ldots, \alpha_a\right\}: a개의 가능한 행동의 유한 집합

 

그림은 분류기준을 만들 때, 일정 수준 이하는 결정을 못하게 하는경우. - 사람이 해야함 .....확실한 것만 분류기가 분류하게 한다.

- 오류 확률(probability of error)보다 더 일반적이라 할 수 있는 손실 함수(loss function)를 도입.
  -
손실 함수는 각 행동의 비용을 정확하게 나타내며, 확률 측정을 판정으로 전환에 사용된다.
\lambda\left(\alpha_i \mid \omega_j\right) : 자연의 상태가 \alpha_i 일 때, \omega_j 라는 행동을 취해서 초래되는 손실

P\left(\omega_j \mid x\right)=\frac{p\left(x \mid \omega_j\right) P\left(\omega_j\right)}{{p(x)}} 이때, \quad p(x)=\sum_{j=1}^c p\left(x \mid \omega_j\right) P\left(\omega_j\right)

 

행동 \alpha_i를 취하는 것과 관련된 기대 손실은 단순하게 R\left(\alpha_i \mid x\right)=\sum_{j=1}^c \lambda\left(\alpha_i \mid \omega_j\right) P\left(\omega_j \mid x\right)

-       판정-이론 용어로는 기대 손실을 리스크라고 부르며, R\left(\alpha_i \mid x\right) 를 조건부 리스크라고 부른다.

-      문제는 P\left(\omega_j\right)에 대해 전체적 리스크를 최소화하는 판정 룰을 찾는 것.

R=\int R(\alpha(x) \mid x) p(x) d x \quad R : 최소화된 전체적 리스크

 

-      전체적 리스크를 최소화하기 위한 조건부 리스크 계산 R\left(\alpha_i(x)\right) 가 가능한 작도록 \alpha(x)가 선택된다면 전체적 리스크는 최소화

R\left(\alpha_i \mid x\right)=\sum_{j=1}^c \lambda\left(\alpha_i \mid \omega_j\right)\left(\omega_j \mid x\right)

i=1, \ldots, a 에 대해 계산하고, R\left(\alpha_i \mid x\right) 가 최소인 행동 \alpha_i 를 선택

 

Bayesion decion theory – 두 부류(Two-Category) 분류

-     \alpha_1 자연의 참 상태가 \omega_1 이라고 판정을 내리는 것

-     \alpha_2 자연의 참 상태가 \omega_2 이라고 판정을 내리는 것

-     \lambda_{i j}=\lambda\left(\alpha_i \mid \omega_j\right): 자연의 참 상태가 \omega_j일 때 \omega_i라고 판정시 따르는 손실 이를 적용해서 R\left(\alpha_i \mid x\right)=\sum_{j=1}^c \lambda\left(\alpha_i \mid \omega_j\right)\left(\omega_j \mid x\right) 를 다시 쓰면

-      조건부 리스크 \begin{aligned} & R\left(\alpha_1 \mid x\right)=\lambda_{11} P\left(\omega_1 \mid x\right)+\lambda_{12} P\left(\omega_2 \mid x\right) \\ & R\left(\alpha_2 \mid x\right)=\lambda_{21} P\left(\omega_1 \mid x\right)+\lambda_{22} P\left(\omega_2 \mid x\right) \end{aligned}
\lambda_{11}, \lambda_{22} 는 잘한 것

-      최소 리스크 판정 룰을 표현하는 다양한 방법 
1. R\left(\alpha_1 \mid x\right)<R\left(\alpha_2 \mid x\right) 이면 \omega_1 로 판정
2. \left(\lambda_{21}-\lambda_{11}\right) P\left(\omega_1 \mid x\right)>\left(\lambda_{12}-\lambda_{22}\right) P\left(\omega_2 \mid x\right) 일 때 \omega_1 이라고 판정(사후확률로 표현)
3. \left(\lambda_{21}-\lambda_{11}\right) p\left(x \mid \omega_1\right) P\left(\omega_1\right)>\left(\lambda_{12}-\lambda_{22}\right) p\left(x \mid \omega_2\right) P\left(\omega_2\right) 이면 \omega_1 로 판정하고 아니면 \omega_2 로 판정 (Bayes공식을 사용함으로 사후 확률을 사전 확률과 조건부 밀도로 대체)
4. \lambda_{21}>\lambda_{11} 이라는 논리적 가정 하에서 만약 \frac{p\left(x \mid \omega_1\right)}{p\left(x \mid \omega_2\right)}>\frac{\lambda_{12}-\lambda_{22}}{\lambda_{21}-\lambda_{11}} \frac{P\left(\omega_2\right)}{P\left(\omega_1\right)} 이면 \omega_1 로 판정 

(Likelihood ratio: 이 형태의 판정 룰은 확률 밀도들의 x-종속성에 초점을 맞춘다. p\left(x \mid \omega_j\right)\omega_j 의 함수(즉, 우도 함수)로 간주하고 우도 비 \frac{p\left(x \mid \omega_1\right)}{p\left(x \mid \omega_2\right)} 를 만들 수 있다. 따라서 Bayes 판정 룰은 관찰 x 에 독립적인 어떤 문턱 값을 우도비가 넘으면 \omega_1 로 판정할 것을 요구하는 것으로 해석)

 

Bayesion decion theory – Minimum-error-rate Classification(최소 에러율 분류)

에러를 피하기 위해서는 자연의 상태와 차이가 가장 적은(오류를 최소화하는) 판정 룰을 찾는 것이 당연하다.

Zero-One loss function

\lambda\left(\alpha_i \mid \omega_j\right)=\left\{\begin{array}{ll}0 & i=j \\ 1 & i \neq j\end{array} i, j=1, \ldots, c\right.

 

-       옳은 판정에 대해서는 손실이 없음

-       모든 에러에 단위 손실을 부여

-       모든 에러는 같은 비용이 든다.

 

\sum_{j=1}^c \lambda\left(\alpha_i \mid \omega_j\right) P\left(\omega_j \mid x\right)=\sum_{j \neq i} P\left(\omega_j \mid x\right)=1-P\left(\omega_i \mid x\right)

조건부 리스크를 최소화하는 행동을 선택 if. P\left(\omega_i \mid x\right)>P\left(\omega_j \mid x\right) we decide \omega_i \forall j \neq i

 

The likelihood ratio p\left(x \mid \omega_1\right) / p\left(x \mid \omega_2\right)

\frac{p\left(x \mid \omega_1\right)}{p\left(x \mid \omega_2\right)}>\frac{\lambda_{12}-\lambda_{22}}{\lambda_{21}-\lambda_{11}} \frac{P\left(\omega_2\right)}{P\left(\omega_1\right)}

만일 0-1 분류 손실을 채택하면 판정 경계들은 문턱치 \theta_{a} 에 의해 결정된다. 만약 손실함수가 \omega_{2}\omega_{1} 로 오분류하는 것에 큰 패널티를 가한다면, 더 큰 문턱치 \ theta_{b} 를 가지고, R_{1} 은 더 작아진다.

 

 

 

Classifiers, Discriminant functions, and Decision surfaces

다분류 경우

패턴 분류기를 표현하는 다양한 방법중에 가장 쓸만한 방법중 하나
-
판별함수g_i(x), i=1, \ldots, c 에 의한 것

- 만일 \boldsymbol{g}_{\boldsymbol{i}(\boldsymbol{x})}>\boldsymbol{g}_{\boldsymbol{j}}(\boldsymbol{x}) \forall \boldsymbol{j} \neq \boldsymbol{i} 이면 특징 벡터 x 를 클레스 \omega_i 에 할당한다.

 

분류기

-      분류기는 c개의 판별 함수를 계산하고 최대 판별식에 해당하는 부류를 선택하는 네트워크 또는 기계

g_i(x)=\left\{\begin{array}{c}g_1(x)=0.1 \\ g_2(x)=0.05 \\ \vdots \\ g_{n(x)}=0.85\end{array}\right. 중 가장 큰 것 선택

 

 

판별 함수들의 선택은 유일하지 않다.

g_i(x)=-R\left(\alpha_i \mid x\right) (for risk)
g_i(x)=P\left(\omega_i \mid x\right) \quad( for minimum - error - rate )

 

판별함수의 수정이 가능

판정에 영향을 주지 않고 우리는 항상 모든 판별 함수들을 같은 양의 상수로 곱하거나 같은 상수를 더해서 이동시킬 수 있다. 더 일반적으로는 모든 g_i(x) 를 단조증가함수 f(\cdot) 에 의해 f\left(g_i(x)\right) 로 대체시, 그로인한 분류는 변하지 않는다. 이것은 현저한 분석 및 계산 단순화로 이끌 수 있다.

\left\{\begin{array}{l}g_i(x)=P\left(\omega_i \mid x\right)=\frac{p\left(x \mid \omega_i\right) P\left(\omega_i\right)}{\Sigma^c p\left(x \mid \omega_j\right)^{P\left(\omega_j\right)}} \\ g_i(x)=p\left(x \mid \omega_i\right) P\left(\omega_i\right) \\ g_i(x)=\ln p\left(x \mid \omega_i\right)+\ln P\left(\omega_i\right)\end{array}\right.

모든 판정 룰의 효과는 특징 공간을 c 개의 판정 영역 \mathcal{R}_1, \ldots, \mathcal{R}_c 로 나누는 것 

 

두 분류 경우

이분기(dichotomizer)
두 부류 경우는 다부류의 일종이나 정통적으로 독립해 다뤄왔다.
두 판별 함수 대신 단일 판별 함수를 정의하고 판정하는 것이 더 보편적이다.
g(x) \equiv g_1(x)-g_2(x)

g(x)>0 이면 \omega_1, 아니면 \omega_2 로 판정
\boldsymbol{g}(\boldsymbol{x})=\boldsymbol{P}\left(\boldsymbol{\omega}_1 \mid \boldsymbol{x}\right)-\boldsymbol{P}\left(\boldsymbol{\omega}_2 \mid \boldsymbol{x}\right)
\boldsymbol{g}(\boldsymbol{x})=\ln \frac{\boldsymbol{p}\left(\boldsymbol{x} \mid \boldsymbol{\omega}_1\right)}{\boldsymbol{p}\left(\boldsymbol{x} \mid \boldsymbol{\omega}_2\right)}+\ln \frac{\boldsymbol{P}\left(\boldsymbol{\omega}_1\right)}{\boldsymbol{P}\left(\boldsymbol{\omega}_2\right)}

 

The normal density

Normal density인가?

-       분석의 용이함(해석학적으로 다루기 쉬움)으로, 다변량 normal밀도, 또는 Gaussian밀도는 많은 관심을 받았다.

-        중요한 상황에 적합한 모델. class \omega_j에 특징벡터 x가 단일 또는 프로토타입 벡터 \mu_i의 연속적 값을 가지고 랜덤하게 오염된 버전일 경우에 적합.

Expectation (expected value)
E[f(x)]=\int_{-\infty}^{\infty} f(x) p(x) d x
만약 특징 \mathrm{x} 의 값들이 이산 집합 \mathrm{D} 의 점이라면.
E[f(x)]=\sum_{x \in D} f(x) P(x)

The normal density – 단변량 밀도

p(x)=\frac{1}{\sqrt{2 \pi} \sigma} \exp \left[-\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2\right]

 

- 평균
\mu=E[x]=\int_{-\infty}^{\infty} x p(x) d x
- 분산
\begin{aligned} & \sigma^2=E\left[(x-\mu)^2\right]=\int_{-\infty}^{\infty}(x-\mu)^2 p(x) d x \\ & -\quad \boldsymbol{p}(\boldsymbol{x}) \sim \boldsymbol{N}\left(\boldsymbol{\mu}, \boldsymbol{\sigma}^2\right) \end{aligned}
x 는 평균 \mu 와 분산 \sigma^2 에 의해 분포된다.

 

 

The normal density – 다변량 분포

 

p(\boldsymbol{x}) \sim N(\boldsymbol{\mu}, \boldsymbol{\Sigma}) \quad p(\boldsymbol{x})=\frac{1}{(2 \pi)^{d / 2}|\boldsymbol{\Sigma}|^{1 / 2}} \exp \left[-\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu})^t \boldsymbol{\Sigma}^{-1}(\boldsymbol{x}-\boldsymbol{\mu})\right]
- 평균 벡터
\text { - } \boldsymbol{\mu}=E[\boldsymbol{x}]=\int_{-\infty}^{\infty} \boldsymbol{x p}(x) d \boldsymbol{x}
- 공분산 행렬 (Convariance)
\Sigma=E\left[(\boldsymbol{x}-\boldsymbol{\mu})(\boldsymbol{x}-\boldsymbol{\mu})^t\right]=\int_{-\infty}^{\infty}(\boldsymbol{x}-\boldsymbol{\mu})(\boldsymbol{x}-\boldsymbol{\mu})^t p(x) d x{ }^*[x-\mu]=\left[\begin{array}{lll} \sigma_{11} & & \\ & \ddots & \\ & \sigma_{n n} \end{array}\right]
- 통계적 독립성(statistical independence)
만약 x_ix_j 가 통계적으로 독립적이면, \sigma_{i j}=0 일 것이다. 만약 모든 비대각선 요소들이 0 이면, p(x)x 의 요소들에 대한 단변량 노멀 밀도들의 곱으로 축소된다.

 

 

- 독립적이거나 아니거나, 결합적으로(jointly) 노멀하게 분포 하는 랜덤 변수들의 선형 결합(combination)은 노멀하게 분포한다.
\begin{aligned} & p(\boldsymbol{x}) \sim N(\boldsymbol{\mu}, \mathbf{\Sigma})  \\ & \boldsymbol{y}=\boldsymbol{A}^t \boldsymbol{x} \rightarrow p(\boldsymbol{y}) \sim N\left(\boldsymbol{A}^{\boldsymbol{t}} \boldsymbol{\mu}, \boldsymbol{A}^{\boldsymbol{t}} \boldsymbol{\Sigma} \boldsymbol{A}\right) \\ & * y=A^t y=\left[\begin{array}{lll} y_1 \\ y_2 \end{array}\right]=\left[\begin{array}{ccc} 1 & \cdots & 0 \\ \vdots & A & \vdots \\ 0 & \cdots & 1 \end{array}\right]\left[\begin{array}{l} x_1 \\ x_2 \end{array}\right]  \end{aligned}
-임의의 다변량 분포를 구형(spherical)분포로 변환(공분산 행렬이 항등 행렬 I 에 비례하는 분포)할 수 있다. (백색변환)
A_\omega=\Phi \Lambda^{1 / 2} 
\boldsymbol{\Phi} : 열들이 \Sigma 인 정규직교 고유 벡터들인 행렬
\mathbf{\Lambda} : 해당 고윳값들의 대각선 행렬

 

- 다변량 정규분포는 \boldsymbol{d}+\boldsymbol{d}(\boldsymbol{d}+\mathbf{1}) / \mathbf{2} 개의 파라미터 즉, 평균 벡터 \boldsymbol{\mu} 의 요소들과 공분산 행렬 \boldsymbol{\Sigma} 에 의해 완전하게 정의된다.

 

- 아래 그림에서:↓
- 클러스터의 중심은 평균 벡터에 의해 결정 
- 클러스터의 모양은 공분산 행렬에 의해 결정.
- 상수 밀도의 점들의 위치는 (\boldsymbol{x}-\boldsymbol{\mu})^t \boldsymbol{\Sigma}^{-1}(\boldsymbol{x}-\boldsymbol{\mu}) 가 상수 인 초타원체들이다
- 이 초타원체들의 주축은 \Phi 에 의해 묘사되는 \boldsymbol{\Sigma} 의 고유 벡터들에 의해 주어지며,  
고윳값들 (\boldsymbol{\Lambda}) 은 이 축들의 길이를 결정한다.
- Mahalanobis distance (from x to \boldsymbol{\mu} ) 마할라노비스 거리 $r^2=(\boldsymbol{x}-\boldsymbol{\mu})^t \boldsymbol{\Sigma}^{-1}(\boldsymbol{x}-\boldsymbol{\mu}) 
(분산이 커지면, 거리는 작게 해석)

(PRML 2.3) The Gaussian Distribution

빨간색 선은 이차원 공간 x=\left(x_1, x_2\right) 상에서의 상수 가우시안 확률 분포의 타원형 표면을 나타낸다. 여기서 말도는 x=\mu 일 경우의 값의 \exp (-1 / 2) 에 해당한다. 타원의 축들은 공분산 행렬의 고유 벡터들 u_i 에 의해 정의 되 며, 각각의 축은 각각의 고윳값 \lambda_i 에 대응된다.

 

이차원 가우시안 분포에서의 상수확률 밀도의 경로.
(a)
는 공분산 행렬의 형태가 일반적일 경우
(b)
는 공분산 행렬이 대각 행렬인 형태
(c)
는 공분산행렬이 항등행렬의 상수배일 경우이며 이 경우 경로가 동심원의 형태를 띈다.

정규분포에 대한 판별 함수

- 최소 에러율 분류는 아래의 판별 함수로 달성될 수 있다.
\begin{aligned} & p(\boldsymbol{x})= \frac{1}{(2 \pi)^{d / 2}|\boldsymbol{\Sigma}|^{1 / 2}} \exp \left[-\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu})^t \boldsymbol{\Sigma}^{-1}(\boldsymbol{x}-\boldsymbol{\mu})\right] \text { 에 의해 } \\ & g_i(\boldsymbol{x})=-\frac{1}{2}\left(\boldsymbol{x}-\boldsymbol{\mu}_i\right)^t \boldsymbol{\Sigma}_i^{-1}\left(\boldsymbol{x}-\boldsymbol{\mu}_i\right)-\frac{d}{2} \ln 2 \pi-\frac{1}{2} \ln \left|\boldsymbol{\Sigma}_i\right|+\ln P\left(\omega_i\right)\end{aligned}

 

- 판별함수의 3가지 경우

1. \boldsymbol{\Sigma}_i=\sigma^2 \mathbf{I}
2. \boldsymbol{\Sigma}_i=\boldsymbol{\Sigma}
3. \mathbf{\Sigma}_i= arbitrary

 

Case 1: \Sigma_i=\sigma^2 I

- 가장 간단한 경우
-
특징들이 통계적으로 독집적이고 각 특징이 같은 분산 \sigma^2
를 가짐.
-
기하학적으로 샘플들이 같은 크기의 초구 클러스터에 놓이는 상황
i 번째 클래스에 대한 클러스터는 평균 벡터 \mu_i 가 중심으로 함.
- \Sigma_{\mathrm{i}} 의 행렬식과 역의 계산이 쉬움 

\left|\boldsymbol{\Sigma}_i\right|=\sigma^{2 d} \quad \boldsymbol{\Sigma}_i^{-1}=\frac{1}{\sigma^2} \mathbf{I}

 

- g_i(x)=-\frac{1}{2}\left(\boldsymbol{x}-\boldsymbol{\mu}_i\right)^t \boldsymbol{\Sigma}_i^{-1}\left(\boldsymbol{x}-\boldsymbol{\mu}_i\right)-\frac{d}{2} \ln 2 \pi-\frac{1}{2} \ln \left|\boldsymbol{\Sigma}_i\right|+\ln P\left(\omega_i\right)

\boldsymbol{\Sigma}_i^{-1},\left|\boldsymbol{\Sigma}_i\right|, \ln 2 \pii 에 대해 독립 
\rightarrow g_i(x)=-\frac{\left\|x-\mu_i\right\|^2}{2 \sigma^2}+\ln P\left(\omega_i\right) 
여기서 \left\|x-\mu_i\right\|^2=\left(x-\mu_i\right)^t\left(x-\mu_i\right) 이며, 유클리드 놈을 나타냄.

 

- g_i(\boldsymbol{x})=-\frac{1}{2 \sigma^2}\left[\boldsymbol{x}^t \boldsymbol{x}-2 \boldsymbol{\mu}_i^\tau \boldsymbol{x}+\boldsymbol{\mu}_i^\tau, \boldsymbol{\mu}_i\right]+\ln P\left(\omega_i\right)
g_i(x)=\boldsymbol{w}_{\boldsymbol{i}}^t \boldsymbol{x}+\omega_{i 0} 여기서 w_i=\frac{1}{\sigma^2} \boldsymbol{\mu}_i and \omega_{i 0}=\frac{-1}{2 \sigma^2} \boldsymbol{\mu}_i^t \boldsymbol{\mu}_i+\ln P\left(\omega_i\right)

 

 

- 선형 식 g_i(x)=g_j(x) 에 의해 정의되는 초평면들

\mathbf{w}^t\left(\mathbf{x}-\mathbf{x}_0\right) 여기서 \mathbf{w}=\boldsymbol{\mu}_i-\boldsymbol{\mu}_j and \mathbf{x}_0=\frac{1}{2}\left(\boldsymbol{\mu}_i+\boldsymbol{\mu}_j\right)-\frac{\sigma^2}{\left\|\boldsymbol{\mu}_i-\boldsymbol{\mu}_j\right\|^2} \ln \frac{P\left(\omega_i\right)}{P\left(\omega_j\right)}\left(\boldsymbol{\mu}_i-\boldsymbol{\mu}_j\right)

Case2: \boldsymbol{\Sigma}_{\boldsymbol{i}}=\boldsymbol{\Sigma}


- 모든 클래스의 공분산 행렬이 동일하다.
- 샘플들이 같은 크기와 모양의 초타원체 클러스터에 놓이는 상황에 해당
- i 번째 클래스의 클러스터는 평균 벡터 \boldsymbol{\mu}_i 를 중심으로 한다.

g_i(x)=-\frac{1}{2}\left(\boldsymbol{x}-\boldsymbol{\mu}_{\boldsymbol{i}}\right)^t \boldsymbol{\Sigma}_i^{-1}\left(\boldsymbol{x}-\boldsymbol{\mu}_i\right)-\frac{d}{2} \ln 2 \pi-\frac{1}{2} \ln \left|\boldsymbol{\Sigma}_i\right|+\ln P\left(\omega_i\right)
\frac{d}{2} \ln 2 \pi,\left|\boldsymbol{\Sigma}_i\right| 가 i 에 대해 독립
\rightarrow g_i(\boldsymbol{x})=-\frac{1}{2}\left(\boldsymbol{x}-\boldsymbol{\mu}_i\right)^t \boldsymbol{\Sigma}_i^{-1}\left(\boldsymbol{x}-\boldsymbol{\mu}_i\right)-\ln P\left(\omega_i\right)
- i 에 독립적인 2차 항 \boldsymbol{x}^t \boldsymbol{\Sigma}_i^{-1} \boldsymbol{x} 를 빼면,
g_i(\boldsymbol{x})=\boldsymbol{w}_i \boldsymbol{x}+\omega_{i 0} 여기서 \boldsymbol{w}_i=\boldsymbol{\Sigma}^{-1} \boldsymbol{\mu}_i and \omega_{i 0}=-\frac{1}{2} \boldsymbol{\mu}_i^t \boldsymbol{\Sigma}^{-1} \boldsymbol{\mu}_i+\ln P\left(\omega_i\right)
이 판별식들은 선형적이므로 그로 인한 경계는 초평면이다. 이 초평면의 경계 식은.
\boldsymbol{w}^t\left(\boldsymbol{x}-\boldsymbol{x}_0\right)=1 where \boldsymbol{w}_i=\boldsymbol{\Sigma}^{-1} \boldsymbol{\mu}_i and \boldsymbol{x}_0=\frac{1}{2}\left(\boldsymbol{\mu}_i+\boldsymbol{\mu}_j\right)-\frac{\ln \left[P\left(\omega_i\right) / P\left(\omega_j\right)\right]}{\left(\boldsymbol{\mu}_i-\boldsymbol{\mu}_j\right)^t \boldsymbol{\Sigma}^{-1}\left(\boldsymbol{\mu}_i-\boldsymbol{\mu}_j\right)}\left(\boldsymbol{\mu}_i-\boldsymbol{\mu}_j\right)
- \boldsymbol{w}=\boldsymbol{\Sigma}^{-1}\left(\boldsymbol{\mu}_i-\boldsymbol{\mu}_j\right) 는 일반적으로 \boldsymbol{\mu}_i-\boldsymbol{\mu}_j 방향이 아니기 때문에 영역을 분리하는 초평면은 일반적으로 이 평균들을 잇는 선에 직교하지 않는다.

 

Case3: \Sigma_i=\operatorname{arbitrary}( (임의적)


- 일반적인 정규분포의 경우 공분산 행렬은 각 부류마다 다르다.
\begin{aligned} & g_i(x)=-\frac{1}{2}\left(\boldsymbol{x}-\boldsymbol{\mu}_i\right)^t \boldsymbol{\Sigma}_i^{-1}\left(\boldsymbol{x}-\boldsymbol{\mu}_i\right)-\frac{d}{2} \ln 2 \pi-\frac{1}{2} \ln \left|\boldsymbol{\Sigma}_i\right|+\ln P\left(\omega_i\right) \\ & \frac{1}{2} \ln 2 \pi \text { 만이 i에 대해 독립 } \\ & \rightarrow g_i(\boldsymbol{x})=\boldsymbol{x}^t \boldsymbol{W}_i \boldsymbol{x}+\boldsymbol{w}_i^t \boldsymbol{x}+\omega_{i 0^2}  \\ & \text { where, } \boldsymbol{W}_i=-\frac{1}{2} \boldsymbol{\Sigma}_i^{-1}, \boldsymbol{w}_i=\boldsymbol{\Sigma}_i^{-1} \boldsymbol{\mu}_i \text { and }  \\ & \omega_{i 0}=-\frac{1}{2} \boldsymbol{\mu}_i^t \boldsymbol{\Sigma}_i^{-1} \boldsymbol{\mu}_i-\frac{1}{2} \ln \left|\boldsymbol{\Sigma}_i\right|+\ln P\left(\omega_i\right)  \end{aligned}

 

 

4개의 정규분포에 대한 판정 영역. 경계영역의 모양은 꽤 복잡해질 수 있다.

EXAMPLE1: 2차원 가우스 데이터에 대한 판정 영역

(에러확률과 적분)

정규 분포의 오차 범위

 

 

ROC(receiver operation characteristic)(수신기 동작 특성)

 

횡좌표는 허위 경고 확률이고, 세로 좌표는 히트 확률이다. 여기서는 히트 및 허위 경고율로부터 d&rsquo;=3을 추론가능

Bayes decision theory-이산적 특징

- 많은 실제 응용에서 구성요소 (특징벡터) x 2, 3, 또는 더 높은 진수의 정수값을 가지고, x 는 m 개의 이산 값 v_1, \ldots, v_m 중 하나만 취할 수 있다.
\int p\left(x \mid \omega_j\right) d x \rightarrow \sum_x P\left(x \mid \omega_j\right)

- bayes 공식은 확률 밀도가 아닌 확률들을 포함

P\left(\omega_j \mid x\right)=\frac{P\left(x \mid \omega_j\right) P\left(\omega_j\right)}{P(x)} \quad P(x)=\sum_{j=1}^c P\left(x \mid \omega_j\right) P\left(\omega_j\right)

- 조건부 리스크 R(\alpha \mid x) 의 정의는 변하지 않으며, bayes판정 룰도 동일하다.
- 사후 확률을 최대화하여 오류율을 최소화하는 기본 룰도 바뀌지 않는다.

 

독립적 2진 특징

- 특징 벡터의 요소들이 2진 값이고, 조건부 독립인 2부류 문제를 고려
\begin{aligned} & \text { Let } x=\left(x_1, \ldots, x_d\right)^t \text { 여기서 요소 } x_i \text { 는 } 0 \text { 또는 } 1 \text { 로 놓고 확률들은 다음과 같다. } \\ & p_i=\operatorname{Pr}\left[x_i=1 \mid \omega_1\right] \text { and } q_i=\operatorname{Pr}\left[x_i=1 \mid \omega_2\right] \\ & \rightarrow P\left(x \mid \omega_1\right)=\prod_{i=1}^d p_i^{x_i}\left(1-p_i\right)^{1-x_i} \text { and } P\left(x \mid \omega_2\right)=\prod_{i=1}^d q_i^{x_i}\left(1-q_i\right)^{1-x_i} \\ & \end{aligned}
그럼 우도비는
\frac{P\left(x \mid \omega_1\right)}{P\left(x \mid \omega_2\right)}=\prod_{i=1}^d\left(\frac{p_i}{q_i}\right)^{x_i}\left(\frac{1-p_i}{1-q_i}\right)^{1-x_i}

\begin{aligned} & \text { - 판별함수 }\left(g(x)=P\left(\omega_1 \mid x\right)-P\left(\omega_2 \mid x\right)-(30), g(x)=\ln \frac{p\left(x \mid \omega_1\right)}{p\left(x \mid \omega_2\right)}+\ln \frac{P\left(\omega_1\right)}{P\left(\omega_2\right)}-(31)\right. \text { 로 부터) } \\ & g(x)=\sum_{i=1}^d\left[x_i \ln \frac{p_i}{q_i}+\left(1-x_i\right) \ln \frac{1-p_i}{1-q_i}\right]+\ln \frac{P\left(\omega_1\right)}{P\left(\omega_2\right)} \end{aligned}
- 이 판별 함수는 x_i 에서 선형적이다. 따라서...
\begin{aligned} g(\boldsymbol{x}) & =\sum_{i=1}^d \omega_i x_i+\omega_0  \\ \text { 여기서 } \omega_i=\ln \frac{p_i\left(1-q_i\right)}{q_i\left(1-p_i\right)} \quad i=1, \ldots, d \quad & \omega_0=\sum_{i=1}^d \ln \frac{1-p_i}{1-q_i}+\ln \left(\frac{P\left(\omega_1\right)}{P\left(\omega_2\right)}\right) \end{aligned}

 

Posted by creatoryoon
,

CH01 intro

1.1 기계인지

패턴을 인식은 음성인식, 지문식별, OCR, DNA시퀀스 식별 등 많은 곳에서 유용하다.

패턴인식의 방법론은 자연계, 특히 인간의 패턴 인식 체계에 대해 실제로 자연계가 이 문제를 어떻게 푸는가에 대한 지식에 영향을 받아 이뤄진다.

1.2 보기

예를 들어 생선 통조림 공장에서 생선을 분류하는 과정을 자동화하기를 원한다고 하자.
생선은 컨베이어 벨트에 실려 지나가며, 광학 센서를 이용해서 Sea bass salmon을 분류할 것이며, 카메라를 설치하여 sample 영상을 얻어 두 어종간의 외형적 차이(길이, 밝기, , 지느러미 수와 모양, 입의 위치 등)을 적다보면, 이중 분류기에 사용할 특징이 나올 것이다.
이때, 영상의 노이즈, 또는 변화(밝기, 컨베이어위의 위치,. 잡영(static))도 주목해야 할 것이다.

 

그림&nbsp;1.1분류될 생선은 먼저1.&nbsp;카메라에 의해 감지되고,2.&nbsp;전처리를 거친 뒤, Feature를 추출,3. Classification을 거쳐 최종적으로4. Sea Bass, Salmon인지를 추출할 것이다.보통 이 정보의 흐름은 소스로부터 분류기의 방향으로 흐르나,&nbsp;처리 레벨이 변경될 수도 있고,&nbsp;단계를 통합하는 경우도 있을 수 있다.

Sea bassSalmon의 모집단 간에 차이가 있다는 사실이 주어지면, 이들을 (보통 수학적 형태인 다른 묘사들)모델로 본다.

Pattern classification에서 전체를 지배하는 목표와 방식은 이 모델들의 class를 가정하고, 감지된 data를 처리해서 노이즈를 제거한 뒤, 감지된 모든 pattern에 대해 가장 잘 일치하는 모델을 선택하는 것이다.
전처리 과정에서는 segmentation 연산이 가능한데, 이때, 배경분리, 서로간에 분리가 이뤄진다.

이후 그 정보들이 Feature 추출기로 가면, 어떤 특징, 특성을 측정해서 데이터를 축소한다.

이 값들이 분류기도 가면, 이것들을 평가하고, 최종적으로 어종에 대한 판정을 내린다.

그렇다면 이 특징 추출기와 분류기가 어떻게 설계될 것인가를 고려하자면, 누군가가 Sea bassSalmon보다 더 길다고 정보를 알려줬다면, 이 사실은 이 어류에 대한 모델을 제공한 것이다.

모델: Seabass는 어떤 전형적 길이를 가지고, 그 길이는 Salmon보다 크다. 따라서 길이는 분명한 특징이 되며, 생선의 길이 l 을 통해 분류를 시도할 수 있을 것이다.

이를 위해 sample을 얻고 측정하고 결과들을 살펴보면 그림 1.2와 같다.

 

그림 1.2 두 부류의 길이 특징에 대한 히스토그램. * 로 표시된 값이 가장 작은 수의 err을 일으킬 것이다.

 

 

그림 1.3 두 부류의 밝기 특징에 대한 히스토그램. x* 로 표시된 값 하나만으로는 명확한 구분이 어렵다.

그림 1.2에서는 SeabassSalmon보다 다소 긴 것을 알려주지만, 사실 신뢰성은 떨어진다.

이번엔, 그림 1.3과 같이 밝기로 시험을 해보니, 상당히 만족스럽게 나옴을 알 수 있다.

 

다만, 이제까지 분류의 결과들은 비용이 같다고 가정되었다. 예를들어 SalmonSeabass로 판정하는 것과 그 역이 동일하다는 것.
하지만, Seamon을 샀는데 Seabass가 들었다면 더 강력한 항의가 있을 것이기에 이 비용은 현실적에서는 맞지 않다.

따라서 decision boundary를 왼쪽으로 더 이동시켜 Salmon으로 분류되는 Seabass의 수를 줄여야 한다. 이는 비용에 따라 더 왼쪽으로 이동할 수도, 오른쪽으로 이동할 수도 있다.
본질적으로 이러한 비용을 최소화하도록 판정경계를 나누는 것이 decision theory의 핵심이다.

판정과 관련된 비용을 알고 있어 최적의 기준 값 x*을 선택했다 해도, 결과가 만족스럽지 않다면, 더 나은 성능을 제공할 방법을 찾아야 한다. , 여러 특징에 의존하게 된다.

이번엔, Seabass가 일반적으로 Salmon보다 폭이 더 넓다는 사실을 이용해보자.
밝기 x_1 과 폭 x_2 2차원 특징 공간의 점 또는 vector x로 축소시킨다. x=\left(\begin{array}{l}x_1 \\ x_2\end{array}\right)

이제 문제는 이 특징공간을 두 영역으로 나누는 것이고, 한 영역의 모든 점은 Seabass, 다른 영역은 Salmon이 될 것이다.
sample
에서 그림 1.4의 분포를 얻었다고 하자.

그림 1.4 Seabass와 Salmon의 밝기 및 폭 특징. 직선을 판정경계로 사용할 수 있을 것이다. 분류 에러는 그림1.3보다 낮으나 아직 어느정도 존재한다.

이 결과를 보면, 더 많은 특징을 사용하는 것이 꽤나 바람직하다. 이외에도 등지느러미의 꼭대기 각도, 눈의 배치(-꼬리까지의 거리에 대한 비)같은 특징을 포함시킬 수 있을 것이다.
다만, 이 특징들은 중복될 수도 있고, 어떤 특징은 성능향상이 없을수도 있으며, 차원의 저주를 야기할 수 있다. 또한 측정 비용도 무시못할 요소이다.

그래서 두 특징들에 판정을 내리도록 강요된다 가정해보자. 만약 모델이 너무 복잡하다면, 그림1.5와 같은 복잡한 판정경계를 갖는다.

그림 1.5 지나치게 복잡한 모델은 복잡한 판정경계를 만들고, sample을 완벽하게 분류하겠지만, 실제로는 과적합으로 낮은 성능을 보일 것이다.

이 경우 sample은 완벽히 분류하겠지만 새로운 패턴에는 정확도가 떨어질 것이다. 이것이 일반화(General-Ization)에 대한 이슈이다.
사실상 그림 1.5는 특정 패턴에 과적합 되어 있다. 해결방법은 더 많은 학습 샘플을 구하는 것이지만, 이게 어려울 때는 다른 방법을 사용해야 한다.
그렇기에 실제 자연은 복잡한 판정경계가 아닐 것이라는 확신을 가지고 단순화한 것이 그림 1.6이다.

그림 1.6 훈련 집합에 대한 성능과 분류기의 단순성 간의 최적 절충(tradeoff)를 나타내고 있다. 이는 새 패턴들에 대해서도 최고의 정확도를 제공할 것이다.

 이 경우 새로운 데이터에 더 좋은 결과를 보인다면, sample에 대해 조금 저조해도 만족할 수 있을 것이다. 하지만, 더 간단한 분류기가 좋다는 것을 어떻게 뒷받침할까?
 
그림 1.41.5보다 좋다고 말할 수 있는가? 이 절충관계를 어떻게든 최적화할 수 있다고 가정하면, 시스템이 모델을 얼마나 잘 일반화할 수 있을것인지를 예측할 수 있는가? 이것이 바로 통계적 패턴 인식의 핵심 문제에 속한다.

우리의 판정은 특정 작업, 비용을 위한 것이며, 범용성을 가지에 만든다는 것은 어려운 도전이다.
기본적으로 분류는 그 패턴들을 만든 모델을 복구하는 작업이기에, 모델의 유형에 따라 분류 기법은 달라질 수 있다.
이러한 기법은 NeuralNet, 통계적 인식, 구문론적 패턴 인식 등 다양한 방법이 있다.
다만 거이 모든 문제에서의 중점은 구성성분간 구조적 관계가 간단하고 자연스레 드러나며, 패턴의 전형적 모델이 나타내질 수 있는 좋은 표현을 달성하는 것이다.
경우에 따라 패턴들은 실수값의 vector, 정렬된 속성, 관계에 대한 표사로 표현될 것인데, 어쨌든 비슷한 애들끼리는 서로 가까이 있고, 다른 애들끼리는 멀리 있게 되는 표현을 찾는 문제라 할 수 있다.


 

reference: 김경환 교수님 패턴인식 강의, duda pattern recognition

Posted by creatoryoon
,

Chapter 2: /출력 end 복잡도 분석

Table of contents

2.1음성 신호 저장 방법 및 시스템 입력

2.2음성 출력 단위 결정

2.1 음성 신호 저장 방법 및 시스템 입력

§  음성 신호의 저장 방법 (sampling rate: 16K, PCM)

§  음성 신호 저장 시 필요한 parameter (PCM, Pulse-Code Modulation 기준)

           Sampling rate
단위 시간당(초당) sampling의 횟수
Nyquist theorem
   Sampling rate의 절반의 해당하는 주파수 대역까지 복원 가능함
Sampling rate는 음질을 결정한다.
   음악 저장에 많이 사용되는 sampling rate은 초당 44.1k(cd)
     
사람의 가청 주파수 대역은 일반적으로 20Hz~20kHz로 알려져 있음
   전화의 sampling rate : 초당 8k
   현재 음성 인식에 많이 사용 되는 sampling rate는 초당 16k

           Sample byte
Sample 2byte 사용 (216 = 65,536 )

§  음성 신호의 저장 방법(예제)

           가수가 10곡을 수록한 앨범을 발매했다. 이를 CD에 담았을 때, 전체 CD burning된 부분은 CD 전체 면적의 몇 %인가?
한 곡의 길이는 4분으로 가정
CD는 총 700MB를 저장한다고 가정
Sampling rate: 초당 44,100
Sample 2byte 사용
Stereo로 녹음되었기 때문에 채널은 2

44,100(samples/sec) * 2(bytes) * 240(secs) * 10() * 2(channels) = 423,360,000
  : 423.36/700 MB, 60.48%

 

§   음성인터페이스의 가능한 입력 개수 분석(계속)

           정량적 분석
가정 : 입력 길이 1, sampling rate 44.1k, sample 2B사용
저장에 1 * 44100 * 2 = 88,200B 필요
가능한 입력의 개수: 2882008
입력 길이의 제한이 없으므로 가능한 입력의 개수: 무한대

 

§  용량을 최대한 줄이면서, 음성 인식에 유용한 정보는 최대한 유지하는 feature추출이 필요

           전체 음성을 20ms단위의 window로 나누고, window별로 13 MFCC feature를 추출하여 사용함

 

§  window별로 feature를 추출하는가?

           Feature추출이 가능 하려면, modeling과 분석이 가능해야 함

           현재까지의 발화를 바탕으로 미래의 발화를 예측할 수 있는가?
화자가 발화를 중지할 수 도 있고, 발화의 내용을 갑자기 바꿀 수 있음 따라서, 예측 가능하지 않음
예측 가능하지 않다면, modeling과 분석이 불가능함

           사람의 성대를 하나의 발성 기관으로 본다면, 발성 기관의 물리적 한계(제약)로 인하여 어떠한 짧은 시간에 대하여 미래의 발화를 예측할 수 있음
음성은 quasi-stationary함 (짧은 구간에서만)
다양한 실험을 바탕으로 window의 길이는 20ms로 도출됨

 

 

§  음성 신호를 short integer type 2차원 array로 저장함

 

           하나의 window에는 320개의 sample이 들어감

           2byte(short integer)형식의 2차원 array로 저장
C 언어에서는 short[T][320]의 형태로 표현됨

§  MFCC feature 추출 과정

 

§  Fast Fourier Transform(FFT)

           기본 가정:
모든 주기적인 신호는 정현파(ex> sin, cos)의 합으로 나타낼 수 있다
모든 신호를 𝛼 sin 𝛽 𝜋의 합의 형태로 표현 가능

§  Time domain data frequency domain data로 변형

Frequency domain으로 나타내어진 결과를 spectrum이라고 함

 

§  예제

           음성 신호에서 fundamental frequency를 정의하려면?
일반적으로 사용하는 16kHz sampling rate의 경우, 8kHz까지 복원 가능함
FFT 분석을 위해 8kHz를 일정 크기로 분리 (fft size: 2^10 )
FFT 분석에는 복소수가 사용되는데, 실수와 허수의 벡터 성분이 대칭을 이루기 때문에
  
중복되는 값을 버리고 실수 값만을 사용
(fft size/2 = 2^9 )
fundamental frequency : 8000/512 = 15.625Hz
음성 신호에서의 frequency 15.625의 배수로 나타냄

§  예제

           3125Hz, 6250Hz frequency를 가진 sine wave를 중첩 시킨 pcm

 

           Time frequency domain을 각 축으로 표현하고, amplitude를 색으로 표현한 것을 spectrogram이라 함

           FFT를 통해 음성 신호의 특징을 표현할 수 있음

§  음소별로 spectrum의 모양이 다름

 

§  Mel-filterbank & Log

           x(n) = v(n)*e(n) 을 음성이라고 가정
v(n) = 구강구조
e(n) = 성대에서 울리는 소리

           v(n)은 음성에 대한 정보
무슨 말을 했는지에 대한 정보

           e(n)은 화자에 대한 정보
어떤 사람이 말을 했는지에 대한 정보

           x(n) = v(n)*e(n) 이 마이크를 통해 입력됨
Time domain

          FFT를 통해 frequency domain으로 변환

convolution이 곱셈으로 변환

           X(n)에서 화자 정보인 e(n)을 제거하기 위해 log를 씌워 덧셈으로 변환
Log(X(n)) = Log(V(n)) + Log(E(n))

http://www.lionsvoiceclinic.umn.edu/page2.htm#anatomy101

§  Discrete Cosine Transform(DCT)

           적은 차원의 데이터로 envelop을 구할 때 사용됨

           Discrete Cosine Transform(DCT) 과정을 통해 음성 인식에 있어 필요한 정보만을 담은 13 vector를 생성

 

§  MFCC feature 추출 과정

2.2음성 출력 단위 결정

§  각 단어들은 컴퓨터 내부에서 어휘에 대한 index로 표현

           어휘(Vocabulary): 인식 가능한 단어들의 집합

           : 어휘의 크기가 10만이고, 단어들은 어절단위로 구분 되었으며, 어휘 내 단어들을 가나다순으로 정렬했 을 때, 단어들이 아래의 순서의 단어로 어휘 내 위치해 있다고 가정한다.
가자’: 12,844번째 단어
내일’: 24,882번째 단어
세시에’: 35,493번째 단어
오후’: 69,864번째 단어
학교’: 95,867번째 단어

           ‘내일/오후/세시에/학교/가자는 아래와 같이 index의 열로 표현된다.
24,882/69,864/35,493/95,867/12,844

§  한국어 문장 예제: (형태소 단위로 시퀀스를 구성)

           올 여름 평년보다 덥고 강수량 지역 차 크다
<s>//여름/평년/보다///강수량/지역////</s>
w0/w1/w2/w3/w4/w5/w6/w7/w8/w9/w10/w11/</s>

§  영어 문장 예제: (단어 단위로 시퀀스를 구성)

           It is hotter than usual this summer, and the regional difference of precipitation is big
<s>/It/is/hotter/than/usual/this/summer,/and/the/regional/difference/of/precipitation/is/big/</s> (<s>와 </s>는 각각 start, end를 나타내는 정의)
w0/w1/w2/w3/w4/w5/w6/w7/w8/w9/w10/w11/w12/w13/w14/w15/w16



reference: 서강대 김지환 교수님 강의

Posted by creatoryoon
,

Chapter 1: 음성인식 연구 동향 및 문제 정의

Table of contents

1.1 음성인식 문제 정의

1.2 음성인식 연구 동향

1.1 음성인식 이란?

v  마이크를 통해 입력 받은 음성(speech)이 주어졌을때, 확률이 가장 높은 문장(단어의 열)을 출력

 

v                  

      W=\left\{w_1, w_2, \ldots, w_U\right\} : U개의 단어 시퀀스

       X=\left\{x_1, x_2, \ldots, x_r\right\} : 음성 시퀀스

1.1 E2E 관점의 음성인식 문제정의

 음성인식을 입력end (음성)에서 출력end (문장)으로의 변환의 문제로 본다면

  음성인식문제는

   x_1 \cdots x_r (Continuous vector space에서의 13차 벡터 𝑇개의 시퀀스)에서
     w_1, \cdots, w_U(𝑉개의 서로 다른 값을 가지는 discrete symbol𝑈의 시퀀스)로의 번역 문제로 재정의 할 수 있다

이상적인 E2E 시스템 구현은 불가능

이상적인 E2E시스템: 전체 시스템을 블랙박스로 보고 데이터만 주면 알아서 시스템이 학습하는방식

   무한개의 입력 시퀀스에서 무한개의 출력 시퀀스로 매핑하는 시스템은 구현이 불가능하다

1.1 E2E 음성인식 구현 시 입출력 복잡도

음성인식 시스템의 가능한 입력 개수 분석

   가정: 입력 길이 1, 44.1K, 샘플 당 2byte 사용

   저장에 1 × 44100 × 2 = 88,200 byte 필요

   가능한 입력의 개수: 288200 × 8

   입력 길이의 제한이 없으므로 가능한 입력의 개수는 무한대이다

음성인식 시스템의 가능한 출력 개수 분석

   어휘를 구성하는 단어의 수(𝑉) : 무한대 (지명, 인명 등 제한이 없으며 신조어가 계속해서 생성된다)

   연속음성인식에서는 입력 파형만을 가지고 몇 개의 단어로 구성된 문장인지 알수 없다

1.1 DNN-WFST에서의 문제 정의

기호 설명

          W: w_1 \cdots w_N
- N개의 단어들로 이루어진 문장

           O: o_1 \cdots o_T
T개의 윈도우에서 각 윈도우로부터 나온 13 vector sequence(. x: x_1, x_2, ..., x_t )

가능한 O 의 개수가 무한대이기 때문에 P(W | O) 를 직접 구할 수 없음

Bayesian rule을 적용하여 변환

\arg _w \max P(W \mid O)=\arg _w \max \frac{P(O \mid W) P(W)}{P(O)}

        P(O) : 13 * T  벡터 공간에서의 한 점의 확률

        이 확률을 모두 동일하다고 가정하면 \arg _w \max 를 찾는 문제이기 때문에 P(O) 를 생략 가능

                                            
                           

음성인식 시스템 구성에서의 핵심

        음향 모델P(O | W)

        언어 모델P(W)

        디코딩 네트워크(\arg _w \max)

           어휘(인식 가능한 단어 set)의 구현이다

 


1.2   주요 음성인식 모델

DNN-WFST  기반 음성인식 파이프라인

 

DNN-WFST

- Kaldi(음성인식 주요 tool)의 기반
- E2E
에 대응되는 기술로 서술되나,
  Frame
단위까지(출력 end HMM에서의 state) E2E

End-to-end 기반 음성인식 파이프라인

E2E (출력 end는 주로 grapheme)

- CTC
- RNN-T
- Attention
- Transformer

 

 

1.2 E2E방법의 장점 및 주요 검토 항목

장점

           SOTA(State-of-the-art)를 보임 (transformer)

           음성파일과 이에 대응되는 transcription만으로 학습

           전혀 모르는 언어에 대해서도 음성인식기 제작이 가능

단점

           외부 지식을 실시간 반영할 수 있는 방법이 없음 (: 실시간 검색어(고유명사 많음))

           대용량 텍스트 코퍼스를 음성인식기에 직접 반영할 수 있는 방법이 없음

           복잡한 구조에 파라미터가 많고, computation power를 많이 사용하며, ML 기반으로 학습이 이루어짐 (입력열과는  다른 길이를 가지는 출력열에 대한답만 가지고 있음)

           재현 실험이 되지 않는 경우가 많음 (모델 초기값에 의해 성능이 바뀔 수 있음)

 

주요검토항목

           DNN-WFST 대비 성능이 좋은가?

           재현 실험은 잘이루어 지는가?

           필요한 computation power?

           출력 단위 정의

1.2 주요 E2E 방법

End-to-end models

           Connectionist temporal classification (CTC) [Graves, 2006]

알파벳과 음성정보만으로 단일모델을 구성할수 있는, 최초로 제안된 end-to-end 음성인식모델

           RNN-transducer (RNN-T) [Graves, 2012]

CTC에 언어 정보를 학습할 수 있는RNN 기반의 모델을 추가하여 성능을 개선시킨 모델

           Attention 기반 seq2seq [Chan, 2016]

음성인식을sequence의 번역으로 해석해서attention mechanism을적용한모델

           Transformer [Vaswani, 2017]

Multi-head self-attention을 사용하여 RNN 없이 sequence 모델링을 구현한 모델

Librispeech corpus 대상 end-to-end 음성인식 모델 성능 비교

대용량 corpus 대상 end-to-end 음성인식 모델 성능

reference:서강대학교 김지환 교수님 강의

Posted by creatoryoon
,

이래저래, 공부를 너무 대충하는 것 같아 참조차 적어보기 위해 만든 블로깅

 

머신 러닝의 숲을 먼저 살펴보자면, 알고리즘까지 나열하자면 지금은 한도끝도 없이 많다.

다만, 어떤 식으로 분류가 되는지에 대해서는 원형 까지인데, 이정도는 알고있는것이 좋을 것 같다.

 

먼저 정통적인 방식은 Supervised Learning인데,

지도학습은 레이블이 있는 상태에서 학습하는 방식으로써, 학습데이터로 주어진 데이터의 피처와 레이블값을 머신러닝 알고리즘으로 학습, 모델을 생성하고, 이 모델에 피쳐를 줬을 때의 레이블 값을 예측하는 것이다.

여기에는 분류와 회귀가 있다.

 

분류는 결정트리, KNN, SVM, Navie Bayes, Neural net등의 다양한 알고리즘이 있으며 Ensemble이란 알고리즘을 결합하여 예측을 수행하는 방식으로 베깅, 부스팅, 볼팅 등이 있다.

Random forest 경우도 결정트리를 부스팅한 것으로써, Xgboost, LightGBM 또한 결정트리의 일종이라고도 볼 수 있다.

 

https://www.robotstory.co.kr/raspberry/?board_name=raspberry_bbs&mode=list&search_field=fn_user_pid&search_text=426&board_page=2&list_type=list&lang=ko_KR

결정트리

결정트리는 이해하기 쉬운 알고리즘으로써, 데이터에 있는 규칙을 학습으로 찾아내 트리 기반의 분류 규칙을 만드는 것이다. 단순하게 말하면 분기문을 만들어 구분한다고 생각하면 되겠다.

결정 트리의 경우 루트노드, 규칙이 있는 서브노드와 결정된 값이 들어있는 리프노드가 있다. 그리고 새로운 규칙이 추가될때 이에 기반한 서브트리가 생성된다.

이때, 많은 규칙이 있다는 것은 분류를 결정하는 방식이 복잡하다는 것이고, 이는 과적합, 성능저하의 원인이 된다.

결정트리의 핵심 아이디어는 불순도를 낮추는 것에 있다. 불순도란 정보의 복잡도(얼마나 균일한가)를 의미하며, 불순도를 수치화한 값에는 지니계수(Gini coefficient)와 엔트로피(Entropy)가 사용된다.

아무래도, 동일한 데이터에서도 결정트리는 여러 개가 나올 수가 있는데, 여기서 불순도를 이용해 더 효과적인 결정트리를 결정할 수 있다.

subNode에서 데이터가 분리되었을 때, 더 순도가 높은 데이터가 많이 나오게 되는 속성이 더 효과적이라고 할 수 있으며, 이때 순도가 높다는 것은 분류된 레이블 값이 동일한 것, 즉, 레이블 값이 다 같은 것을 말한다.

이때, 분류가 완료된 리프노드의 엔트로피는 0이다.

Decision Tree의 성능측정은 entropy(T)를 통해 이뤄지며 entropy(T)= -p+log(p+) -p-log(p-)이다.

이때, p+, p-는 각각 positive position(순도가 pure한 것/전체), nagative position(순도가 pure하지 않은 것/전체)를 말한다.

예를 들어 10개 데이터의 클레스를 분류한 결과, 7개는 예측이 잘 되지만 3개는 안된다면

p+, p-는 각각 [7+, 3-]이고, entropy(T)= -(7/10)log(7/10)-(3/10)log(3/10)=0.881 이다. (entropy 는 0to1 이다)

조금 더 살펴보자면, 결정트리 알고리즘에는 ID3, CART가 있는데, 이때 ID3은 엔트로피를 사용하고, CART는 지니계수를 사용한다. (이 내용 공부후 추가할 것)

 

 

 

 

랜덤 포레스트

랜덤 포레스트란 배깅을 사용하는 앙상블으로써, 배깅은 같은 알고리즘으로 여러 개의 모델을 만들어서 보팅으로 최종 결정하는 알고리즘이다.

기본적인 개념은 여러 개의 결정트리 모델이 전체 데이터를 샘플링해 개별적으로 학습을 수행 한 뒤, 모든 분류기가 보팅을 통해 예측 결정을 하는 방식이다.

이때, 보팅이란 여러개의 모델이 학습하고 예측한 결과를 보팅으로 최종 예측하는 것으로써, 하드보팅과 소프트 보팅이 있다.

하드 보팅은 일종의 다수결 원칙으로, 다수의 모델이 결정한 예측값을 최종 보팅값으로 선정하는 것이고, 소프트 보팅은 모델의 레이블 값 결정 확률을 모두 더하고 이를 평균해서 이 중 가장 확률이 높은 레이블 값을 최종 보팅 결과값으로 선정하는 것으로써, 일반적으로 소프트 보팅이 사용된다.

랜덤 포레스트의 모델별 알고리즘은 결정트리이지만, 각각의 모델이 학습하는 데이터는 전체 데이터에서 일부가 중첩되도록 샘플링된 데이터셋이다. 이렇게 여러 개의 데이터셋을 중첩되게 분리하는 것을 부트스트레핑(bootstrapping)분할 방식이라고 하며, 

 

&lsquo;Model evaluation, model selection, and algorithm selection in machine learning Part II &ndash; Bootstrapping and uncertainties,&nbsp;Setabstian Raschka

이렇게 부트스트레핑으로 분할된 데이터셋에 결정트리 모델을 각각 적용하는 것이 랜텀 포레스트이다.

GBM

다음으로 GBM을 살펴보면

부스팅 알고리즘이란 여러 개의 약한 학습기를 순차적으로 학습-예측하며 잘못 예측된 데이터에 가중치를 부여하여 오류를 개선하며 학습하는 것이다.

대표적으로 AdaBoost와 GradientBoost가 있다. 

 

 

KNN

KNN을 먼저 설명하자면 이건 매우 쉽다.

간단하게 가장 가까운 점 몇개를 가지고 분류하겠다는 문제.

http://dmml.asu.edu/smm

 

http://dmml.asu.edu/smm

예측하고 싶은 data에서 가장 가까운 k개의 이웃을 구하고, 거리를 measure하고, 그들의 class값을 체크한 뒤 조정해서 예측하는 것이다.

 

다음이 SVM인데, 이는 기본적으로 그룹을 분리하기 위해, 데이터들과 가장 거리가 먼 초평면을 선택하여 분리하는 방법을 말한다.

기본적인 아이디어는 어떻게 공간을 나눌 것인가에서 출발하며, 

다음 블로그를 참조했다. 

https://ratsgo.github.io/machine%20learning/2017/05/30/SVM3/

 

Kernel-SVM · ratsgo's blog

이번 글에서는 서포트 벡터 머신(SVM)의 변형인 Kernel-SVM에 대해 살펴보도록 하겠습니다. 이 글 역시 고려대 강필성 교수님과 역시 같은 대학의 김성범 교수님 강의를 정리했음을 먼저 밝힙니다. S

ratsgo.github.io

https://velog.io/@shlee0125/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EC%A0%95%EB%A6%AC-Support-Vector-Machine-05.-Why-does-SVM-maximize-margin

 

[머신러닝 정리] 서포트 벡터 머신(Support Vector Machine) - 05. Why does SVM maximize margin?

본 포스팅 시리즈는 다양한 머신러닝 테크닉에 대해 수학적 관점과 실용적 관점에서 정리한다.

velog.io

https://www.slideshare.net/freepsw/svm-77055058

 

내가 이해하는 SVM(왜, 어떻게를 중심으로)

Coursera Machine Learning by Andrew NG 강의를 들으면서, 궁금했던 내용을 중심으로 정리. 내가 궁금했던건, 데이터를 분류하는 Decision boundary를 만들때... - 왜 가중치(W)와 decision boundary가 직교해야 하는지

www.slideshare.net

https://jaejunyoo.blogspot.com/2018/01/support-vector-machine-1.html#mjx-eqn-eqdr

 

초짜 대학원생의 입장에서 이해하는 Support Vector Machine (1)

Machine learning and research topics explained in beginner graduate's terms. 초짜 대학원생의 쉽게 풀어 설명하는 머신러닝

jaejunyoo.blogspot.com

https://sanghyu.tistory.com/7?category=1122189

 

 

 

 

 

먼저 SVM을 설명하기 전에, 선형분류에 대해 얘기를 하는 것이 이해에 도움이 될 것 같다.

간단히 두개의 클레스를 분류하는 문제를 생각해보면, 

http://doc.mindscale.kr/km/data_mining/dm03.html

위와 같은 데이터가 주어졌을 때, 이를 분류하기 위한 선을 하나 그어보자면

아래와 같은 모양이 될 것이다.

http://doc.mindscale.kr/km/data_mining/dm03.html

이고, y=w_{1}x_{1}+b꼴의 식이 만들어 질 것이고, 이때, y=-x+6이라면, 위의 선중 실선이 될 것이다.

여기서 식을 조금 다르게 바라보자

가로축, 세로축이 각각 x_{1},x_{2} 라고  한다면, y=w_{1}x_{1}+w_{2}x_{2}+b꼴이 될 것이고, 각각을 

선형 분류는 가장 적절한 경계선이 되도록 w와 b를 결정하는 것이다.

 

이 적절함은 손실함수로 찾을 수 있다.

 

여기서 발전한 형태가 피셔의 판별분석이라 할 수 있다.

 

http://doc.mindscale.kr/km/data_mining/dm03.html

위의 그림에서 왼쪽 그림이 오른쪽 그림보다 평균간의 거리는 더 멀지만, 경계선은 오른 쪽이더 적합해 보인다.

원인은 왼쪽은 클래스의 y값이 넓지만, 오른쪽은 좁게 모여있기 때문으로, 선형판별분석은 클래스간의 차이는 크게, 클래스 내의 차이는 작게 만드는 w를 가장 좋은 w로 본다.

정리하면 아래의 식에서 J를 최대화하는 w를 찾는 것이다.

J=\frac{(m_{1}-m_{2})^{2}}{s_{1}^{2}+s_{2}^{2}}

m_{i}:i번째 클래스의 평균, s_{i}:i번째 클래스의 표준편차

 

이런 아이디어가 선형분류라고 한다면,

SVM은 클래스를 나누는 선과 가장 가까운 점의 거리를 최대화하는 것이 아이디어다.

선형 판별을 할 때, 클래스를 나누는 선은 여러 개가 나올 수 있는데, 이중 어떤 것을 선택할 것인지에 이 아이디어가 쓰이는데, 

 

https://velog.io/@shlee0125/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EC%A0%95%EB%A6%AC-Support-Vector-Machine-02.-Binary-Classification

 

https://velog.io/@shlee0125/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EC%A0%95%EB%A6%AC-Support-Vector-Machine-02.-Binary-Classification

위의 그림에서 아래 그림이 SVM에 대해 잘 설명하고 있다. 선에서 가장 가까운 점이 Support Vectors이고, Margin이 선과 SupportVectors와의 거리를 말한다.

이 마진을 결정하는 각 클래스의 샘플이 서포트 벡터이며, 새로운 데이터가 들어왔을 때 클래스를 구분하는 기준이 된다.

이 거리가 멀수록 신뢰도가 올라가게 되고 이 거리를 최대화하는 것을 하드마진이라 한다.

다만 이 SVM의 단점이라 한다면, 실제 데이터에서 노이즈나 이상치에 대처가 어렵다는 것이다.

 

그래서 소프트 마진이라는 것이 생기게 되었는데,  

https://velog.io/@shlee0125/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EC%A0%95%EB%A6%AC-%EC%84%9C%ED%8F%AC%ED%8A%B8-%EB%B2%A1%ED%84%B0-%EB%A8%B8%EC%8B%A0Support-Vector-Machine-06.-Soft-margin-SVM-1

 위와 같은 그림이 현실에 가까운 데이터라 할 수 있으며, 하드마진은 이에 대응하기가 어렵다.

https://velog.io/@shlee0125/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EC%A0%95%EB%A6%AC-%EC%84%9C%ED%8F%AC%ED%8A%B8-%EB%B2%A1%ED%84%B0-%EB%A8%B8%EC%8B%A0Support-Vector-Machine-06.-Soft-margin-SVM-1

또한 위의 사진과 같이 선형 분류가 되지 않는 경우는...... 사실상 성능을 낼수가 없다.

따라서, 마진에 잉여(slack)를 허가해 줌으로써 개선한 것이 소프트 마진 svm이다.

훈련 데이터에 이상치나 노이즈가 있다는 점에 무게를 두고, 결정경계의 근방에서 발생할 노이즈, 이상치는 좀 틀려도 되도록 여유를 주고 넓은 마진을 가지게 하는 것이다.

https://velog.io/@shlee0125/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EC%A0%95%EB%A6%AC-%EC%84%9C%ED%8F%AC%ED%8A%B8-%EB%B2%A1%ED%84%B0-%EB%A8%B8%EC%8B%A0Support-Vector-Machine-06.-Soft-margin-SVM-1

각 훈련 데이터 샘플 (x_{i},y_{i})마다 잉여 변수를 대응시켜, 샘흘이 마진의 폭 안으로 ξ_{i}만큼 파고드는 것을 용인해주는 것이다.

 

 

 

 

-커널트릭

 

 

 

 

eigen vector을 잘 설명해주는 그림이 있어 위키피디아에서 가져왔다.

In this&nbsp; shear mapping &nbsp;the red arrow changes direction, but the blue arrow does not. The blue arrow is an eigenvector of this shear mapping because it does not change direction, and since its length is unchanged, its eigenvalue is 1 _https://en.wikipedia.org/wiki/Eigenvalues_and_eigenvectors
A 2&times;2 real and symmetric matrix representing a stretching and shearing of the plane. The eigenvectors of the matrix (red lines) are the two special directions such that every point on them will just slide on them.https://en.wikipedia.org/wiki/Eigenvalues_and_eigenvectors
The transformation matrix&nbsp; A &nbsp;=&nbsp; {\displaystyle \left[{\begin{smallmatrix}2&1\\1&2\end{smallmatrix}}\right]} &nbsp;preserves the direction of purple vectors parallel to&nbsp; v &lambda;=1 &nbsp;= [1 &minus;1] T &nbsp;and blue vectors parallel to&nbsp; v &lambda;=3 &nbsp;= [1 1] T . The red vectors are not parallel to either eigenvector, so, their directions are changed by the transformation. The lengths of the purple vectors are unchanged after the transformation (due to their eigenvalue of 1), while blue vectors are three times the length of the original (due to their eigenvalue of 3). See also:&nbsp; An extended version, showing all four quadrants .https://en.wikipedia.org/wiki/Eigenvalues_and_eigenvectors

 

 

 

 

 

SVM

 

 

 

 

Naive Bayes

다음으로 Naive Bayes Learning을 살펴보면, 

기본적 아이디어는 조건부 확률을 말하는 것으로 예를 들어 2개의 random x,y가 있을 때 x의 조건하에 y일 확률을 말한다.

http://dmml.asu.edu/smm

즉 어떤 x가 주어졌을 때 어떤 클래스에 속할 확률을 구해서 그중 가장 큰 확률을 주는 x가 y라고 보겠다는 것이다.

예를 들자면, 

http://dmml.asu.edu/smm

위와 같은 표가 주어진다고 하자.

8번째에서 내가 골프를 칠 것인가를 결정하자면\sum_{n=1}^{100} {n}

http://dmml.asu.edu/smm

골프를 칠 것인가가 Yes일 떄의 확률은 \frac{sunny}{Y일때}\frac{mild}{Y일때}\frac{high}{Y일때}\frac{\frac{Y}{전체}}{P(i_{8})}=\frac{1}{4}\frac{1}{4}\frac{2}{4}\frac{\frac{4}{7}}{P(i_{8})}=\frac{1}{56P(i_{8})} 이고,

http://dmml.asu.edu/smm

골프를 칠 것인가가 No일 떄의 확률은 

\frac{sunny}{N일때}\frac{mild}{N일때}\frac{high}{N일때}\frac{\frac{N}{전체}}{P(i_{8})}=\frac{2}{3}\frac{1}{3}\frac{2}{3}\frac{\frac{3}{7}}{P(i_{8})}=\frac{4}{63P(i_{8})}

이 나온다.

http://dmml.asu.edu/smm

이때, N일 때가 더 크므로 골프를 치는가의 여부는 N으로 결정된다.

 

 

 

 

'IT' 카테고리의 다른 글

(작성중)Social Media Mining #1 introduction, #2 Graph Essentials  (0) 2022.07.08
낡은 nas j4105로 교체기.  (4) 2018.02.26
Posted by creatoryoon
,

APC의 BE700-kr의 정품 배터리 RBC-17의 경우

라벨을 떼어보면 다양한 제조사에서 납품함을 알 수 있다.

wp9-12shr (출처:https://www.bonobono.com/2022/07/21/apc-be700-kr-ups-battery/)
hr1234w (출처: https://comterman.tistory.com/2065)
cp1290 (출처: 직접 사용중인 것에서 확인)

특히 cp 1290의 경우->es 9-12 와 매우 동일한 datasheet를 가짐을 확인했다.(https://www.vision-batt.com/site/product_files/CP1290.pdf)

일단 내가 사용하며 오래 사용한 배터리가 cp1290의 라벨을 가지고 있음을 확인했고,

es-9-12의 데이터 sheet(https://almazroui-me.com/wp-content/uploads/2018/12/Rocket-Battery-ES-9-12-12V-9Ah-AGM-VRLA.pdf)를 확인해본 결과 설계수명이 더 길다는 점 외에 특이사항을 발견하지 못하였으므로

로케트 전지의 es9-12를 사용해볼 예정

 

 

Posted by creatoryoon
,