데이터과학을 위한 수학복습(3)

벡터에 대한 학습은 이 정도로 마치고 이제 행렬(matrix)에 대해 복습해 보자. 행렬은 벡터의 개념을 확장시켜 일반화한 것이다. 벡터는 행렬의 특수한 경우이다.

아래 사례를 보자. 프로야구 선수 다섯명의 타수 데이터이다.

이 데이터를 행렬로 간단히 표시할 수 있다.

첫 열은 안타, 둘쨋 열은 2루타, 셋째 열은 3루타를 나타낸다. 첫 행은 김선빈, 둘번째 행은 박건우, 셋번째 행은 박민우, 네번째 행은 나성범, 다섯번째 행은 박용택 선수의 기록이다. 각 선수의 안타 기록을 동일한 순서로 나타낸 것이다.

일반적으로 가로 n 줄(n행), 세로 m줄(m열)로, 배열하고 괄호로 묶은 것을 행렬이라고 한다. n행과 m열을 가진 행렬 A의 차원은 이다. 이 행렬은 첨자를 써서 아래와 같이 표현될 수 있다.  이는 행렬의 기본 형식이다.

행렬에는 기억해 둘 몇 가지 종류가 있다.

정방행렬(sqaure matrix): 행과 열의 개수가 같은 행렬로 행렬을 n차 정방행렬이라고 한다.

대각행렬(diagonal matrix): 대각 성분을 제외한 나머지 값들이 모두 0인 정방행렬. 특히 대각 성분이 모두 1인 행렬을 단위행렬(identity matrix)라고 하며, E 혹은 I로 쓰고 다음과 같이 정의한다.

단위행렬은 숫자 1과 같은 의미로 해석.  단위행렬과  단위행렬은 다음과 같이 쓸 수 있다.

영행렬(zero matrix): 행렬의 모든 성분이 0인 행렬을 영행렬이라고 하고, 알파벳 O를 써서 다음과 같이 표현한다. 수학에서 0과 같은 의미이다.

전치행렬(transpose matrix): 행렬의 행과 열을 바꾼 행렬을 의미한다. A의 전치행렬은  혹은 으로 표시한다.

엑셀에서 전치행렬 만들기 함수는 

엑셀에서 아래의 야구선수 데이터로 전치행렬을 만들어 본다.

엑셀에서 행렬 처리는 일반 숫자의 처리와 두 가지 점이 다르다. 반드시 먼저 행렬이 들어갈 범위를 선택해 주어야 한다(여기서 G2:L5). 그런 다음 수식(여기서 =TRANSPOSE(A1:D6))을 입력한다. 수식의 입력이 끝나고 나면 [Shift]+[Ctrl]+[Enter]을 눌러야 한다. 그냥 [Enter]를 누르면 오류가 발생한다.

행렬의 덧셈과 뺄셈은 다음과 같이 수행한다.

 라고 정의한다면,

행렬의 곱셈:

행벡터 와 열벡터 를 다음과 같이 정의한다면,

는 다음과 같이 계산된다.

라고 정의한다면,

행렬 A의 차원은 이며, 행렬 B의 차원은 이다. 두 행렬의 곱 C는 행벡터와 열벡터의 곱셈이 4번 반복되며,  차원의 행렬이 된다. 새 행렬 C는 A 행렬의 행  B 행렬의 열의 차원을 갖게 된다. 이점은 잘 기억해두어야 한다. 엑셀에서 행렬 연산시 계산 결과의 범위를 사전에 선택해야 하는데 그 때 사용된다.

행렬의 곱셈이 성립하기 위해서는 조건이 있다. 앞의 행렬의 열과 뒤의 행렬의 행의 차원이 같아야 한다.

엑셀에서 행렬의 곱셈을 지원하는 함수로 가 있다.

행렬의 곱셈에는 교환법칙이 성립하지 않는다(). 결합법칙과 분배법칙은 성립한다.

위 그림에서 보듯이 엑셀에서 행렬 연산을 손쉽게 수행할 수 있다.

라고 하면,

A+B는 먼저 연산 결과가 들어갈 곳에 범위를 선택한다(A22:C24). 그 다음 수식 =A15:C17+F15:H17를 입력한다. 그리고 [Shift], [Ctrl], [Enter]을 동시에 누르면 결과 값 을 얻는다.

AB는 연산 결과가 들어갈 곳인 F23:H25를 선택한다. 그 다음 수식 =MMULT(A15:C17,F15:H17)을 입력하고, Shift, Ctrl, Enter을 동시에 누르면 결과 값인 를 얻는다. 그런데 만약 BA를 동일한 방법으로 구하면, 

를 얻는다. 임을 확인할 수 있다. 즉, 교환법칙이 성립하지 않는 것이다. 그림에서처럼 (AB)C와 A(BC)를 구해보면 두 결과가 동일하다. 즉, 결합법칙이 성립함을 알 수 있다. 유사한 방법으로 분배법칙이 성립함을 확인해 볼 수 있을 것이다.

역행렬(inverse matrix): 행렬 연산에 나눗셈은 없고 대신 역행렬이 있다. 행렬 A가 있을 때 역행렬은 다음과 같이 정의된다.

여기서 행렬 I는 단위행렬이다. 단위행렬은 일반적으로 숫자 1과 같이 해석된다. 위 식을 만족시키면 B는 A의 역행렬이며, 다음과 같이 표시한다.

이 역행렬은 으로 이루어지는 정방행렬에서만 계산 가능하다. 엑셀 함수는 이다.

행렬곱의 역행렬은 각 역행렬을 반대로 곱한 것이다.

연립방정식의 행렬의 이항을 가지고 역행렬의 쓰임새를 살펴보면,

행렬식(determinant)이 0이 아닐 때 역행렬이 존재한다.

엑셀에서 행렬식의 함수는 이며, 역행렬을 가지는 행렬을 가역행렬(혹은 정칙)이라고 하고 역행렬을 가지지 않은 행렬을 비가역행렬이라고 한다.

일반적으로 이원일차연립방정식

(a, b는 동시에 0이 아니고, c와 d도 동시에 0이 아님)에서 이라고 놓으면 주어진 방정식은 다음과 같이 된다.

엑셀을 가지고 살펴보자. 먼저 한 행렬에 어떤 행렬을 곱해서 단위행렬이 나오는 그 어떤 행렬을 역행렬이다.

위 그림에서 행렬 A 의 역행렬을 구하려면,  결과가 들어갈 곳의 범위 E3:G5를 선택하고, =MINVERSE(A3:A4)를 입력한 후 Shift, Ctrl, Enter를 동시에 누른다. A의 역행렬 B 가 생성된다. B가 A의 역행렬임을 확인하기 위해 AB를 구하니 를 얻었다. 단위행렬이다. B가 A의 역행렬임이 확인되었다.

연산에 역행렬을 응용하려면 먼저 행렬식을 구해서 역행렬이 존재하는가를 확인해야 한다. 그림의 예 는 연립방정식

을 행렬로 표시한 것이다. 양변에 의 역행렬을 곱해주면 x, y의 값을 구할 수 있는데, 먼저  의 행렬식이 0이 아님을 확인해야 한다. 행렬식을 구하려면, 먼저 결과가 들어갈 자리를 지정하고(H9), =MDETERM(C9:D10)을 입력한 다음 Enter를 누른다. 행렬식 값이 1이므로 역행렬이 존재한다. 이제   의 역행렬을 구한다. 결과가 들어갈 자리를 지정(C14:D15),  수식 =MINVERSE(C9:D10)을 입력한 다음 Shfit, Ctrl, Enter를 누른다. 그러면 역행렬 가 생성된다. 그것을  양변에 곱해준다. 좌변은 단위행렬이니 표시할 필요가 없고, 우변은 을 얻는다. 즉, 이다.

좌표변환과 행렬: 임의의 숫자에 어떤 특수한 행렬을 곱하면 값이 변하는데 이것을 기하학적인 의미로 좌표변환이라고 한다. 행렬을 곱하면 좌표가 변환되며, 역행렬을 곱하면 원래의 좌표로 돌아간다. 아래 그림에 X축 대칭이동, Y 축 대칭이동, 원점 대칭이동의 사례가 나와 있다.

x, y 좌표상의 점 (-1,-1)을 행렬로 표시하면 ,  을 거기에 곱하면(순서에 유의할 것!), 즉,  . 즉, 원점 대칭 이동된 점 (1,1)을 얻는다. 이번에는  을 곱하면, . 즉, x축 대칭이동된 점 (-1,1)을 얻는다.  그리고 을 곱하면, . 즉, y축 대칭이동된 점 (1,-1)을 얻는다.

끝으로 벡터와 행렬에서 아마도 꼭 언급하고 넘어가야 할 개념 중 하나는 고유값(eigen value)고유벡터(eigen vector)이다.

임의의 행렬 K가 ()인 n 차 정방행렬일 때 아래 식을 만족시키는 0이 아닌 벡터 와 정수 λ가 존재할 때 λ를 행렬 K의 고유값이라고 하고, 벡터 를 고유벡터라고 한다.

기하학적으로 고유벡터는 독특한 성질을 갖는다. 고유벡터는 선형변환 과정에서 회전시키더라도(위 식에서 정방행렬 K를 곱한 조치) 그 벡터가 위치한 선(line)상에서 일탈하지 않는다(즉, 크기만 변할 뿐 방향이 변하지 않는다: 위식의 우변에서 고유벡터가 스칼라인 λ 배 만큼 변했다).

위 그림에서 행렬 의 고유벡터는 이고 고유값은 3이다.  인데, 은 의 결과이다. 이나  같은 다른 벡터를 곱하면 그런 결과가 얻어지지 않는다.

데이터과학에서는 그러한 특성을 지닌 고유값과 고유벡터를 활용해서 소위 주성분분석(Principal Component Aanalysis, PCA)을 수행하곤 한다. 데이터과학자는 주성분 분석을 통해서 데이터의 차원을 축소하거나 숨겨진 변수를 찾아낸다.

주성분 분석에서는 변수들의 상관행렬(이것은 항상 정방행렬이다)을 위 식의 K에 대입한다. 상관행렬(표준화된 공분산 행렬)을 R이라고 하자.

λ가 스칼라(수)이기 때문에 단위행렬(I)을 곱해서 R과 동일한 정방행렬을 만들어 주었다. 이라는 조건 아래에서 이 등식이 성립하려면 이 역행렬을 갖지 않아야 한다. 즉,  비가역행렬이어야 한다. 그럴려면 그것의 행렬식이 0이어야 한다.

(만약 역행렬을 가지면 아래처럼 되어 고유벡터 가 영행렬이 되어야 해서 라는 정의에 위배된다.)

기하학적으로 행렬식은 선형변환 결과 얻어진 행렬의 면적을 나타낸다. 행렬식이 0이라는 것은 정방행렬을 구성하는 두 요소(변수)가 정확히 한 선 위에 모두 올라오도록 변환됨을 의미한다. 즉, 면적이 0이 된다는 것이다. 행렬식이 0이 되면, 두 벡터의 방향이 정확히 겹쳐지면서 평면의 벡터공간이 하나의 직선이 된다. 차원축소는 고유벡터의 바로 이 성질을 이용한다. 주성분 분석에 관해서는 별도로 포스팅할 예정이다.

벡터와 행렬에 관해서는 이 정도로 복습을 마치기로 하자.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.