[일반인을 위한]  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)로 표현할 수 있다.

예를 들어, 두 점 , 사이의 거리는 다음과 같이 계산한다.

      

거리가 가까우면 두 데이터는 유사하다고 볼 수 있고, 거리가 멀면 두 데이터는 관계없다고 판단할 수 있다. 그리고 어떤 데이터와 어떤 범주와의 거리가 가까우면,

이 데이터는 이 범주에 속해있다고 볼 수 있다. 예를 들어, 아래 그림에서는 임을 쉽게 알 수 있으므로, “는 가깝고, 는 멀다”, “보다 에 더 가깝다”는 의미이다.

       그림입니다.
원본 그림의 이름: CLP00004e6c0004.bmp
원본 그림의 크기: 가로 785pixel, 세로 446pixel


  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 사잇각을 활용한 데이터의 비교

데이터의 유형과 분석가의 관심사에 따라 데이터 사이의 유사도를 재는 척도는 다양할 수 있다.

앞에서는 두 데이터 사이의 거리를 계산하여 유사도를 측정하는 척도에 대하여 설명하였다.

그러나 데이터 분석가가 단지 데이터의 패턴(방향)에만 관심이 있는 경우, (거리)척도는 적합하지 않다.

예를 들어, 아래와 같이 좌표평면 상에 벡터로 표현된 두 데이터 는 패턴(방향)은 유사하지만

거리는 매우 큰 값을 갖게 되어, (거리)척도로는 “두 데이터가 관계가 없다”고 판단하게 되기 때문이다.

              그림입니다.
원본 그림의 이름: CLP00003aa00002.bmp
원본 그림의 크기: 가로 393pixel, 세로 265pixel


  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 사잇각

벡터의 내적은 두 벡터가 이루는 사잇각과 관련이 있는데, 먼저 아래 그림에서 피타고라스 정리를 적용하면 다음을 쉽게 알 수 있다.

                 그림입니다.
원본 그림의 이름: CLP000033bc0001.bmp
원본 그림의 크기: 가로 431pixel, 세로 350pixel

          


이 식을 벡터를 이용하여 다시 표현하면 다음과 같다.

         

또한 내적의 정의와 성질에 의해

    

이므로, 위의 두 식을 비교하면 다음을 얻는다.

     ,  즉   ()


  3.9 코사인 유사도의 계산

두 데이터 코사인 유사도는 다음과 같이 계산할 수 있다. 차원 공간 의 두 벡터 에 대해서도 동일한 공식이 성립한다.

     

    그림입니다.
원본 그림의 이름: CLP00003aa00001.bmp
원본 그림의 크기: 가로 852pixel, 세로 383pixel

여기서 는 원 데이터 , 의 크기에 관계없이, 크기가 항상 단위벡터(unit vector)이므로,

코사인 유사도는 데이터의 크기와 데이터 사이의 거리는 무시하고 단지 데이터의 패턴(방향)만 고려하게 된다.

이렇게 두 데이터의 코사인 유사도를 계산하여, 만일 코사인 값이 크면, 코사인 함수의 성질에 의해 사잇각은 작아지게 되고,

그에 따라 유사도는 높아지게 된다. 이런 방식으로 데이터 사이의 패턴을 분석할 수 있다.

               그림입니다.
원본 그림의 이름: CLP000033bc0003.bmp
원본 그림의 크기: 가로 647pixel, 세로 395pixel

예제 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