본문바로가기
[인공지능, 수학으로 타파] 행렬로 결괏값 구하기
수학동아 2021.01.29 11:58

 

 

Mathematics for AI #10

행렬로 결괏값 구하기

 

 

 

 

*출제자의 한 마디*

 

저번 시간에는 데이터의 유사도를 측정하는 방법에 대하여 간단히 살펴보았습니다. 인공지능이 데이터를 바탕으로 수행하는 주요 업무인 ‘판단’과 ‘예측’을 어떻게 수행하는지에 대하여 간단하게 살펴보았습니다. 이를 잘 수행하기 위해서는 주어진 데이터의 특징을 파악하여 유사한 데이터끼리 묶어주는 ‘분류’ 작업이 반드시 필요한데요. 이를 위해 먼저 데이터를 좌표와 벡터로 나타낸 후, 두 데이터 사이의 거리를 계산해서 유사도를 측정하는 법을 배웠습니다. 이를 통해 두 데이터의 거리가 가까우면 유사하다고 판단하고, 거리가 멀면 관계없다고 판단할 수 있었습니다.  

 

 

이번 시간에는 행렬을 이용하여 결괏값을 구하는 방법에 대하여 간단히 살펴봅시다.

 

 

 

--------------

 

 

행렬로 결괏값 구하기 

 

행렬은 어떤 수를 행과 열에 맞춰 나열한 것입니다. 이때 행 또는 열 1개로만 이뤄진 행렬을 ‘벡터’라고 부릅니다. 즉, 행렬은 벡터로 구성된 셈입니다. 1월호에서는 데이터를 좌표와 벡터로 나타내는 법을 배웠죠. 이번에는 수많은 데이터 중 우리가 원하는 결괏값을 얻는 법을 배우겠습니다.

 

결괏값은 미지수 x_{1}, x_{2}, …, x_{n}으로 표현할 수 있습니다. 이 값을 구하기 위해 미지수에 관한 방정식을 세웁니다. 예를 들어 100원짜리 동전 x_{1}개와 500원짜리 동전 x_{2}개가 합쳐서 35개이고, 총액은 8300원이라고 가정해봅시다. 이때 100원짜리 동전과 500원짜리 동전의 개수를 각각 구하려면 다음과 같이 연립방정식을 세웁니다.

 

 

                                              

 

 

 

미지수가 2개인 연립방정식은 어느 한 방정식을 다른 방정식에 대입하거나, 두 방정식을 변끼리 더하거나 빼서 미지수가 1개인 일차방정식으로 만들어 해를 구합니다. ➊번 식을 x_{1}에 대해 정리하면 x_{1}=35-x_{2}입니다. 이것을 ➋번 식의 x_{1}에 대입하면 x_{1}의 값은 23, x_{2}의 값은 12라는 것을 알 수 있죠.

 

하지만 미지수가 너무 많으면 계산이 어렵습니다. 이때 행렬을 사용합니다. 많은 미지수의 값을 구하기 위해 세운 방정식을 선형연립방정식이라고 하죠. 이 방정식을 행렬로 표현해 컴퓨터가 이해할 수 있도록 나타낸 후, 코딩을 이용해 결괏값을 구할 수 있습니다. 예를 들어 미지수 x_{1} , x_{2} , x_{3} 에 대한 다음과 같은 선형연립방정식이 있습니다.

 

 

 

 

여기서 계수와 미지수, 상수항을 행렬로 각각 로 나타냅니다. 미지수와 상수항이 열이 1개인 벡터로 표현된 것, 보이시나요? 이제 이 선형연립방정식을 다음과 같이 간단하게 나타낼 수 있습니다.

 

 

Ax = b

 

 

데이터가 아주 많은 경우에도 같은 방식으로 표현할 수 있습니다. 미지수가 n개고 상수항이 m개라면 다음과 같이 행렬로 나타낼 수 있죠. (m≥n, i는 1 이상 m 이하의 자연수, j는 1 이상 n 이하의 자연수)

 

 

 

 

 

                                               --------------

 

문제

다음 연립방정식의 해를 구해보세요.

 

 

 

 

 

 

 

풀이에 필요한 SageMath 코딩 명령어

 

 

a1 = vector([1, 2, 3]) 

a2 = vector([2, 5, 3])

a3 = vector([1, 0, 8])

방정식의 계수들을 벡터의 형태로 입력한다.

 

 

A = matrix([a1, a2, a3])

계수 벡터로 계수행렬 A를 만든다.

 

 

b = vector([1, 3, -1]) 

상수항을 벡터의 형태로 입력한다.

 

 

print(A.solve_right(b))

결과를 출력한다.

 

 

 

 

-끝-

 

 

  • 폴리매스 문제는 2019년도 정부의 재원으로 한국과학창의재단의 지원을 받아 수행된 성과물입니다.

  • ☎문의 02-6749-3911