pbj0812의 코딩 일기

[패턴인식_오일석] 1장. 소개 본문

강의_자격증 요약/독후감

[패턴인식_오일석] 1장. 소개

pbj0812 2018. 3. 8. 18:47


chap1.ppt

(url : http://cv.jbnu.ac.kr/index.php?mid=pr)


- 인식(recognition)은 인간에겐 쉬운 일이지만, 기계에겐 어려운 일이다.


- 패턴 인식은 현재에도 상용화 되고 있다.(우편물 주소 분류, 지문 인식, 동작 인식 등...)


- 인식에는 여러 종류가 있지만 '지능'에서 가장 중요한 것은 상황 인식이다.


- 패턴 인식의 처리 과정 : 패턴 -> 특징 -> 분류 -> 부류


- 훈련 집합(trining set) + 테스트 집합(test set) = 데이터베이스


- 샘플을 분류하기 위해서는 사용할 특징을 추출해야 한다.

1) 개별적인 화소를 특징으로 삼으면 각 픽셀의 모음인 차원 벡터



를 특징 벡터(feature vector)라고 한다.


2) 8*8 픽셀의 형태라고 한다면 각 픽셀에 색이 존재한다면 1, 없다면 0이라고 할 수 있다. 이를 각 군집으로 묶으면(ex : 상하, 좌우를 1:4, 5:8로 나눈다던지...)  하나의 특징으로 볼 수 있다.


3) 이렇게 나누었을 때 서로 다른 부류를 잘 구별해 주느냐와 관련한 척도를 특징의 분별력(discriminating power) 이라고 한다.


4) 중요한 것은 특징을 몇 개를 사용하냐는 것인데, 하나만 있어도 될 수 있고, 여러 개 있어야 될 수도 있다. 특징 벡터가 늘어나면 계산량도 증가하게 된다.(차원의 저주(curse of dimensionality))


- 어떤 패턴이 들어왔을 때 이것을 M 개의 불 중의 하나로 할당해 주는 작업을 분류(classification)라 하고, 이 작업을 담당하는 프로그램을 분류기(classifier) 라고 한다.


- 분류 순서 : 모델 선택 -> 학습 -> 성능 평가


- 모델 선택 : 직선으로 분류를 할 것인지, 곡선으로 분류를 할 것인지에 대한 작업이다. 여기에 추가하여 신경망의 크기를 어느 정도로 할 것인지 등이 있다.


 선형 유무 | 차원

2차원 

3차원 

4차원 이상 

 선형

결정 직선 

결정 평면 

결정 초평면 

 비선형

결정 곡선 

결정 곡면 

결정 초곡면 


- 성능 평가

* c =  맞춘 샘플 수, r = 기각한 샘플 수, e = 틀린 샘플 수, N = c + r + e

이라고 할 때,


정인식률 = c / N(전체)

기각률 = r / N

오류율 = e / N


실제 값 | 분류 결과 

 참

거짓 

참 

n11 

n12 

 거짓

n21 

n22 


거짓 긍정률(FPR, False Positive Rate) = n21/(n21 + n22)

실제 값이 거짓인 수에 대하여 참이라고 분류된 수의 비율

거짓 부정률(FNR, False Negative Rate) = n12/(n12 + n11)

실제 값이 참인 수에 대하여 거짓이라고 분류된 수의 비율


정확률(precision) = n11/(n11 + n21)

분류 결과 참인 수에 대하여 실제 값이 참인 수의 비율

재현률(recall) = n11/(n11 + n12)

실제 값이 참인 수에 대하여 분류 결과가 참인 수의 비율


- 테스트 집합에 대해 보여주는 성능을 일반화(generalization) 능력이라고 한다.


- 훈련 집합에 과다하게 적응한 현상을 과적합(overfitting) 이라고 한다.(훈련 집합은 잘 들어맞지만 테스트 집합을 넣었을 경우 맞지 않는 현상이 발생한다.)


- Occam의 칼날 원리

쓸데 없이 복잡하게 만들지 말라. 모든 것이 같다면 가장 단순한 해가 가장 좋다.


- 데이터베이스가 학습과 검증으로 나눌 여유가 되지 않으면 같은 샘플을 여러 번 사용하는 재 샘플링(resampling) 기법을 사용할 수 있다.


- 패턴 인식 시스템의 개발 사이클 : 데이터베이스 수집 -> 특징 설계 -> 분류기 설계(모델 선택 + 학습) -> 성능 평가


- 패턴 인식을 푸는 문제는 완벽한 근을 구하는 분석적(analystical) 방법이 아닌 수치적(numerical) 방법을 많이 사용한다.


- 추천 사이트

1) 한국정보과학회(http://kiise.or.kr)

2) IAPR(http://iapr.org)

3) IEEE(http://ieee.org)

4) ACM(http://www.acm.org)

5) UCI(http://mlear.ics.uci.edu/MLRepository.html)

6) 전북 대학교 오일석 교수님 사이트(http://cv.chonbuk.ac.kr/~ioh)

7) 위키피디아(http://wikipedia.org/)

8) 한국어 위키피디아(http://ko.wikipedia.org/)


================ 연습문제 =================


1. UCI 리퍼지토리에 접근하여 아래 다섯 개의 데이터베이스의 특성을 조사하라. 특히 조사 항목에 부류 수, 특징 수, 그리고 샘플 수를 포함시켜라.


- iris(꽃 분류)

A : https://archive.ics.uci.edu/ml/datasets/iris

부류 : 3 

1) Setosa

2) Versicolour 

3) Virginica

특징 수 : 4

1) sepal length in cm 

2) sepal width in c-m 
3) petal length in cm 
4) petal width in cm

샘플 수 : 항목별 50

- Wdbc(유방암 관련)
A : https://archive.ics.uci.edu/ml/datasets/Breast+Cancer+Wisconsin+(Diagnostic)

- Ionosphere(전리층)
A : https://archive.ics.uci.edu/ml/datasets/ionosphere
 

- Letter(알파벳 필기체)

A : https://archive.ics.uci.edu/ml/datasets/letter+recognition

알파벳 대문자, 20가지 폰트


- Segmentation(이미지 분류)

A : http://archive.ics.uci.edu/ml/datasets/image+segmentation


2. Wikipedia에 접속하여 아래 용어에 대해 조사하고 각각을 200단어 내외로 요약하라.


- Support vector machine

A : 지도 학습 모델의 한 종류, 분류와 회귀 분석을 위해 사용함. 학습 데이터 점과 차이가 커질수록 오류가 작아지기 때문에 가장 가까운 학습 데이터와 가장 먼 거리를 가지는 초평면을 가져야 한다. 아래 그림을 보면 좋은 분류를 하기 위해서는 H2와 같이 데이터와 분류기가 멀리 떨어져야 함을 알 수 있다.



위와 같이 선형 분류로만 나눠 진다면 좋겠지만, 그렇지가 않은 경우가 많다. 이런 문제를 해결 하기 위해서는 차원을 늘려줘야 하는데, 차원을 늘리게 되면 계산량이 증가하게 되므로, 커널 함수 k(x, y) 를 통하여 효과적으로 계산할 수 있도록 한다. 



위의 사진은 커널 함수를 통하여 구한 초평면으로 분류를 한 것이다. 예를 들면 2차원을 3차원으로 늘려서 평면으로 잘랐다 이런 느낌인 것 같다.


- Principal component analysis

A : 주성분 분석, 고차원의 데이터를 저차원의 데이터로 환원하는 기법, 

데이터 집합의 전체 평균이 0이라고 가정하면, (아닐 경우 평균을 데이터 집합에서 뺀다) 데이터 집합 x의 주성분 w1은 다음과 같이 정의된다.

(arg max는 함수f(x)의 값을 최대로 만드는 x를 가리킨다.)


- Hidden Markov model

A : 통계적 마르코프 모델 중 하나, 시스템이 은닉된 상태와 관찰 가능한 결과의 두 가지로 이루어 졌다고 보는 모델. 관찰 가능한 결과를 야기하는 직접적인 원인은 관측될 수 없는 은닉 상태들이고, 오직 그 상태들이 마르코프 과정을 통해 도출된 결과들만이 관찰될 수 있기 때문에 '은닉'이라는 단어가 붙게 되었다. 은닉 마르코프 모델은 시간의 흐름에 따라 변화하는 시스템의 패턴을 인식하는 작업에 유용하다. 예를 들어 음성 인식, 필기 인식(en:Handwriting recognition), 동작 인식(en:Gesture Recognition),[7] 품사 태깅(en:Part-of-speech tagging), 악보에서 연주되는 부분을 찾는 작업,[8] 부분 방전(en:Partial discharge),[9] 생물정보학 분야에서 이용된다.


은닉 마르코프 모델의 이산적인(Discrete) 관점에서 은닉 마르코프 모델은 복원 추출을 하는 항아리 문제를 일반화 시킨 것이라고 볼 수 있다.[16] 다음과 같은 예제를 생각해 보자. 관측자에게 보이지 않는 방이 있고, 그 안에 요정이 있다. 방에는 항아리 가 존재한다. 각각의 항아리에는 으로 이름이 붙은 공들이 섞여서 들어가 있고, 항아리의 공들이 섞인 상태는 알려져있다. 요정은 방 안의 항아리를 하나 고르고, 항아리 안에서 무작위로 공을 하나 꺼내어 컨베이어 벨트에 올려둔다. 관측자는 컨베이어 벨트 위의 공의 순서를 관측할 수는 있지만, 해당 공들이 뽑혔던 항아리의 순서는 알 수 없다. 요정이 공을 뽑을 항아리를 고를 때는 다음과 같은 특별한 규칙을 따른다 : 번째 공을 뽑기 위한 항아리는 무작위 숫자와 번째 공을 뽑기 위해 선택한 항아리에만 영향을 받는다. 현재 항아리로부터 하나보다 더 전에 선택된 항아리는 현재 항아리의 선택에 직접적으로 영향을 주지 않는다. 이러한 규칙은 주로 마르코프 특성 (Markov Property)이라 불리며, 따라서 이것은 마르코프 과정 (Markov Process) 이라고 불린다. 이에 대한 설명은 그림 1의 위쪽에 잘 나타나있다.

마르코프 과정 자체는 관측될 수 없고 오직 컨베이어 벨트 위의 공의 나열만 관측이 가능하기 때문에 "은닉 마르코프 과정"이라고 불린다. 이는 그림 1의 아래 부분에 잘 나타나있다. 그림에서 묘사된 바와 같이, 관찰자는 각 상태에서 뽑혀 나온 만을 관측할 수 있다. 심지어 관찰자가 항아리들의 내부의 공들의 비율을 알고 있고 의 세 공들을 관측했더라도 관측자는 여전히 요정이 세 번째 공을 뽑은 항아리(= 상태)를 알 수는 없다. 다만 관측자는 세 번째 공()이 각 항아리에서 뽑혔을 가능도(likelihood)와 같은 정보들에 대해서는 계산을 할 수 있을 뿐이다.


- Machine Learning

기계 학습(機械學習) 또는 머신 러닝(영어: machine learning)은 인공 지능의 한 분야로, 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야를 말한다. 가령, 기계 학습을 통해서 수신한 이메일이 스팸인지 아닌지를 구분할 수 있도록 훈련할 수 있다.

기계 학습의 핵심은 표현(representation)과 일반화(generalization)에 있다. 표현이란 데이터의 평가이며, 일반화란 아직 알 수 없는 데이터에 대한 처리이다. 이는 전산 학습 이론 분야이기도 하다. 다양한 기계 학습의 응용이 존재한다. 문자 인식은 이를 이용한 가장 잘 알려진 사례이다.


- Artificial intelligence

인공 일반 지능(人工一般知能) 또는 AGI(Artificial general intelligence)는 인간이 할 수 있는 어떠한 지적인 업무도 성공적으로 해낼 수 있는 (가상적인) 기계의 지능을 말한다. 이는 인공지능 연구의 주요 목표이며, SF 작가들이나 미래학자들의 중요한 소재이다.

인공 일반 지능은 강한 AI완전 AI, 또는 '일반 지능적 행동'을 실행하는 기계의 능력이라고도 한다.

일부에서는 '강한 AI'와 구별하여 특정 문제 해결이나 이성적 업무의 연구, 완수를 위해 사용되는 소프트웨어를 '응용 AI'(또는 '좁은 AI', '약한 AI')라 부르기도 한다.[3] 약한 AI는 강한 AI와는 반대로 인간의 인지적 능력의 모든 범위를 수행하려 시도하지 않는다.


3. 아래 저널의 가장 최근 호에 실린 논문의 제목과 초록을 조사하라. 


- IEEE Transactions on Pattern Analysis and Machine Intelligence

A : http://ieeexplore.ieee.org/xpl/tocresult.jsp?isnumber=8281092&punumber=34

- Pattern Recognition

A : https://www.sciencedirect.com/journal/pattern-recognition

- Pattern Recognition Letters

A : https://www.sciencedirect.com/journal/pattern-recognition-letters

- Pattern Analysis and Applications

A : http://www.springer.com/kr/products/journals

- International Journal on Artificial Intelligence and Pattern Recognition

A : https://www.worldscientific.com/worldscinet/ijprai


4. 기존 제품에 패턴 인식 기능을 탑재하여 부가 가치를 높일 수 있는 아이디어를 두 가지 제시하라.


5. 모바일 단말기가 탑재하고 있는 패턴 인식 기능에 대해 설명하라. 미래에 새로운 기능을 추가한다면 어떤 것이 있을까?


6. 아래 분류 문제를 풀기 위해 어떤 특징을 사용하는 것이 적당할까?

- 사과를 상, 중, 하의 세 가지 품질로 분류

- 컨베이어 벨트를 지나가는 볼트와 너트의 분류

- 지진 파에서 지진과 지진 아님의 분류

- 필기 숫자의 분류

- 인쇄 한글의 고딕, 명조, 이탤릭의 세 종류 폰트의 분류

- 얼굴 영상의 성별 분류


7. 아래 샘플 집합을 특징 공간에 그려라. 선형 분류기로 모든 샘플을 옳게 분류 할수 있나? 즉 선형 분리 가능한가?



A : 선형 분리 가능하다.


8. 필기 숫자 인식을 위해 그림 1.5의 특징 추출 알고리즘을 사용한다고 하자. 이 특징이 큰 분별력을 발휘하는 숫자 쌍과 전혀 그렇지 않은 숫자 싸의 예를 제시하라.

A

분별 쉬운 : (4, 7, 9) 

분별 어려운 : (0, 1, 8), 점의 비율이 같음 1:1


9. 예제 1.1의 상황에 대해 FPR과 FNR은 얼마인가?

A

FPR : 2/5

FNR : 1/3

 참 | 분류

참 

거짓 

참 

 2

거짓 

 2




Comments