[일반인을 위한] K-MOOC
인공지능을 위한 기초수학 입문
(Introductory Mathematics for Artificial Intelligence)
이상구 with 이재화, 함윤미, 박경은
II. 인공지능과 행렬
선형대수학은 우리가 배우는 수학 중 가장 유용한 수학이라고 알려져 있습니다. 컴퓨터를 활용하는 거의 모든 응용수학은 전체 또는 부분적으로 행렬계산에 의존합니다.
이 장에서는 인공지능에 필요한 선형대수학의 기본내용과 데이터 차원 축소에 꼭 필요한 특잇값 분해(SVD)에 대하여 학습합니다.
Week 3. 데이터의 분류
3.1 데이터의 유사도
인공지능이 데이터를 바탕으로 수행하는 주요 업무는 크게 판단(decision)과 예측(prediction)으로 나눌 수 있다.
- 이미지인식으로 읽은 사진으로부터 사진 속의 사람이 누구인지 판단 - 음성인식으로 저장된 음성신호로부터 말하는 내용을 판단 - 의료영상을 인식한 후 스스로 비교 분석하여 질병의 원인과 성질을 판단 - 전자상거래의 인터넷 기록을 활용한 사용자의 과거 구매 이력으로부터 그 사용자가 어떤 상품에 관심이 있는지 예측하여 다음 구매할 상품을 추천 - 금융에서 주식의 과거의 가격과 거래 정보로부터 미래 가격의 흐름을 예측 - 바둑 대국의 현재 상황에서 어떤 위치에 다음 바둑돌을 놓을 때의 승률을 예측 |
그리고 주어진 데이터의 특징에 따라 데이터가 어느 범주(class 또는 category)에 속하는지 판단하는 것을 분류(classification)라고 한다.
주어진 데이터를 분류하기 위해서는 각 데이터마다 우리가 다룰 수 있는 (계산할 수 있는) 형태로 표현할 수 있고, 각 범주와 얼마나 가까운지 (혹은 유사한지) 계산하여 최종 판단해야 한다.
이러한 척도를 데이터의 유사도(similarity)라고 한다.
3.2 거리
그렇다면 서로 다른 두 데이터가 얼마나 유사한지 어떻게 평가할 수 있을까? 물론 데이터의 종류와 분석가의 관심사에 따라 유사도를 재는 척도는 다양하다.
가장 쉽게 생각해볼 수 있는 것은 두 데이터 사이의 거리를 계산하는 것이다. 데이터는 순서쌍(pair), 순서조(n-tuple) 또는 벡터(vector)로 표현할 수 있다.
예를 들어, 두 점 ,
사이의 거리는 다음과 같이 계산한다.
거리가 가까우면 두 데이터는 유사하다고 볼 수 있고, 거리가 멀면 두 데이터는 관계없다고 판단할 수 있다. 그리고 어떤 데이터와 어떤 범주와의 거리가 가까우면,
이 데이터는 이 범주에 속해있다고 볼 수 있다. 예를 들어, 아래 그림에서는 임을 쉽게 알 수 있으므로, “
와
는 가깝고,
와
는 멀다”, “
는
보다
에 더 가깝다”는 의미이다.
3.3 노름(norm, 크기)
벡터 에 대하여
의 크기를 다음과 같이 나타내고,
의 노름(norm)이라 한다.
(벡터의 크기 계산: 노름(norm), 2-norm)
즉 는 원점에서 점
에 이르는 거리와 같다. 따라서 두 벡터
,
에 대하여
는 두 점
와
사이의 거리(distance)가 되며, 다음이 성립한다.
위 정의는 3차원은 물론 고차원 데이터에 대해서도 동일한 형태로 확장된다. 예를 들어, 3차원 데이터 ,
에 대하여,
,
라 할 때, 다음이 성립한다.
(원점에서 점
에 이르는 거리)
*노름(norm, 크기)
참고: http://matrix.skku.ac.kr/K-MOOC-LA/cla-week-1.html
의 벡터
,
와 스칼라
에 대하여 다음이 성립한다.
(1) ,
(2)
(3)
예제 1. 두 벡터 ,
에 대하여
,
,
를 계산하시오.
3.4 노름(크기, 거리)을 활용한 데이터의 유사도 비교
예제 2. 세 개의 데이터 ,
,
에 대하여
는
와
중 어느 데이터에 더 가까운지 판단하시오.
[열린문제] 거리 척도를 사용하여 유사도를 계산할 수 있는 데이터의 종류에는 어떤 것이 있는지 생각해보시오.
[열린문제] 위의 거리 척도로 유사도를 판단하기가 용이하지 않은 데이터의 경우에 유사도를 판단하는데 사용이 가능한 다른 척도는 무엇이 있을지 생각해보시오. (Hint: 방향이 같은 데이터/벡터들의 경우)
[열린문제] 두 개의 7차원 벡터(데이터) 사이의 거리(distance)를 직접 구하시오.
(Hint: (거리를 활용한) 데이터의 유사도 <실습실> 활용)
http://matrix.skku.ac.kr/math4AI-tools/distance_similarity/
3.5 사잇각을 활용한 데이터의 비교
데이터의 유형과 분석가의 관심사에 따라 데이터 사이의 유사도를 재는 척도는 다양할 수 있다.
앞에서는 두 데이터 사이의 거리를 계산하여 유사도를 측정하는 척도에 대하여 설명하였다.
그러나 데이터 분석가가 단지 데이터의 패턴(방향)에만 관심이 있는 경우, (거리)척도는 적합하지 않다.
예를 들어, 아래와 같이 좌표평면 상에 벡터로 표현된 두 데이터 와
는 패턴(방향)은 유사하지만
거리는 매우 큰 값을 갖게 되어, (거리)척도로는 “두 데이터가 관계가 없다”고 판단하게 되기 때문이다.
3.6 코사인 유사도의 개념
단지 데이터의 패턴(방향)에만 관심이 있는 경우에는 유사도를 어떻게 측정해야 할까? 이번에 우리는 데이터의 패턴(방향)에만 관심이 있으므로,
두 데이터(벡터)가 이루는 사잇각 로 유사도를 측정할 수 있을 것이다. 예를 들어,
가 작으면 데이터의 유사도가 높고,
가 크면 데이터의 유사도가 낮다고 판단할 수 있다.
그러나 사잇각은 벡터의 내적(inner product)으로부터 정의되므로, 를 직접 계산하기 보다는 벡터의 내적을 이용하여
의 코사인 값으로 유사도를 측정한다. 이를 코사인 유사도(cosine similarity)라고 한다.
3.7 내적
먼저 두 벡터 와
의 내적(inner product)은 다음과 같이 정의된다.
그리고 내적은 다음의 성질을 만족하는데, 대부분은 실수의 곱셈이 만족하는 성질과 유사하다.
① ,
② (교환법칙)
③ (분배법칙)
④
*자세한 내용은 “K-MOOC 선형대수학 1.2절, 내적과 직교”를 참고할 수 있다.
http://matrix.skku.ac.kr/K-MOOC-LA/cla-week-1.html
3.8 사잇각
벡터의 내적은 두 벡터가 이루는 사잇각과 관련이 있는데, 먼저 아래 그림에서 피타고라스 정리를 적용하면 다음을 쉽게 알 수 있다.
이 식을 벡터를 이용하여 다시 표현하면 다음과 같다.
또한 내적의 정의와 성질에 의해
이므로, 위의 두 식을 비교하면 다음을 얻는다.
, 즉
(
)
3.9 코사인 유사도의 계산
두 데이터 와
의 코사인 유사도는 다음과 같이 계산할 수 있다.
차원 공간
의 두 벡터
와
에 대해서도 동일한 공식이 성립한다.
여기서 와
는 원 데이터
,
의 크기에 관계없이, 크기가 항상
인 단위벡터(unit vector)이므로,
코사인 유사도는 데이터의 크기와 데이터 사이의 거리는 무시하고 단지 데이터의 패턴(방향)만 고려하게 된다.
이렇게 두 데이터의 코사인 유사도를 계산하여, 만일 코사인 값이 크면, 코사인 함수의 성질에 의해 사잇각은 작아지게 되고,
그에 따라 유사도는 높아지게 된다. 이런 방식으로 데이터 사이의 패턴을 분석할 수 있다.
예제 3. 두 벡터 ,
에 대하여 내적
과 코사인 유사도, 사잇각
(
)를 계산하시오.
예제 4. 코사인 유사도를 활용하여 세 개의 데이터 ,
,
에 대하여
는
와
중 어느 데이터에 더 가까운지 판단하시오.
[열린문제] 어떤 데이터들이 코사인 유사도를 사용하여 분석이 가능할지 생각해보시오.
[열린문제] 두 개의 5차원 데이터(벡터) 사이의 내적과 사잇각 를 구하시오. (Hint: (사잇각을 활용한) 데이터의 유사도 <실습실> 활용)
http://matrix.skku.ac.kr/math4AI-tools/cosine_similarity
[참고] 국가에서 보유하고 있는 다양한 공공데이터포털 https://www.data.go.kr/
[참고] 공공데이터를 활용한 예 https://www.data.go.kr/tcs/puc/selectPublicUseCaseListView.do
[참고] 국가 중점데이터 https://www.data.go.kr/tcs/eds/selectCoreDataListView.do ■
Copyright @ 2020 SKKU Matrix Lab. All rights reserved.
Made by Manager: Prof. Sang-Gu Lee and Dr. Jae Hwa Lee