예전 정리글:
베이즈 정리를 또 다르게 응용하는 방법입니다.
In a nutshell,
P(Y=yk|X1,⋅,Xn)=P(Y=yk)∏iP(Xi|Y=yk)∑jP(Y=yj)∏iP(Xi|Y=yj),Ynew←argmaxykP(Y=yk)∏P(Xnewi|Y=yk)
이게 무언 소리인고, 하니! 두둥탁
중요한 개념을 알고 있어야 합니다: 조건부 독립! X1,⋯,Xn이 서로 Y에 대해 조건부 독립이면 아래와 같은 식이 성립합니다.
P(X1,X2,…,Xn|Y)=∏iP(Xi|Y)
베이즈 정리에 의해,
P(Y=yk|X1,⋅,Xn)=P(Y=yk)P(X1,⋯,Xn|Y=yk)∑jP(Y=yj)P(X1,⋯,Xn|Y=yj)
가 성립하고 여기에 2을 적용해주면 *의 첫줄이 유도됩니다.
Naïve Bayes classifier는 *의 분자를 활용해서, unseen data의 여러 feature들을 종합해 봤을 때 저 분자값이 가장 커지는 yk값을 그 label로 예측하는 알고리즘입니다. 이 알고리즘의 의의..라고 하면, 조건부 독립을 전제함으로써 시간복잡도를 엄청 줄여준다는 장점이 있어요. Binary-valued feature인 상황이라고 하면 O(k(2n−1))→O(kn)으로 줄어들어요! 그리고 조건부 독립을 전제했을 경우라면, Naïve Bayes가 optimal solution이라고 하는군요~.~
이걸 대체 어디에 쓰냐구?? Bag of words가 대표적인 Naïve Bayes 모델인데요, 스팸 메일 분류 모델을 생각해봅시다. 각각의 단어들을 X1,⋯,Xn이라고 한다면, 그들끼리는 서로 독립은 아니지만 Spam/ham 두 레이블에 대해서는 (꼭 스팸메일 분류 할때 스팸 아닌 걸 ham이라 하더라 ㄱㅇㅇ..) 서로 독립이라고 전제합니다. 어 이때. '전제' 이거 엄청 중요함!!!
Inductive Bias
어떤 학습 모델이 학습에 사용하는 assumption들의 집합을 말합니다. 이 모델이 학습 데이터뿐만 아니라 unseen data에 대해서도 잘 동작할 거라는 믿음의 근간이라고 봐도 될 것 같아요. 예를 들면 Naïve Bayes는 X1,⋯,Xn이라는 feature들이 label Y에 대해 서로 조건부 독립임을 전제하는데, 학습에 활용된 데이터뿐만 아니라 test 상황에서도 데이터가 이러하길 기대해야 Naïve Bayes를 활용하는 게 의미가 있어요.
Naïve Bayes는 음.. label yk마다 P(Y=yk|X1,⋅,Xn)를 구하는 게 곧 학습과정이 됩니다. 그래서 Naïve Bayes 모델을 완성하라, 라고 하면 저 값들을 찾아서 채워 넣어주면 그만이에요.
LLM처럼 파라미터 업데이트로 abstract, generalized 모델을 완성하는 경우가 있고 (학습 후 학습데이터는 더 이상 필요없어짐), Naïve Bayes처럼 학습 데이터를 따로 저장해서 거기에 새로운 데이터가 유입될 때마다 모델이 업데이트 되는 경우가 있어요. 전자를 Batch/Eager/ Learning이라고 하고, 후자를 Lazy/Instance-Based/Online Learning이라고 합니다. 이건 몬가 면접에서 물어볼 만도 한 질문인듯ㅇㅇ
Gaussian Naïve Bayes
Naïve Bayes보다 이게 더 중요한듯ㅋㅋ 위는 이산확률변수인 경우고, 지금은 연속확률변수인 경우예요. Y=yk를 전제했을 때,
ˆY←argmaxykP(Y=yk)∏iP(Xnewi|Y=yk)ˆY←argmaxykP(Y=yk)∏iN(Xnewi,μik,σ2ik)
데이터 분포가 정규분포를 따른다고 가정했을 때 나이브베이즈를 활용하면 이렇습니다. 사실상 똑같음ㅎㅎ
여기서 P(Y=yk)는 전체 데이터에서 yk 레이블이 차지하는 비율을 그대로 활용하면 되고, μ,σ는 주어진 데이터를 가지고 MLE로 추정을 해서 사용하면 됩니당 ㅎㅅㅎ
확률 => 확률밀도로 바뀌는 점: 연속확률변수는 P(X=k)=0이라서 확률의 개념 대신 likelihood, 또는 density를 대신 활용해준다고 함
특징 하나더: linear classfier고, 보통 class마다 같은 분산을 공유한다고 전제했던 것으로 기억함
'math4ai > Machine Learning and Deep Learning' 카테고리의 다른 글
M4AI) Unsupervised Learning: Clustering (1) | 2024.07.28 |
---|---|
M4AI) Bias-Variance Decomposition, Perceptron (0) | 2024.07.27 |
M4AI) Logistic Regression & Linear Regression (0) | 2024.07.26 |
M4AI) MLE & MAP (14) | 2024.07.24 |
M4AI) Decision Tree (1) | 2024.07.22 |