Transcript 발표제안1
Collective Intelligence / Chapter 9 Advanced Classification Dept. Computer Science and Information Korea University Written by 정 훈 승 챕터 소개 ♠ 본 챕터에서는 온라인 데이트 사이트에서 사람들을 중매하거나 전문가의 연락처를 검색하는 데 SVM 기법을 적용해본다. ♠ SVM(Support-vector machines)이란? 복잡한 데이터 세트를 특정 알고리즘에 적용하는 방법이다. ※ 우리말로 표현하자면 “지지벡터머신” 목 차 1 중매 데이터 세트 2 데이터를 다루는 어려움 3 기본 선형 분류 4 분류 데이터의 특성 5 데이터 축척 조성 6 커널 기법 이해 7 지지벡터머신(SVM) 중매 데이터 세트 ♠ 중매 사이트에서 아래와 같은 정보를 수집하고 있다고 가정 : 나이, 흡연 여부, 자녀 희망, 관심 목록, 거주지 ♠ 앞으로 두 변수만 다루면 시각화가 용이하기 때문에 분류기가 동작 하는 방법을 예시하는 데 나이 정보만 사용할 것이다. 데이터를 다루는 어려움 (1/4) ♠ 중매 데이터 세트는 비선형(nonlinearity) 특성과 변수간 상호 작용(interplat) 특성이란 두 가지 양상을 가진다. 산포도(scatter plot)를 만드는 메소드 데이터를 다루는 어려움 [Figure 9-1] 나이 대 나이 산포도 가로축이 남자 세로축이 여자 ●(동그라미) 표시가 궁합이 좋은 것 +(십자가) 표시가 좋지 않은 것 (2/4) 데이터를 다루는 어려움 (3/4) ♠ 의사결정트리 분류기 의사결정트리 : 각 질문에 대답 하면서 트리 내 경로를 따라 내려가면 해답에 이르는 방법 [Figure 9-2] 곡선 경계를 가진 의사결정 트리 ← No | No Match [Figure 9-3] 의사결정 트리로 생성한 경계 Yes 데이터를 다루는 어려움 (4/4) 기본 선형 분류 (1/4) ♠ 앞으로의 작업에 대비한 출발점 각 범주(class) 내 모든 데이터들의 평균을 찾고 그 범주의 중앙을 나타내는 점을 만드는 방식으로 동작한다. 그런 후 중앙 점(center point)이 가장 근접한지 판단 하여 새로운 점을 분류한다. ↗ 이 점의 범주를 구함 이 점을 평균에 더함 → 각 범주(class) 내의 점 개수를 추적함 → 점 개수로 나눠 평균을 구함 → 기본 선형 분류 (2/4) [Figure 9-4] 평균을 이용한 선형 분류기 x x X는 계산된 평균점을 나타내고 두 X들 사이에는 데이터를 나누는 선이 있다. 선 왼쪽은 불일치 오른쪽은 일치에 가깝다고 할 수 있다. 기본 선형 분류 (3/4) ♠문제점 이런 접근 방식은 [Figure 9-4]와 같은 접근방식에는 잘 동작하지만, 추후 확장을 고려하여 벡터(vector)와 벡터내적(dot-product)을 사용하는 다른 방식을 취한다. ♠ 벡터(vector) 방법 한 점에서 다른 점을 빼서 두 점을 결합하는 벡터를 만드는 방법 [Figure 9-5] 벡터의 예 기본 선형 분류 (4/4) ♠ 벡터내적 방법 첫 번째 벡터 값을 두 번째 벡터 해당 값으로 각각 곱하고 모두 더해 두 벡터에서 한 개의 숫자를 만든다. [Figure 9-6] 거리 계산에 이용된 벡터내적 각도가 90도보다 크면 코사인은 음수 값이 된다. ↓범주를 찾는 공식 분류 데이터의 특성 ♠ 분류 데이터를 숫자형으로 분류기들이 숫자 데이터만을 처리하기 때문에 숫자형으로 바꿀 방법이 필요하다. ♠ Yes / No 질문 Yes를 1로, No를 -1로 바꿀 수 있기 때문에 숫자로 바꾸기 가장 쉬운 질문이다. ♠ 관심 목록 간단한 방법 : 관심을 가지면 0, 관심을 갖지 않으면 1로 간주하는 방법이다. 직관적인 방법 : 공통 관심의 수를 사용한다. 공통 관심의 수는 정보가 사라지는 단점이 있다. 이것의 대안은 관심을 계층으로 배열 하는 것이다. 예) 스키, 스노우보드 → 겨울 스포츠 데이터 축척 조정 ♠ 새로운 변수 도입 사람의 나이만을 비교할 때는 데이터를 있는 그대로 두고 평균이나 차이를 구해도 괜찮았지만 값이 너무 작아 나이와 직접 비교하기 어려운 새로운 변수를 도입하는 경우에는 다르다. ♠ 해결방안 모든 변수 간의 차이를 비교할 수 있도록 최저값과 최고값을 결정하고, - 최저값을 0으로 - 최고값을 1로 - 그리고 다른 값을 0과 1사이의 값으로 비율을 조정 커널 기법 이해 [Figure 9-7] 다른 범주를 내포한 범주 모습 (1/2) [Figure 9-8] 점들을 다른 공간으로 이동한 예 [Figure 9-7]에서 x와 y값을 제곱한 결과 점을 변환하여 직선으로 분할될 수 있는 데이터 세트를 생성할 수 있음을 보여줌 커널 기법 이해 (2/2) ♠ 커널 트릭 벡터내적 함수를 마치 먼저 데이터를 특정 사상함수(mapping function)를 사용해서 고차원 공간으로 변환한 후 벡터내적 결과를 반환하는 새로운 함수로 대치 ♠ 변환 가능수 변환 가능수에는 제한이 없지만 실제 사용되는 것은 몇 개 밖에 없다. ♠ 방사 함수(radial-basis function) 벡터내적과 비슷해서 두 벡터를 받아 값을 반환한다. 지지벡터머신(SVM) [Figure 9-9] 선형 평균 분류기와 잘못 분류된 점들 (1/2) [Figure 9-10] 최적 구분선 찾기 [Figure 9-9]에서 평균을 사용해서 계산된 구분선이 데이터에 비해 선에 너무 근접해 있는 두 점을 잘못 분류했다. [Figure 9-10]은 각 범주 내 항목들에 걸친 평행선 중에 가장 멀리 떨어진 선을 구분선으로 선택해서 새로운 데이터 점이 어떤 범주에 속하는지 판단할 수 있다. 지지벡터머신(SVM) (2/2) ♠ 지지벡터 각 범주(class)에서 가능한 멀리 떨어진 선을 찾아 해결하려고 시도하는 최대 허용평면 ♠ 지지벡터머신 지지벡터를 찾아 이들을 이용해서 구분선을 찾는 알고리즘 ♠ 응용사례 - 얼굴표현 분류 국방 데이터 세트를 사용한 침입 탐지 단백질 순열 내의 단백질 구조 예측 필기체 인식 지진 발생시 피해 규모 판단 Do you have questions?