20
Naive Bayes classifier 이이이 , 20091435 9 TH, MAY, 2013 GLOBAL SCHOOL OF MEDIA, SOONGSIL UNIVERSITY MEDIA MATHEMATICS FOR B.S COURSE

Naive bayes classifier

Embed Size (px)

Citation preview

Page 1: Naive bayes classifier

Naive Bayes classifier이희덕 , 200914359TH, MAY, 2013

GLOBAL SCHOOL OF MEDIA, SOONGSIL UNIVERSITYMEDIA MATHEMATICS FOR B.S COURSE

Page 2: Naive bayes classifier

필기 숫자 인식기

Page 3: Naive bayes classifier

문제의 이해

숫자는 0 에서 9 까지 존재하고 , 이를 컴퓨터에서는 일종의 데이터로 표현할 수 있다 .

Ex) “2”(10) → 10(2)

“ 그림”으로 된 “숫자“가 있을 때 , 컴퓨터가 숫자 “데이터”를 인식하는 방법에 대해 고려해 보자 .

분류기 2그림 “ 2” 데이터 “ 2”

Page 4: Naive bayes classifier

그림 숫자 인식

그림으로 된 숫자

모양이 “정해진“숫자

모양이 “ 정해지지 않은“

숫자

활자체 인식

필기체 인식

Page 5: Naive bayes classifier

활자

Page 6: Naive bayes classifier

활자체숫자인식

숫자의 모양이 정해져있음 .

예 ) Helvetica 체를 사용

크기와 회전정도를 같게 한다음에 일치하는지 대조

Helvetica 체의0 에서 9 까지의 숫자를 인식함(10 번의 비교 동작내의 인식가능 )

2

0 1 2 3 4 5 6 7 8 9

Page 7: Naive bayes classifier

필기체숫자인식

“ 사람의 필기체는 ‘자획구성’ , ‘ 자획형태‘ , ‘ 필순‘ , ‘ 배자‘ , ‘ 필세‘ , ‘ 오자‘ , ‘ 오용’등을 구분해 확연한 개성을 가지기 때문에 각 개인임을 분류 할 수 있습니다”- 국립과학수사연구원 필적감정사 “한정수“ 수석연구원

Page 8: Naive bayes classifier

필기체숫자인식

1. 글자를 그리는 순서로 결정> 왼손잡이 , 오른손잡이의 경우에는

2. 획의 방향으로 결정> 1 의 경우 왼쪽 , 오른쪽으로 내려 긋는 방향이 다름

3. 획의 개수로 결정> 컴퓨터에서 획의 개수를 어떻게 구할수있을까 ?한 획을 생략하는 경우에는 ?

4. 대략적인 모양의일치 확률로 결정

Page 9: Naive bayes classifier

사용된 데이터

“ 대략적인 모양의 일치 확률로 구분한다는데 , 그럼 수 없이 많은 숫자 모양에 대한 정보가 필요하지 않나요 ?”

THE MNIST DATABASE of handwritten digits약 6 만개의 0 부터 9 까지의 각각 다른 개인별 필적에 대한 정보가 있음 .http://yann.lecun.com/exdb/mnist/

28x28 의 이미지 파일 형태와 , 필기를 한 사람이 실제로 쓰려고 한 숫자 데이터 정보로 구성됨

Page 10: Naive bayes classifier

Naive Bayes classifier

사후확률은 사전확률과 우도들의 곱셈으로 구할 수 있음 .

이 문제에서의 사전확률은 ?“ 이 숫자가 , 0 부터 9 중 하나일 확률“ -> 모든 경우들이 0.1 로 동일

이 문제에서의 우도는 ? -> 우도 (“ 클래스 조건 확률“ ) 에 들어가는 조건은 ?

조건 1)픽셀이 흰색인 경우 0 으로 나타냄

조건 2)픽셀이 검은색인 경우 1 로 나타냄

Page 11: Naive bayes classifier

Navie Bayes classifier - likelihood

0,2 가 on 일때 우도 = 0,2 가 on 일 때의 개수 / 전체 데이터의 개수 = 2 / 3 = 0.6666

Page 12: Naive bayes classifier

Naive Bayes classifier

3 의 경우를 예로들어 ,{F0,0 = 0, F0,1 = 0, F0,2 = 1, …… , F8,8=0}

나이브 베이지안 모델배열의 클래스 사후확률 = 사전확률 x 배열의 시작지점 0,0 부터 끝지점 8,8 까지의 우도

0….9 까지 사후확률을 구해 최대값으로 결정

Page 13: Naive bayes classifier

Naive Bayes classifier

1 0.1

2 0.1

3 0.1

4 0.1

5 0.1

6 0.1

7 0.1

8 0.1

9 0.1

0 0.1

1 0.01

2 0.05

3 0.05

4 0.30

5 0.80

6 0.90

7 0.05

8 0.60

9 0.50

0 0.80

1 0.05

2 0.01

3 0.90

4 0.80

5 0.90

6 0.90

7 0.05

8 0.60

9 0.50

0 0.80

사전확률 3,1 이 꺼져있을때 우도 5,5 가 켜져있을때 우도

Page 14: Naive bayes classifier

Naive Bayes classifier2 인 경우 사후확률 3 인 경우 사후확률

사전확률 = 0.1 사전확률 = 0.1

2,2 픽셀이 On일경우0.8

2,2 픽셀이 On일경우0.9

5,4 픽셀이 On일경우0.1

5,4 픽셀이 On일경우0.8

6,4 픽셀이 Off일경우0.1

6,4 픽셀이 Off일경우0.8

0.0008 0.0567<

Page 15: Naive bayes classifier

Naive Bayes classifier – 과적합현상2 인 경우 사후확률 3 인 경우 사후확률

사전확률 = 0.1 사전확률 = 0.1

2,2 픽셀이 On일경우0.8

2,2 픽셀이 On일경우0.9

5,4 픽셀이 On일경우0.1

5,4 픽셀이 On일경우0.8

6,4 픽셀이 Off일경우0.1

6,4 픽셀이 Off일경우0.8

0.00008 0>8,8 픽셀이 On

일경우0.01

8,8 픽셀이 On일경우

0

Page 16: Naive bayes classifier

과적합 현상의 해결 방법

모든 우도에 아주 작은 임의 수를 더해 줄 경우 , 사후확률이 0 이 되는 경우를 방지할 수 있다 . → 0 만 피할 수 있을 뿐 , 사후확률이 아주 낮아지는 문제에 대한 긍정적인 해답은 아님

우도들의 곱과 , log10 을 취한 우도들의 합으로 대신해서 나타낼 수 있다 .

하지만 , 과적합 현상은 “컴퓨터가 기존에 수집한 데이터"를 절대적으로 신뢰하기에 인식기가 인식한 결과가 신뢰도가 낮거나 아예 일치 하지 않는 데이터가 발생할 수 있음에 유념하여야 한다 .

Page 17: Naive bayes classifier

Pseudo codeInt bayesclassifier(input[][], likelihood[][][]){

Int result[10];For(I = 0; I < 10; i++){

Result[i] = 0.1;For(j = 0; j < 28; j++)

For(k=0; k<28; k++){

if(input[j][k] == 0)Result[i] *=

likelihood[i][j][k];else

Result[i] *= (1 – likelihood[i][j][k];

}}Int max = -999;Int maxi = 0;For(int I = 0; i < 10; I++){

if(max < result[i]){

max = result[i];maxi = I;

}}Return maxi;

}

Void likelihoodcalc(input[][][], label[]){

Int numcnt[10];Double likelihood[10][28][28];For(I = 0; I < 10000; i++){

numcnt[label[i]]++;For(j = 0; I < 28; j++)

For(k=0; k<28; k++)if(input[i][j][k] == 1)

likelihood[label[i]][j][k]++;}

For(I = 0; I < 10; i++){

For(j = 0; j < 28; j++)For(k = 0; k < 28; k++)

likelihood[i][j][k] = likelihood[i][j][k] / numcnt[i];}

}

Page 18: Naive bayes classifier

Demo

Page 19: Naive bayes classifier

Q&A

Page 20: Naive bayes classifier

감사합니다 .