반응형

 

BoW: Bag of Words


BoW는 자연어 즉, 텍스트(text)를 처리하는 방법 중에 하나로 간단하고 이해하기 쉬운 방법중 하나입니다. 짧게 말하면 단어가방(Bag of Words)를 가지고 문장을 표현하는 방법 입니다.

 

왜, BoW가 필요한가?

컴퓨터는 0과 1밖에 모릅니다. 0 또는 1일 표시할 수 있는 이진수에서 1자리를 bit 비트라고 합니다. 그래서 1비트는 1자리 2비트는 2자리입니다. 8비트를 1바이트(byte)라고 하고 1,000바이트를 1KB(킬로바이트)라고 합니다. 1,000 KB를 1MB(메가바이트), 1,000 MB를 1GB(기가바이트) 라고합니다. 이처럼 컴퓨터에서 정보를 처리하는 단위는 비트 입니다. 그런데 NLP에서 다루고자 하는 것은 텍스트(text) 데이터 입니다. 물론 텍스트 데이터도 컴퓨터에서는 비트로 저장되고 처리되지만 언어적인 특성을 고려한 상태에서의 저장이 아니라 문자 자체로의 저장입니다. 예를 들면 비트로 저장시에는 주어, 동사, 목적어, 보어 등 문법적인 언어적인 내용을 저장하지 않습니다. 단지, 예를 들면 'ㄱ'은 '11100011 10000100 10110001' 로 저장합니다. 뒤에 'ㅏ' (11100011 10000101 10001111) 와 합쳐서 '가'를 저장하고 표현할 뿐입니다. 이처럼 기본적인 컴퓨터에서 문자의 표현을 위한 데이터가 아니라 자연어 정보의 표현을 위한 데이터가 필요합니다. 그래야 이것을 이용해서 모델에서 사용할 수 있습니다. 이처럼 자연어를 모델이 다룰 수 있는 형태로 표현하는 방법중하나가 BoW 입니다. 예를 들어보겠습니다. 다음과 같은 문장이 있습니다. " 나는 사과를 좋아합니다." 이 문장을 어떻게 표현 할 수 있을까요? 여러가지 방법이 있지만 BoW로 표현할 수 있습니다.

 

BoW는 무엇인가?

BoW는 텍스트를 표현하는 방법 중 하나로 단어 가방(Bag of Words)을 이용하여 문장 또는 문서를 표현하는 방법입니다. 단어 가방에는 단어들이 들어있고 문장은 어떤 단어가 몇번 사용되었는지를 가지고 표현하는 방법입니다.

 

BoW 예시

여러분은 오늘 막 입학한 유치원생 이라고 생각해 봅시다. 유치원 단어 놀이 시간이 돌아왔다고 가정해 보시지요. 단어 놀이는 단어 가방에서 단어가 적힌 카드들을 넣어 두었다가 꺼네서 문장을 만드는 놀이입니다. 단어 가방 안에 '나는', '사과를', '좋아합니다', '바나나를', '정말'이라는 단어가 각각 쓰여진 총 5개의 단어 카드가 들어 있습니다.

이 단어 가방에서 "나는 사과를 좋아합니다"라는 문장을 만들기 위해서는 어떤 카드를 몇개 뽑아야 할까요? 네, '나는', '사과를', '좋아합니다' 각각 1개씩 있으면 됩니다. 이것을 기호로 표시해보면 다음과 같습니다. {'나는': 1, '사과를': 1, '좋아합니다': 1} 한번 더 해보시지요. 이번에는 "나는 정말 정말 바나나를 좋아합니다"를 만들어 보겠습니다. 결과는 순서와 상관없이 다음과 같이 표현할 수 있습니다. {'나는': 1, '정말': 2, '바나나를': 1, '좋아합니다': 1}
단어 가방는 단어가 중복되어 들어있지 않습니다. 그래서 각 단어에 순번을 할당하면 순번만으로도 어떤 단어인지를 알수 있습니다. 즉, 1번 카드에는 '나는'이 적혀있고, 2번카드에는 '사과를'이라고 적혀있다고 생각할 수 있습니다. 그러면 단어 가방에는 다음과 같이 들어있다고 할 수 있습니다. {0: '나는', 1: '정말', 2: '바나나를', 3: '좋아합니다', 4: '사과를'}
이러한 단어 가방을 이용하여 "나는 사과를 좋아합니다" 문장을 하나의 표현하면 [1, 0, 0, 1, 1] 으로 표현할 수 있습니다. 왜냐하면 첫번째 자리는 '나는'이고 문장내에 '나는'이 한번 있으므로 1로 표시됩니다. 두번째 자리는 '정말'을 의미하는데 문장에 해당 단어가 없으므로 0으로 표시합니다. 세번째 자리는 '바나나를'의미하는데 표현하려는 문장에 '바나나를'이 없으므로 0입니다. 네번째 자리는 '좋아합니다'의 자리인데 문장중에 있으므로 1로 표시됩니다. 마지막 다섯번째 자리는 '사과를'을 의미하고 문장에 '사과를'이 있으므로 1로 표시합니다. 같은 방법으로 두번째 예시 문장인 "나는 정말 정말 바나나를 좋아합니다."를 BoW로 표현하면 [1, 2, 1, 1, 0]이 됩니다.
이처럼 단어 가방을 이용하여 문장을 표시하는 방법이 Bag of Words(BoW) 방법입니다. 예시의 간단한 설명을 위해서 문장을 그대로 이용했는데 자세한 분석을 위해서 형태소 분석을 통해 단어를 분리하여 단어 가방에 넣을 수 있습니다.(예: 나, 는, 바나나, 를, 좋아, 합니다.)

 

 

장점 및 단점

위의 예에서 보신 것처럼 BoW는 문장내에서 단어의 순서나 위치를 고려하지 않습니다. 그냥 출현 횟수만을 관리합니다. 그래서 주어, 동사, 목적어 등 위치에 따른 의미 파악이 안되고 앞뒤 단어와의 관계를 고려한 분석이 안됩니다. 그래서 여러 뜻을 가진 단어나 동의어를 파악하거나 활용하지 못합니다. 그리고 새로운 단어의 표현을 위해서는 단어 가방에 단어를 추가하고 다른 문장들에도 표현을 변경해 주어야합니다. 그래서 잦은 단어추가가 필요한 곳에는 적합하지 않습니다.(물론 데이터 양이 적으면 사용가능하고요 이러한 단점을 보완하기 위해 Dummy word를 임의로 추가하거나 해싱 트릭 hashing trick을 이용할 수도 있지만 문제를 완전히 해결하지는 못합니다. ) 그대신 구조가 간단해서 처리 속도가 빠르고 이해하기 쉽습니다. 그래서 문제를 머신러닝으로 풀수 있는지 없는지를 빠르게 검증하고자 하는 단계에서 많이 사용되는 방법입니다.

 

Python 구현 코드

from konlpy.tag import Kkma

sentence = "나는 정말 정말 바나나를 좋아합니다."

def print_bow(sentence):
    kkma = Kkma()
    pos = kkma.pos(sentence)
    bow = {}
    for word in pos:
        try:
            bow[word[0]] += 1
        except KeyError:
            bow[word[0]] = 1

    print("BoW 표현: ", bow)
    print("단어 개수: ",len(bow))

print_bow(sentence)

output 실행 결과

BoW 표현:  {'나': 1, '는': 1, '정말': 2, '바나나': 1, '를': 1, '좋아하': 1, 'ㅂ니다': 1, '.': 1}
단어 개수:  8

 

 

유사하지만 조금 더 복잡하고 정교한 표현이 가능한 TF-IDF 도 많이 쓰입니다.

https://bigdatamaster.tistory.com/147

 

TF-IDF tfidf

주요 내용 개요 TF-IDF 계산 해보기 TF-IDF의 장점 및 단점 1. 개요 TF-IDF 는 BoW(Bag of Words)와 마찬가지로 텍스트 데이터를 (컴퓨터에서 사용하기 위해) 표현하는 방법중 한가지 방법 입니다. 정보 검색

bigdatamaster.tistory.com

 

 

Bag of Words 를 이용한 어플리케이션이라고 할 수 있는 워드클라우드에 대해서는 아래의 링크를 참고해주세요.

https://bigdatamaster.tistory.com/99

 

[연재] 고객분석 2 - 워드 클라우드를 이용한 고객 성향 분석 및 판단

어떻게 하면 고객의 성향을 알수 있을까? 가장 확실한 방법은 MBTI 테스트를 고객 별로 실행하고 결과를 확인하는 것이다. 이보다 확실 할 수는 없다. 그러나 실제 고객 분석 시 실현 가능성이 매

bigdatamaster.tistory.com

 

반응형
반응형

Perceptron

퍼셉트론이 중요한 이유는 분류 문제를 다루는 알고리즘 중에서 기본적이고 역사적으로 의미가 있는 알고리즘이기 때문입니다. 너무 간단하고 한계가 많아서 실제로 많이 사용되지는 않지만 이것이 기반이되어 최근에 많이 쓰이는 딥러닝이 발전되었기 때문에 퍼셉트론을 이해하는 것은 매우 중요하다고 할 수 있습니다.

자 설명을 시작해 보았습니다.

위키의 정의는 아래와 같습니다.

퍼셉트론은 이진 분류를 위한 지도학습 알고리즘 중 하나이다. 이진 분류기는 숫자로 된 벡터를 인풋이 어떤 특정 분류 그룹에 속하는지를 판단할 수 있는 함수이다. 이것은 선형 분류기 중 하나이다. 다시 말하면, 피처 벡터와 가중치의 조합을 통해 선형 예측함수를 기반으로 예측을 만들 수 있는 분류 알고리즘을 말한다. 

In machine learning, the perceptron is an algorithm for supervised learning of binary classifiers. A binary classifier is a function which can decide whether or not an input, represented by a vector of numbers, belongs to some specific class.[1] It is a type of linear classifier, i.e. a classification algorithm that makes its predictions based on a linear predictor function combining a set of weights with the feature vector.

 

 

쉽게 풀어서 설명해 보겠습니다.

퍼셉트론은 아주 간단히 말하면 '알고리즘' 입니다. 조금 더 길게 설명하면 '분류 알고리즘'입니다. 더 길게 설명하면 '여러 데이터 항목의 입력을 받아서 출력은 이진으로 0또는 1을 출력하는 분류 알고리즘' 입니다. 이렇게 하기 위해서 분류 선(모델라인)을 만듭니다.

 

이 내용은 아래와 같이 정의 할 수 있습니다. 

g(z) = { 1 : z >= 0,      0 : z < 0 }

이 공식을 풀어서 설명하면 입력 z가 0 과 같거나 더 크면 1, 0보다 작으면 0을 출력하는 함수 입니다.

이것이 퍼셉트론 알고리즘 입니다.

이러한 구조에서 w를 조정하면 다양한 논리 연산자(AND, OR, NOT) 로직을 입력값에 적용하여 출력값을 얻을 수 있습니다. x1, x2, x3는 입력값이고 0또는 1의 값을 갖습니다. w1, w2, w3는 각 입력값에 대한 가중치 값입니다. y는 출력값, 즉 0 또는 1입니다. 이때 가중치 w를 조정하면 다양한 로직의 결과로 y 값을 만들어 낼 수 있습니다.  예를 들면, x1을 키, x2를 몸무게, x3를 허리둘래 값이라고 하고 우리가 찾고자 하는 것은 비만 여부(1: 비만, 0: 정상)를 출력하는 모델을 만들 수 있습니다. 이때 가중치 w를 각각 다르게 설정함으로서 키, 몸무게, 허리둘래가 출력값 y, 비만 여부에 미치는 영향도를 조정할 수 있습니다.(+-모두) 이를 위해 y를 가장 잘 맞추는 w들을 찾으면 좋은 모델을 만든 것이라고 할 수 있습니다. 그래서 w는 학습을 하면서 계속 바꾸어가면서 좋은 값인지 아닌지를 확인하는 과정을 거칩니다.

 

아래는 조금 더 복잡하지만 자세하게 정리된 내용입니다.

X는 입력값을 행렬로 표시했고, x0 = 1 은 바이어스 입니다. 자연스럽게 발생하는 오차를 보정하기 위해 사용한다고 생각하시면 좋겠습니다. 아웃풋을 z로 표시했고 이러한 z값을 만들기위해 함수(h(w^T x))를 이용합니다. x는 자연수(integer), w는 실수(float), z는 논리값(boolean)입니다.

처리는 앞서 설명한 간단한 그림의 내용과 같습니다. 입력 받은 x1, x2,...xD를 가중치 w와 곱해서 모두 더한 값을 아웃풋으로 출력하는 내용입니다. 이러한 계산은 아래와 같이 2단계의 절차를 거칩니다. 

왜 두단계로 나누어 졌을 까요? 앞에서 설명한 내용은 첫번째 단계에서 하는 내용 같은데 두번째 단계에서는 무엇을 하는 것일까요? 왜 필요할까요?

 

Activation Function

존재의 이유를 찾는 방법중하나는 그 존재가 없으면 어떻게 되는 지 생각해 보는 것입니다. 그래서 첫번째 단계만 계산하고 출력해보겠습니다 x0 =1, x1 = 1,  x2= 1, w0 = 0, w1 = 0.5, w2 = 1 이라고 가정 하겠습니다. 이를 활용해서 첫번째 단계를 계산해보면 

a = x0 * w0 + x1 * w1 + x2 * w2 = 1 * 0 + 1 * 0.5 + 1 * 1 =  1.5 입니다.

이런 우리가 원하는 z값은 0과 1사이의 값인데 1.5가 나왔습니다. 아~ 입력값과 가중치를 곱해서 모두 더하면 1을 넘는 값이 나올 수 있군요. 우리가 원하는 것은 0또는 1이므로 이것을 변환해주는 함수가 필요하겠습니다. 이러한 함수중 하나가 스텝 함수 입니다.

계산값 1.5는 0보다 크므로 스텝함수는 1을 반환합니다.

이처럼 입력과 가중치를 곱해서 나온 값을 입력으로 받아서 변환해주는 함수를 Activation Function이라고 합니다.

 

Inspired

퍼셉트론은 사람 뇌의 신경세포에서 영감을 받아 만든 것입니다. 그래서 아래의 신경세포 구조와 퍼셉트론을 비교해보면 매우 유사한 것을 느끼 실 수 있습니다.

살짝 이상하게 들릴 수도 있지만 끼워 맞추어 보면, 수상돌기는 외부로부터의 자극을 받아들이는 기능으로 인풋 x와 같고, 핵은 첫번째 단계의 계산을 처리하는 곳으로 외부 입력과 가중치를 계산하는 곳 같고, 축삭은 처리된 자극을 다음 뉴런에게 전달할지 말지를 결정하는 것 같아서 두번째 단계의 계산을 처리하는 액티베이션 함수(Activation Function)와 같아 보입니다. 그리고 마지막으로 축삭 말단은 다음 뉴런으로 전달해주는 역할로 y 값이 되겠네요. 

 

이러한 퍼셉트론은 여러개를 이어붙여서 다층 퍼셉트론(MLP)을 만들 수도 있습니다.  그 모양은 아래와 같이 딥러닝의 구조와 유사합니다. 딥러닝의 아버지라고 할까요?! ^^



 

 

소스

https://slidetodoc.com/neural-networks-part-1-introduction-cse-4309-machine/

 

Neural Networks Part 1 Introduction CSE 4309 Machine

Perceptrons and Neurons • Perceptrons are inspired by neurons. – Neurons are the cells forming the nervous system, and the brain. – Neurons somehow sum up their inputs, and if the sum exceeds a threshold, they "fire". • Since brains are "intelligen

slidetodoc.com

 

https://becominghuman.ai/multi-layer-perceptron-mlp-models-on-real-world-banking-data-f6dd3d7e998f

 

Multi layer Perceptron (MLP) Models on Real World Banking Data

A multi layer perceptron (MLP) is a class of feed forward artificial neural network. MLP consists of at least three layers of nodes: an…

becominghuman.ai

 

반응형
반응형

 

최대가능도방법 MLE: Maximum Likelihood Estimation 

 

정의

최대가능도법 MLE에 대해서 알아보겠습니다.

아래는 위키에서 정의된 내용입니다.

최대가능도방법 (最大可能度方法, 영어: maximum likelihood method) 또는 최대우도법(最大尤度法)은 어떤 확률변수에서 표집한 값들을 토대로 그 확률변수의 모수를 구하는 방법이다. 어떤 모수가 주어졌을 때, 원하는 값들이 나올 가능도를 최대로 만드는 모수를 선택하는 방법이다. 점추정 방식에 속한다.

한글로 쓰여진 내용인데 이해하기가 어렵네요 ㅠㅠ   쉽게 정리해 보겠습니다.

 

먼저 가능도(Likelihood)를 알아야 합니다. 필수 입니다. 그 다음에 최대로 만드는 방법을 설명하면 좋을 것 같습니다. 

가능도는 전에 올렸던 포스팅에서 정리된 내용을 참고하시지요. (지난 포스팅은 https://bigdatamaster.tistory.com/155 여기를 참고하세요.)

간단히 정리하면

  가능도는 변수와 관측값을 가지고 모집단에서 해당 관측값이 추출될 확률을 말합니다.

 

가능도도 결국 확률이라고 설명했는데 그럼 무엇이 다른 것일까요? 이 질문에 정확한 답을 못하시면 이전 포스팅을 이해하시고 아래 내용을 봐주시면 좋겠습니다. 연속 확률인 경우에 가능도를 계산하기 위해서는 그 분포에 해당하는 PDF 확률밀도 함수를 이용합니다. 대상에 해당하는 확률밀도함수를 이용해서 샘플의 (구간)확률 값을 구해서 가능도를 구할 수 있습니다. 가능도를 정확하게 이해하는 것이 최대가능도법 MLE를 이해하기 위해서는 필수 입니다.  그럼 최대가능도법(MLE)는 무엇일까요? 최대가능도법은 말 그대로

가능도 값을 최대로 만들게하는 값을 찾는 방법/함수

입니다.

 

 

Example

직관적으로 이해를 위해 예를 들어보겠습니다. FC서울이 이번 시즌에서 FC수원과의 38 경기중에 30번을 이겼습니다. 이 번주에 열리는 수원과의 경기에서 FC서울이 승리할 확률은 얼마가 될까요?  여러분도 직관적으로 생각하실 수 있을 껍니다. 바로 30/38 = 79% 라고 생각하실 껍니다. 네 맞습니다. 이것이 최대가능도법의 결과 입니다.  이전의 가능도 포스팅에서 설명한 바와 같이 이항(베르누이)분포의 경우 아래와 같은 공식으로 가능도를 계산할 수 있습니다.

이항분포 확률질량함수(PMF)

n은 전체 게임수, k는 승리한 수, θ는 추정해야할 변수 입니다.

FC서울의 승률을 0.1이라고 가정하고 위의 공식에 대입하여 가능도를 구하면 아래와 같습니다.

결과 값이 P(D|θ) = 0.00000000000000000000211 입니다. 한 마디로 승률이 0.1일 가능성이 매우 작다는 의미 입니다.  그럼 승률을 0.7로 가정하고 다시 공식에 대입해 보겠습니다.

이말은 승률이 0.1일때 보다 0.7일 가능성이 훨씬 높다(0.072)고 해석 할 수 있습니다.

θ값을 최대로 만들기 위해서는 가능도 함수를 θ를 가지고 편미분했을 때 값이 0이되는 θ값을 찾으면 됩니다.

θ에 0, 1, k/n을 대입해 보면 θ가 0 또는 1일때 가능도가 0이 됩니다.  그리고 k/n을 대입했을때 최대값이 나옵니다. 그래서 가능도를 최대로 만들어주는 θ 값은 k/n 입니다.

 

이 예시는 데이터가 승리/패배로 구분되는 이항분포였기 때문에 이항분포 확률질량함수(PMF)를 사용하였습니다.  분포에 맞는 확률질량함수나 확률분포함수를 이용해서 구할 수 있습니다.

 

 

SUMMARY

최대가능도법(MLE)는 가능도(Likelihood)를 최대한으로 높이는 θ를 찾는 방법입니다.

확률질량함수(PMF) 또는 확률밀도함수(PDF)를 통해 계산합니다.

PMF나 PDF는 분포에 따라서 계산 방식이 다릅니다.

MLE를 이용해서 모르는 값을 최대한 정확한 수준으로 추정할 수 있습니다.

 

 

 

 

 

 

 

참고자료

https://medium.com/towards-data-science/a-gentle-introduction-to-maximum-likelihood-estimation-and-maximum-a-posteriori-estimation-d7c318f9d22d

 

A Gentle Introduction to Maximum Likelihood Estimation and Maximum A Posteriori Estimation

Getting intuition of MLE and MAP with a football example

towardsdatascience.com

 

 

반응형
반응형

가능도/우도/Likelihood

 
인공지능/머신러닝/통계에서 중요하면서 기본적인 용어중 하나인 likelihood에 대해서 알아보겠습니다.
쭉~ 편한게 한번 읽어 내려가고 나면 가능도에 대한 이해가 되도록 작성해 보았습니다. 최대한
항상 그렇듯이 위키백과 위키피디아에서 먼저 정의를 찾아봤습니다.

 

위키피디아

가능도

통계학에서, 가능도(可能度, 영어: likelihood) 또는 우도(尤度)는 확률 분포의 모수가, 어떤 확률변수의 표집값과 일관되는 정도를 나타내는 값이다. 구체적으로, 주어진 표집값에 대한 모수의 가능도는 이 모수를 따르는 분포가 주어진 관측값에 대하여 부여하는 확률이다. 가능도 함수는 확률 분포가 아니며, 합하여 1이 되지 않을 수 있다.

정의

확률변수 X 가 모수 θ 에 대한 확률분포 Pθ(X)를 가지며,  X가 특정한 값  x로 표집되었을 경우, θ 가능도 함수 L(θ |x) 는 다음과 같이 정의된다.

예 2

동전을 던져서, 앞면(H)이 나오는 확률을p_H 라고 하자. 이때, 앞면이 두번 나오는 확률은 p_H^2이다.
만약 p_H=0.5 일 경우, 두번 모두 앞면이 나올 확률은 0.25이다:
P(HH | p_H=0.5)=0.25
이를 통해, 관측결과가 HH 라면, p_H=0.5 의 가능도는 0.25라고 말할 수 있다.
L(p_H=0.5|  HH)=P(HH | p_H=0.5)=0.25
그러나 이것은 관측결과가 HH라면, p_H=0.5 의 확률은 0.25 이라고 말하는 것과 같지 않다.
이를 위해서는 베이지안 추론의 개념이 필요하다. 특히, 베이 즈 정리 (Bayes 's theorem)는 사후 확률 (밀도)이 가능도 (likelihood)과 사전 확률에 비례함을 말한다.
 
잘 이해가 안되서 다시 정리해 보았습니다.

 

 
 

개요

확률은 관측값(x)를 입력해서 얻은 값입니다. x가 발생할 가능성을 표시한 것이 확률입니다. Pr(x)로 표시합니다. 그런데 위에서 표시된 가능도의 공식에서 가능도는 Pr(X=x|θ) 로 되어있습니다. Pr, X, θ라는 조건이 더/다르게 들어있습니다.  즉, 확률과는 다르게 θ까지 추가로 고려한 확률을 가능도라 부릅니다. 여기서 θ는 모수의 확률분포를 계산하는 데 사용되는 변수 입니다. 아주 간단히 말하면 가능도는 관측치(x)와 확률함수의 변수(θ)를 가지고 계산된 값입니다. 확률함수는 확률밀도함수 또는 확률질량함수를 말합니다. 연속 확률 분포에서는 확률계산을 위해 확률밀도함수(PDF)를 쓰고 이산 확률 분포에서는 확률질량함수(PMF)를 씁니다. 아래에서 예를 들어보겠습니다.

 

 

Example

 

이산 확률분포(이항분포) : 동전 던지기 예시 

이항분포이기 때문에 확률질량함수를 사용합니다.

이항 분포 확률질량함수(PMF) 는 아래와 같습니다.

n : 전체 실험수, k : 사건 발생 수, p : 사건 발생 확률

우리는 이미 동전을 던질때 앞면(H)/뒷면이 나올 확률이 0.5라는 것을 알고 있습니다. 즉, p가 0.5인 것을 알고 있습니다. 그래서 앞면이 두번 나올 확률을 계산하면 다음과 같습니다.

P(H) = 0.5라고 할때, P(HH) = P(H) * P(H) = 0.5 * 0.5 = 0.25

그럼 가능도는 얼마일까요? 공식은 L(θ|x) 입니다.  확률질량함수는 위에서 정의된 것을 이용하면되고 그 안의 (θ)변수 p 를 0.5로 입력해서 계산하면 아래와 같습니다.

L(θ|x) = Pr(X=x|θ) =  Pr(X=HH|0.5) = (2, 2)* 0.5^2 * (1-0.5)^(2-2) = 0.5 * 0.5 = 0.25

확률 값과 가능도 값이 같네요. 이말을 풀어서 설명하면

(확률로 설명) 동전을 던져서 앞면이 나올 확률이 0.5인 동전을 두번 던져서 앞면이 두번 나올 확률은 0.25이고,

(가능도로 설명) 동전을 던져서 앞면이 나올 확률(θ)이 0.5인 경우 동전을 두번 던져서 앞면이 두번 나올 가능성이 0.25이다. 다른 점은 확률(θ)를 입력 변수로 사용한다는 것입니다. 그럼 앞면이 나올 확률값을 0.4를 바꾸어서 계산해 보겠습니다.

(n, k)p^k (1-p)^(n-k)

= 0.4^2 = 0.16

이 결과는 앞면이 나올 확률값이 0.4인 동전을 두번 던져서 앞면이 두번 나올 가능성은 0.16이다.라는 의미입니다. 이번에는 0.8로 바꾸어서 계산해 보겠습니다.

0.8^2 = 0.64

이 결과는 앞서 설명한 내용과 유사합니다.  앞면이 나올 확률값이 0.8인 동전을 두번 던져서 앞면이 두번 나올 가능성은 0.64 이다. 라는 말입니다. 생각해보시지요. 동전이 두 종류가 있습니다. 하나는 앞면이 나올 확률이 0.4이고 다른 하나는 앞면이 나올 확률이 0.8입니다.  둘중에 어떤 동전을 선택했는지는 모르지만 둘중 하나의 동전을 선택해서 던진다고 가정할 때 두번 모두 앞면이 나올 가능성을 계산할 수 있습니다. 0.4 동전을 던지면 가능성이 0.16이고 0.8인 동전을 두번 던지면 0.64 가능성이 있습니다. 이처럼 동전의 앞면 확률(사전확률)이 얼마인지 모를때 가능도를 계산해서 어느 동전일 가능성이 높은 지(사전확률을)를 계산해서 찾을 수 있습니다. 이경우 가장 가능성이 높은 동전의 앞면확률을 찾으면 당연히 1인 동전이 되겠지요.(왜냐하면 1일때 가능도가 1(100%)가 되니까요.) 이처럼 최대 가능도를 찾을 수 있는데 이를 최대가능도법(MLE)라고 합니다.  

 

 

정규분포 : 키 측정 예시

이번에는 정규분포의 설명을 위해 한사람의 키를 가지고 설명해 보겠습니다.

정규분포함수 확률밀도함수(PDF)

= f(x) = 1 / σ√2π * e^(-1/2 * ((x-u)/σ)^2)

 

정규분포의 확률을 계산하려면 확률밀도 함수를 사용합니다. 이를 이용하려면 확률밀도함수 공식에 있는 모평균(u), 즉 실제 키를 알아야하 합니다. 다른 말로 설명하면 실제 키를 알야야 확률을 구할 수 있습니다. 이 말은 실제키가 170일때 측정값 169가 나올 확률이 얼마인지를 계산할 수 있다는 말입니다. 표준편차(σ)는 1이라고 가정하고 위의 공식에 대입해 보겠습니다.

f(x) = 1 / σ√2π * e^(-1/2 * ((x-u)/σ)^2)
= 1 / √2π * e^(-1/2 * (169-170)^2)
= 1 / √2π * e^(-1/2 * 1)
= 1 / 2.5066 * e^(-1/2)
= 1 / 2.5066 * 0.6065 
= 0.2419

 

정규분포의 가능도를 계산해보겠습니다.

똑 같은 가정, 즉, 실제 키가 170이고 표준편차가 1이라면 확률값과 가능도는 일치합니다. 그러나 실제 키와 표준편차를 모를 때는 확률을 구할 수 없습니다. 그대신 가능도를 구합니다. 왜냐하면 가능도는 169가 평균이 170일때 나올 가능도를 알려줍니다. 그럼 다시 평균이 169일때 나올 가능도를 구해보겠습니다.

f(x) = 1 / σ√2π * e^(-1/2 * ((x-u)/σ)^2)
= 1 / √2π * e^(-1/2 * (169-169)^2)
= 1 / √2π * e^(-1/2 * 0)
= 1 / √2π * e^(0)
= 1 / 2.5066 * 1
= 0.3989 * 1
= 0.3989

 

 

키 169는 평균이 170인 집단에서 뽑힐 가능도가 0.2419이고 평균이 169인 집단에서 뽈힐 가능도가 0.3989 로 169인 집단의 가능도가 더 큽니다. 상식적으로도 이해가 됩니다. 평균이 제일 많이 발생하는 숫자일 가능성이 높으니까 평균이 170일때 보다는 (같은 값인) 169일때 더 뽑힐 가능성이 높습니다.

 

이해가 되시나요?! ^^

 

 

Summary

지금까지 가능도에 대한 정의와 실제 예를 들어 그 값을 계산해 보았습니다. 

다시 정리하면 가능도는 관측치(x)와 확률함수의 변수(θ)를 가지고 계산된 값입니다. 이 계산 방법은 분포마다 다릅니다.

정규분포의 확률을 구하려면 실제 집단의 평균(모평균)을 알아야 하는데 대부분이 모르는 경우이기 때문에 계산할 수 없고, 이런 변수들을 추정값으로 이용하여 가능도를 구할 수 있습니다.

의문이 듭니다. 가능도는 가정한 변수를 통해 얻은 값이라 정확하지도 않을 것 같은데 이러한 가능도는 어디에 어떻게 쓸수 있을까요?

위에서 잠깐 언급한 것처럼 최대 가능도를 갖는 변수(theta)를 구하는데 사용될 수 있습니다. 관측된 여러 값들과 추정되는 모수를 가지고 가능도를 구할 수 있는데 추정값들을 바꾸어가면서 가장 가능도가 높은 모수를 구할 수 있습니다. 이렇게 되면 모수(모평균, 모분산)등을 몰라도 가능도가 가장 놓은 모수를 구할 수 있습니다. 즉, 모르고 있던 실제 값들을 가장 높은 가능도로 알 수 있게 됩니다. 이러한 방법이 최대가능도법(MLE)입니다.

다음에는 최대가능도법(MLE)과 그 활용방법을 알아보겠습니다.

https://bigdatamaster.tistory.com/158

 

최대가능도방법 MLE: Maximum Likelihood Estimation

최대가능도방법 MLE: Maximum Likelihood Estimation 정의 최대가능도법 MLE에 대해서 알아보겠습니다. 아래는 위키에서 정의된 내용입니다. 최대가능도방법 (最大可能度方法, 영어: maximum likelihood me.

bigdatamaster.tistory.com

 

 

 

추가: 아래에 있는 위키의 예제를 보시면 이해가 되실껍니다. (설명이 조금 딱딱하긴 하네요) ^^

 

예 2

동전을 던져서, 앞면(H)이 나오는 확률을p_H 라고 하자. 이때, 앞면이 두번 나오는 확률은 p_H^2이다.
만약 p_H=0.5 일 경우, 두번 모두 앞면이 나올 확률은 0.25이다:
P(HH | p_H=0.5)=0.25
이를 통해, 관측결과가 HH 라면, p_H=0.5 의 가능도는 0.25라고 말할 수 있다.
L(p_H=0.5|  HH)=P(HH | p_H=0.5)=0.25
그러나 이것은 관측결과가 HH라면, p_H=0.5 의 확률은 0.25 이라고 말하는 것과 같지 않다.
이를 위해서는 베이지안 추론의 개념이 필요하다. 특히, 베이 즈 정리 (Bayes 's theorem)는 사후 확률 (밀도)이 가능도 (likelihood)과 사전 확률에 비례함을 말한다.

 

 

 
반응형

+ Recent posts