
학기를 마무리 하며.. 기말고사 부분에 대한 간단한 정리.
Markov Model
Bigram의 Probability는 Count(Wn-1Wn)/Count(Wn-1)
Chain rule → Markov Model에서 assuming하는 Dependencies
Ex) P(X1,X2,X3,X4) = P(X1)P(X2|X1)P(X3|X1,X2)P(X4|X1,X2,X3)
X3랑 X1 | X2, X4랑 X1,X2 | X3 랑 독립이라고 가정!
MDP의 구성 요소
1. A set of states s
2. A set of actions a
3. A transition function T(s, a, s')
4. A reward function R(s, a, s')
5. A start state
6. Maybe a terminal state
Transition과 Reward를 다 알고있으면 MDP의 optimal policy를 알 수 있나? → Minimax가 사실상 무한대기 때문에, 일반적인 Search Tree에서 그걸 계산하는건 불가능하다 이거지.
그러면? → Time Limited Value를 사용해서 계산한다.
V_0 일때는 모든 값이 0, 이후 계산 방법 = 일단 state를 쭉 적어두고, 바로 아래에 있는 stage에 있는 V-value에서 Q 값을 계산, 다시 next V value를 구함.
Bellmane Equation
V(s) = max_a(Q(s,a))
Q(s,a) = sum(T(s,a,s')[R(s,a,s') + rV*(s') ])
두개 합치면,
V(s) =max_a(sum(T(s,a,s')[R(s,a,s') + rV*(s') ]))
Direct Evaluation
전체 결과 짬뽕해서 최종 결과 (V value) 구하기 → B의 Value를 구하려면, B에서 시작하고 끝나는 모든 최종 value의 average
장점: 이해하기 쉬움, T,R 몰라도 됨, 아무튼 Correct average value는 구할 수 있음
단점: 어떤 연속된 상황에 대한 V value가 반영되지 못함. 시간이 오래걸림
Temporal Difference Learning
각 action마다 결과를 평가함. Learning Rate a가 존재.
V(s) = (1-a)V(s) + a[R(s,a,s') + rV(s')]
장점: 연속된 상황에 대한 V-value가 반영됨.
단점: V-value를 평가할 수 있을지언정, Q-value를 정할 수는 없음. 즉, 새로운 Policy를 도출하는 것은 불가능 함(Passive 특)
Exponential Moving Average
Decreasing Learning Rate → Converging Average
Q-learning
Q(s,a) = (1-a)Q(s,a) + a[R + rQ(s', a')]
아오 근데 Q state유지하는게 여간 일이 아님.
Approximate Q-learning
w = w + a[difference]f(s,a)
difference = real value - expected value
Q-learning만큼 table유지 하지 않아도 되는 장점.
전혀 다른 상태인데 state로만 과하게 일반화 하는 단점.
Case-Based Reasoning
→ Linear한 방법에서 발전되어서 Non-seperable case도 deal 할 수 있음
Similarity Functions
모든 similarity를 dot-product로 구할수는 없지 않느냐.
NN이랑 Perceptron을 비교할 때
NN은 fancy 하게 비교 가능하지만 explicit하게 learning 하는 과정은 아님
Perceptrion은 오차를 줄이기 위해서 Learning하기는 하는데, Fancy 하게 못나눔
Kernelization
feature 하나씩 뽑는 대신, Kernel function을 design해서 dimension의 변화를 통해 결정하는 그런 방법. 좋은데, overfitted 될 가능성도 있음
Classification이 supervised learning이라면, Clustering은 Unsupervied learning에 해당함.
자자. 지금까지는 supervised learning에 해당하는 classification을 봤음.
Clustering
Clustering은 unsupervised learing에 해당하는데, 가장 기본적으로 K-mean 방법이 있음.
Neural Network
우리는 function을 계산해서 0보다 큰지, 아닌지 판단해서 적절한 result를 내보내는식으로 계산하면 된다는 것을 알았음. 근데 이걸 수학적으로 어떻게 표시할거냐?
Binary classifacation인 경우 sigmoid function을 써서 1/1+e^-z z가 0보다 크면 1 작으면 0이 되도록 구분
Multiclass classification인 경우 softmax function을 써서 제일 큰 값이 1이 되도록 함.
NN은 여러 layer로 구성되어 있어서, 기존에 perceptron에서 어떤 feature를 잡아야할지 말지 이런 고민들을 안하고, 지가 적절한 feature를 뽑아서 계산함. 어떤 hidden layer에서 적절한 값을 뽑을 수도.
이런 NN은 거의 모든 fuction을 만들 수 있기 때문에 XOR problem을 해결하는 또 다른 방법이며, 동시에 매우 Powerful하다. overfitting만 하지 않는다면.