naive bayes classifier - digit recognition
Post on 11-Feb-2015
518 Views
Preview:
DESCRIPTION
TRANSCRIPT
Naive Bayes classifier이희덕 , 200914359TH, MAY, 2013
필기 숫자 인식기
문제의 이해
숫자는 0 에서 9 까지 존재하고 , 이를 컴퓨터에서는 일종의 데이터로 표현할 수 있다 .
Ex) “2”(10) → 10(2)
“ 그림”으로 된 “숫자“가 있을 때 , 컴퓨터가 숫자 “데이터”를 인식하는 방법에 대해 고려해 보자 .
분류기 2그림 “ 2” 데이터 “ 2”
그림 숫자 인식
그림으로 된 숫자
모양이 “정해진“숫자
모양이 “ 정해지지 않은“
숫자
활자체 인식
필기체 인식
활자
활자체숫자인식
숫자의 모양이 정해져있음 .
예 ) Helvetica 체를 사용
크기와 회전정도를 같게 한다음에 일치하는지 대조
Helvetica 체의0 에서 9 까지의 숫자를 인식함(10 번의 비교 동작내의 인식가능 )
2
0 1 2 3 4 5 6 7 8 9
필기체숫자인식
“ 사람의 필기체는 ‘자획구성’ , ‘ 자획형태‘ , ‘ 필순‘ , ‘ 배자‘ , ‘ 필세‘ , ‘ 오자‘ , ‘ 오용’등을 구분해 확연한 개성을 가지기 때문에 각 개인임을 분류 할 수 있습니다”- 국립과학수사연구원 필적감정사 “한정수“ 수석연구원
필기체숫자인식
1. 글자를 그리는 순서로 결정> 왼손잡이 , 오른손잡이의 경우에는
2. 획의 방향으로 결정> 1 의 경우 왼쪽 , 오른쪽으로 내려 긋는 방향이 다름
3. 획의 개수로 결정> 컴퓨터에서 획의 개수를 어떻게 구할수있을까 ?한 획을 생략하는 경우에는 ?
4. 대략적인 모양의일치 확률로 결정
사용된 데이터
“ 대략적인 모양의 일치 확률로 구분한다는데 , 그럼 수 없이 많은 숫자 모양에 대한 정보가 필요하지 않나요 ?”
THE MNIST DATABASE of handwritten digits약 6 만개의 0 부터 9 까지의 각각 다른 개인별 필적에 대한 정보가 있음 .http://yann.lecun.com/exdb/mnist/
28x28 의 이미지 파일 형태와 , 필기를 한 사람이 실제로 쓰려고 한 숫자 데이터 정보로 구성됨
Naive Bayes classifier
사후확률은 사전확률과 우도들의 곱셈으로 구할 수 있음 .
이 문제에서의 사전확률은 ?“ 이 숫자가 , 0 부터 9 중 하나일 확률“ -> 모든 경우들이 0.1 로 동일
이 문제에서의 우도는 ? -> 우도 (“ 클래스 조건 확률“ ) 에 들어가는 조건은 ?
조건 1)픽셀이 흰색인 경우 0 으로 나타냄
조건 2)픽셀이 검은색인 경우 1 로 나타냄
Navie Bayes classifier - likelihood
0,2 가 on 일때 우도 = 0,2 가 on 일 때의 개수 / 전체 데이터의 개수 = 2 / 3 = 0.6666
Naive Bayes classifier
3 의 경우를 예로들어 ,{F0,0 = 0, F0,1 = 0, F0,2 = 1, …… , F8,8=0}
나이브 베이지안 모델배열의 클래스 사후확률 = 사전확률 x 배열의 시작지점 0,0 부터 끝지점 8,8 까지의 우도
0….9 까지 사후확률을 구해 최대값으로 결정
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 가 켜져있을때 우도
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<
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
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];}
}
Demo
Q&A
감사합니다 .
top related