유전 알고리즘 : 현재 해에 정규 분포로 얻은 임의 값을 합하는 것으로서 유전 알고리즘의 변이에 해당됨 -> 진화 전략(Evolution strategy)

11.5 메타 휴리스틱
어떤 알고리즘을 구성하는 연산이 상황에 따라 보다 구체적인 알고리즘으로 대체되는 성질을 가진 경우
초기 값에 따라 값이 달라질 수 있으므로 여러개의 초기값으로 수행 후 가장 좋은 것을 취함
Posted by 공놀이나하여보세
,
class discovery
supervised learning : 샘플의 부류 정보가 주어진 상황에서의 학습
unsupervised learning : 부류 정보가 없음

10.2.2 거리와 유사도 측정
Minkowski 거리 : 가장 널리 쓰이는 거리 척도
p를 변화시키면 여러가지 거리 척도를 만들 수 있다.
유클리디언 거리 : p=2, 가장 널리 사용함
도시 블록 거리(맨하탄 거리) : p= 1

군집화 알고리즘 : 계층, 분할, 신경망, 통계적 탐색
10.4 계층 군집화 알고리즘(hierarchical clustering)
A. 응집 : 작은 군집들에서 출발하여 이들을 모아 나감
B. 분열 : 큰 군집에서 출발하여 이들을 나눔

10.5 분할 군집화(partitional clustering)
- 대부분은 미리 군집의 개수 k를 알려주어야 함
10.5.1. 순차 알고리즘 : 샘플을 순차적으로 군집에 할당
각 샘플을 차례로 살펴보고 가장 가까운 군집까지의 거리가 임계값보다 작으면 그 군집에 속하는 것으로 간주하여 그 군집에 넣는다.
군집의 개수를 자동으로 찾아준다.
임계 값을 지정해 주어야 하는데 추정하기가 어렵다.
10.5.2. k-means : 초기 분할을 가지고 출발하여 계속 개선해 나감
가장 인기가 높고 널리 쓰이는 군집화 알고리즘
k개의 군집 중에 가장 가까운 것을 찾아 그것에 배정하고 군집의 중심을 평균으로 대치한다.
그리고 평균을 중심으로 가장 가까운 것을 찾아 배정한다.
위를 반복 후 변경이 없을 때까지 돌린다.

- MST알고리즘 : 그래프 표현을 만들고 그것을 분할해 나감
- GMM 알고리즘 : 가우시언 분포를 추정하고 그것에서 군집을 찾음
가우시안 알고리즘 -> EM알고리즘

10.6 신경망
군집화를 풀기위해 개발된 신경망 : SOM, ART
SOM(Self organizin map) 자기조직화 맵 : kohonen 네트워크
- SOM은 기본적으로 경쟁 학습(competitive learning) 사용
하나의 샘플이 입력되면 여러 개의 대표 벡터가 경쟁하는데 샘플에 가장 가까운 대표 벡터가 승자가 되어 그 샘플을 취한다.

10.7 통계적 탐색(stochastic searching)
통계적 탐색은 알고리즘 수행 중에 난수를 많이 사용한다. 이 난수가 의사 결정에 참여함으로써 해에 임의성을 부여한다. 따라서 알고리즘을 수행할 때마다 다른 해를 얻게 된다. 이러한 통계적 의사 결정에서 중요한 점은 임의성을 적절히 제어하는 것이다. 통계적 탐색을 사용하는 모든 알고리즘은 이러한 제어 기능을 가지고 있다.
10.7.1 시뮬레이티드 어닐링(Simulated annealing)
기본적으로 내리막 경사법의 구조를 따르는데 지역 최적 점을 벗어나기 위해 현재 해보다 열등한 지점으로 이동(랜덤 발생)하는 연산도 가지고 있다.
10.7.2 유전 알고리즘
해 표현, 선택, 교차, 변이, 대치를 고려해야 함
- 교차 연산 : 두 부모 해를 가지고 자식 해를 만드는데 자식은 부모와 달라지지만 특성을 이어받아야한다.
다른 알고리즘과 협력이 쉽다.-> 혼성 유전 알고리즘
유전 알고리즘이 가진 해를 k-means를 이용하여 지역 최적점으로 수렴 시킨 후 이들에 교차와 변이 연산을 가하는 것.
Posted by 공놀이나하여보세
,
(1) discriminatory(분별력)
(2) dimensionality(차원)

패턴->센싱->특징생성(특징 추출->특징선택)->분류->부류

Posted by 공놀이나하여보세
,

Hidden Markov Model의 개요: 순차 데이터나 문맥 의존 데이터를 인식하는 가장 대표적인 모델, 확률을 이용한 모델

(1) 순차 데이터 : 시간성을 갖는 데이터, 대부분 가변 길이를 가짐

(2) 문맥 의존 데이터 : 명시적으로 시간성을 갖지는 않지만 단어 간에 앞 뒤 관계가 있는 문장속의 단어나 단어속의 문자들

(3) 읽어볼만한 논문 

- HMM : rabiner89, Bilmes02, 

- 제스쳐 인식 : wang07, wu99, nam96 -> [Davis02, Rabiner93, Rabiner89]

- 컴퓨터 비전 응용 : Forsyth03, pp.550-567


7.2 마코프 모델

모델 : 수학적 특, 확률 이론을 바탕으로 개발된 확률 모델을 뜻함 (ex:  베이시언 분류기)

시간 t에서의 관측은 단지 가장 최근 r개의 관측에만 의존한다는 가정하에 만듬

0차 마르코프 체인은 과거를 전혀 보지 않고 과거에 독립적임

1차 마르코프 체인은 단지 바로 이전의 관측에만 관련이 있음

2차 마르코프 체인은 바로 이전 두 개의 관측만 본다.

마르코프 모델은 1차 마르코프 체인을 사용한다. 2차 이상은 매개변수가 너무 많아서 현실적으로 적용이 어렵다.


(1) 상태 전이

- 상태 전이 확률 행렬 : 오늘 비가 왔을 때 내일 날씨가 맑을 확률 등을 행렬로 표현함

- 상태 전이도 : state transition diagram


7.3 은닉 마코프 모델(Hidden Markov Model)로의 발전

패턴 인식이 가장 기본적으로 요구하는 작업 즉 훈련 집합으로 학습을 한 후 새로 들어오는 테스트 샘플을 높은 성능으로 분류하는 일을 위해 은익을 추가한 은닉 마르코프 모델로의 발전이 필요

HMM은 차수를 미리 고정하지 않고 모델 자체가 확률 프로세스에 따라 적응적으로 정하도록 한다.


7.3.2 HMM의 예

- 공을 담은 항아리

A. 상태에 해당하는 공 항아리에서 공을 하나 뽑고 색깔을 확인하고 다시 집어 넣는다.

B. 색깔을 o1에 기록한다.

C. 그 상태에 해당하는 카드 항아리에서 카드를 하나 뽑고 번호를 보고 다시 집어 넣는다.

D. 카드 번호의 상태로 이동한다.

E. A.부터 다시 반복한다.


7.3.3 구성 요소와 세가지 문제

- 아키텍쳐

(1) ergodic(어고딕) 모델 : 완전 연결 구조

(2) 좌우(left to right) 모델 : 상태 전이가 왼쪽에서 오른쪽으로 일어남, 음성 인식에서 주로 사용 됨


- 매개 변수

(1) 상태 전이 확률 : 오늘 비가 왔을 때 내일 날씨가 맑을 확률

(2) 관측 확률
- 비가 올 때 집에 있을 확률, 비가 올 때 외출할 확률
(3) 초기 상태 확률 벡터
- HMM(Hidden Markov Model)을 기동시킬 때 어느 상태에서 시작할 지를 결정하는데 쓰임


- 세 가지 문제

(1) 평가 evaluation

(2) 디코딩 decoding

(3) 학습 learning


7.4 알고리즘

평가와 디코딩을 위한 알고리즘은 계산 효율을 위해 동적 프로그래밍을 사용

7.4.1 평가

ⓗ : 모델 HMM이 가지는 매개변수 set ⓗ = (A, B, π) A: 상태 전이 확률 B: 관측 확률 π: 초기 상태 확률 벡터

O : 관측 벡터 (산책, 청소 쇼핑 등)

P(O|ⓗ) : 발생확률

평가 문제 : 주어진 모델 ⓗ 하에서 관측 벡터 O의 발생 확률 P(O|ⓗ)를 계산 하는 것

Q : O를 관측한 상태 열을 알고 있다고 가정

P(O,Q|ⓗ) : ⓗ가 주어진 상황에서 O가 Q에서 발생했을 확률

ex)

(1) πp1의 확률로 q1로 들어간다.

(2) q1에서 bq1(o1)의 확률로 o1을 관측한다.

(3) 전이 확률 aq1q2로 상태 q1에서 q2로 이동한다.

(4) q2에서 bqw(o2)의 확률로 o2를 관측한다.

(5) aq(T-1)qT로 상태 q(T-1)에서 qT로 이동한다. qT에서 bqT(oT)의 확률로 oT를 관측하고 마친다.

(1)~(5)의 관측과 전이를 반복하는 과정에서 발생하는 확률을 모두 곱하면 P(O,Q|ⓗ)

즉, P(O|ⓗ) = 모든 Q에 대해 P(O,Q|ⓗ)의 합

동적 프로그래밍 기법 : 전방 알고리즘 사용

- 이유 : 계산식이 너무 많아지므로 중복된 계산을 피하기 위해 사용


7.4.2 디코딩

Viterbi 알고리즘 사용

디코딩은 모델 ⓗ 하에서 관측 벡터 O를 얻었을 때 O에 해당하는 최적의 상태 열 Q를 찾는 문제

P(O,Q|ⓗ)를 기준 함수로 채택하고 이것을 최대화하는 Q를 찾는다.

Q = arg max P(O,Q|ⓗ)

* arg max(f(x))는 f(x)를 최대로 만드는 x값


7.4.3 학습

관측 벡터 O의 확률을 최대로 하는 모델 ⓗ를 찾는 문제

O로 ⓗ를 직접 구할 수는 없고 중간에 '숨어서' 매개 역할을 하는 변수가 필요하다. 이러한 변수는 이미 3.4.2절의 EM알고리즘에서 등작하였고 은닉 변수(latent variable)라 불렀다.

가우시안 혼합에서는 샘플이 독립 동일 분포에서 발생했다는 가정 하에 요소 분포들을 독립적으로 취급하는 반면 HMM은 분포들이 시간에 따라 관련성을 갖는다고 간주하고 상태 이전 확률을 개입시키는 근본적인 차이가 있다.

알고리즘에서 기대값을 구하는 단계와 우도를 최대화 하는 (Maximum likelihood) 단계로 구성된다.

*일단 더 공부하기 위해서는 다시 3.4절을 공부하고 와야할 것 같음

좌우 모델은 온라인 필기 인식이나 음성 인식 같은 응용에 주로 사용되는데 이런 응용에서는 T가 작다. 대신 하나의 관측이 주어지는 것이 아니라 여러 개가 주어진다. 따라서 다중 관측을 위한 학습이 가능하도록 알고리즘을 변경해야 한다. 이에 대해서는 [Davis02, Rabiner93, Rabiner89]를 참고


7.5 부연 설명

Cambridge 대학의 Machine Intelligence Lab이 개발한 HTK(HMM Toolkit)은 C로 구현된 공개 소프트웨어이다. 한번 사용해 보아야겠다.

Posted by 공놀이나하여보세
,

수치화할 수 없는 단어 같은 것들을 분류하는 방법
(1) 결정 트리 구조
스무 고개 방식으로 구현

(2) 스트링 인식기
Levenshtein 거리 계산
테스트 x와 원본y를 비교
x를 삽입, 삭제, 대치, 앞뒤 단어 비교 를 통해 y로 만드는 데 비용을 계산

Dynamic Programming의 일종
최장 공통 부분 스트링(Lonest common substring) 문제가 됨

Posted by 공놀이나하여보세
,

여백이라는 개념을 분류기 설계에 도입하고 여백을 극대화하는 결정 초평면을 찾아내는 것
(1) 사용자가 설정해야하는 매개 변수가 적다.
(2) 주어진 문제에 대해 최적의 커널을 자동으로 선택해주는 것이 없다. 휴리스틱하게 선택
(3) 일반화 능력이 뛰어나다.
(4) 비선형 SVM에서는 인식 시간이 서포트 벡터의 개수에 비례한다.
(5) 학습 알고리즘 구현이 까다롭다.

*특징
Deterministic 알고리즘
적은 parameter로 정형화할 수 있음
kernel trick을 이용해 쉽게 사용 가능
SVM은 임의의 degree의 polynomial function을 linear time에 배울 수 있음
(1) Linear SVM : 직선 한개로 두 부류를 나눔
(2) Nonlinear SVM : dimension을 바꾸어 boundary를 직선으로 바꿈
- kernel trick 사용
- RBF kernel을 사용하여 여러 모양의 boundary를 만듬
- SVM 구현 : LIBSVM(python 사용 가능), SVM-light

Posted by 공놀이나하여보세
,

4.2.2 학습과 인식
패턴 인식의 학습 알고리즘
(1) 분류 과정을 수학식으로 표현
(2) 비용 함수(분류기의품질 측정) 를 정의
(3) 비용 함수를 최대 또는 최소로 하는 값을 찾는 알고리즘 설계
이 알고리즘이 학습 알고리즘 또는 훈련 알고리즘

Posted by 공놀이나하여보세
,

확률을 어떻게 추정할 지
3.2 최대 우도

Posted by 공놀이나하여보세
,

2.1 확률과 통계
2.1.1 확률 기초
(1) 조건부 확률
(2) 결합확률
- 두 랜덤 변수가 서로 영향을 미치지 못하면 둘은 독립(independent)
- 독립인 두 랜덤 변수는 P(X,Y) = P(X)P(Y)
(3) 우도 함수 (likelyhood) :
(4) 사후 확률 : 사건 Y가 일어난 후 Y가 어디서 나왔을 지를 확률로 계산
(5) 베이스 정리
P(X,Y) = P(Y,X)
P(X)P(Y|X) = P(Y)P(X|Y)

2.1.2. 평균과 분산
표준편차 : 분산의 제곱근(루트)
공분산 : 랜덤 벡터를 구성하는 랜덤 변수간의 관계

2.1.3 확률 분포의 표현과 추정
정규분포, 세개의 모드를 가진 분포

2.2. 베이시언 분류기
우도는 부류가 주어진 조건하의 조건부 확률이므로 부류조건부 확률(class-conditional probability)이라고도 부른다.

최소 위험 베이시언 분류기(Minimum risk Bayesian classifier)
우도비(likelihood ratio) : p(x|w1)/o(x|w2)
M부류 최소 위험 베이시언 분류기

2.3 분별함수
최소 오류 베이시언 분류기, 최소 위험 베이시언 분류기

2.4 정규 분포에서 베이시언 분류기
(1) 사전 확률은 표현과 계산이 비교적 쉽다. 하지만 우도의 추정은 경우에 따라 쉬울 수도 있고 어려울 수도 있다.

*가우시언 분포(Gaussian distribution) : 정규분포

(2) 이 절의 목표

a. 2.30의 베이시언 분류기를 그대로 이용함

b. 우도 p(x | wi)가 정규 분포를 따르는 특수한 경우에 대해 분류기가 가지는 성질을 분석하는 것이 목적

c. 특히 두 부류의 영역을 나누는 결정 경계가 어떤 모양을 갖는지에 대한 분석


2.4.1 정규 분포와 분별 함수





2.5 베이시언 분류의 특성
실제 확률 분포를 안다고 가정하면 베이시언 분류기는 오류율 측면에서 최적
베이시언 분류기를 만들기 위해서는 사전 확률과 우도를 추정해야 한다.
- 나이브 베이시언 분류기 : 특징들이 모두 독립이라는 가정을 하고 차원의 저주를 피하는 방법
특징들이 독립이라는 가정은 매우 강한 가정이다. 실제 세계는 그렇지 않다.

2.6 기각 처리
판단하기 애매한 것은 기각 처리함

Posted by 공놀이나하여보세
,

책 요약

(1) 스팸 필터링
A. 규칙 기반 분류기 : 메시지가 스팸이었는지 아니었는지를 가리키는 규칙들을 사람이 설계
- 문제 : 스패머가 규칙들을 모두 배워 필터 규칙을 피해가도록 명백한 행동을 그만 둠

처음이나 메시지를 받았을 때 사용자가 알려준 정보를 학습하는 프로그램

(2) 문서와 단어
- 문서 분류를 생각할 때 항목은 문서가 되고 특성은 문서 내 단어

(3) 분류기 훈련시키기
- 바르게 분류된 문서 예가 많을수록 분류기가 바르게 판단할 가능성이 높아진다.

(4) 확률 계산
- 각 분류별로 메일 메시지 출현 횟수를 알았으니 다음 단계에는 이 숫자들을 확률로 변환
- 어떤 단어가 특정 분류에 있을 확률은 해당 분류에 있는 문서에 그 단어가 나타난 횟수를 그 분류에 있는 전체 문서 개수로 나눈 값으로 계산

A. 조건부 확률 : Pr(A | B) 주어진 B에 대한 A의 확률
B. 가장 확률 : 0.5로 시작하여 학습 데이터에서 적게 학습 되는 데이터들의 오분류를 막음
C. 다른 사람이 이미 학습시킨 스팸 필터에서 얻은 확률을 가장 확률로 사용할 수 있다.

(5) 기본 분류기
- 특정 단어를 포함하고 있는 분류로부터 문서 확률을 얻었으므로 전체 문서가 주어진 분류에 속할 확률을 계산하기 위해 개별 단어 확률을 결합할 방법 필요

A. 나이브 베이지안 분류기
- 나이브 : 결합하는 확률이 서로 독립적이라는 가정
- 주어진 분류에 전체 문서가 속할 확률을 계산
- 베이스 정리에 대한 간략한 소개
Pr(A | B) = Pr(B | A) * Pr(A) | P(B)
- 분류 선택 : 새로운 항목이 어떤 분류에 속할지를 결정
스팸 필터의 경우 좋은 메일 메시지가 스팸으로 분류되지 않는 것이 모든 스팸 메시지를 잡아내는 것보다 더 중요
스팸 필터의 경우 Bad로 필터링 되는 경계값을 보통 3으로 설정해서 Good으로 분류될 확률에 비해 3배 더 높도록 정한다.

(6) 피셔 방식
- 주어진 문서 내의 각 특성이 특정 분류에 있을 확률을 계산
- 확률들을 결합하고 그 확률 집합이 무작위 집합에 비해 더 가망성이 높은지 검사
- 서로 비교할 수 있는 각 분류별 확률을 리턴
A. 특성별 분류 확률
한 문서에 특정 특성이 주어졌을 때 그 문서가 특정 분류에 속할 가능성을 먼저 계산
Pr(Category | Feature) - 이 분류 내 해당 특성을 가진 문서 수 / 이 특성을 가진 전체 문서 수


(11) 다른 기법들

4장의 신경망 사용 가능

9장의 SVM사용 가능


정리

* 베이지안 분류법

1. Bad문서들 중에 Casino라는 단어가 나타날 확률과 Bad문서들 중 Python이 나올 확률을 계산

2. Casino라는 단어가 나왔을 때 문서가 Bad일 확률을 계산하여 판단

장점 :

단점 :


* Fisher Method

1. Casino라는 단어가 나온 문서를 먼저 추출

2. 이 문서들 중 Bad분류로 된 확률을 계산

3. Casino라는 단어가 나왔을 때 2번의 확률로 판단

장점 :

단점 :


ETC.

메일을 문서로 생각하고 문서 중 스팸을 걸러냄
단어를 이용해 스팸을 걸러냄
Supervised Learning 임
서버에서 별도로 filtering할 수도 있고 처음부터 금지어가 있을 수 있다.
scikit library 찾아보기

Posted by 공놀이나하여보세
,