4-2 엑셀 매트릭스 연산: MINVERSE 와 MMULT

codingart(66)
Published in
#kr
Words
323
Reading
2 min
Listen
Play
8y

이미 아두이노 C/C++을 사용하여 매트릭스 연산을 위한 어레이를 설정하고 매트릭스 요소 값들을 입력한 후 매트릭스 연산 룰에 따라 코딩하여 실행 후 결과를 출력하여 보았다. 이번에는 보다 HIGH LEVEL 언어라 할 수 있는 엑셀 명령을 사용하여 매트릭스 곱하기 연산을 해보자. 엑셀이 머신 러닝과 얼마나 깊은 관계를 맺고 있을지는 모르겠으나 머신 러닝이 워낙 매트릭스 연산을 바탕으로 하고 있으므로 쉽게 배울 수 있는 엑셀을 사용하여 매트릭스 연산 수학에 대한 감을 가져가지 위한 작업으로 생각하자.

머신 러닝의 대부분 연산은 학습과정에서 입력 벡터와 웨이트벡터를 곱해 바이아스를 더한 후 그 값과 알고 있는 출력 값과의 차이의 제곱을 합하여 cost 함수를 구성하고 Backpropagation 에 의해서 웨이트 값을 업데이트하여 계속적으로 웨이트 매트릭스를 수렴시키는 과정이 거의 다를 차지하고 있음에 유의하자.

매트릭스 곱하기
엑셀 스프레드쉬트에서 2x3 매트릭스 A 와 3x2 매트릭스 B를 정의 후 ‘=MMULT’ 명령을 사용하여 AxB 하여 2x2 매트릭스 C를 얻어보자. 매트릭스 결과가 2x2 로 얻어지므로 C 매트릭스 해당 영역을 클릭하여 활성화 시킨 후 입력 창에서 ‘=MMULT(’ 를 입력 후 A 매트릭스 해당 영역을 클릭하여 활성화 시키면 B5:D6 로 표기된다. ‘,’ 를 입력 후 B 매트릭스 해당 영역을 클릭하여 활성화시키면 F5:G7 이 입력된다. 이 시점에서 Cntr+Shift+Enter 하면 C 매트릭스 영역에 값들이 채워진다. 이놈의 엑셀 얼마나 많은 단축 키들을 사용했으면 Cntr+Shift+Enter 키 밖에 더 남은 단축 키는 없는 듯.

noname01.png

해보니 엑셀의 매트릭스 곱셈 기능은 아주 마음dp 들 정도로 산뜻하군요.
선형 방정식의 매트릭스 표현 및 매트릭스 인버스에 의한 해법

그렇다면 한발 더 나아가 선형 방정식(Systems of Linear Equations)을 매트릭스 형태로 표현 후 매트릭스이 인버스를 사용하여 선형 방정식의 해를 구해 보자.

noname02.png

매트릭스 표현 AX = B 의 해 X는 A 매트릭스의 역(Inverse)을 구해서 곱해주면 얻어진다. A 매트릭스의 역(Inverse)과 A를 곱해주면즉 대각선 성분이 1.0 인 단위 매트릭스 I 가 얻어지며 IX = X 가 된다.
마지막으로 A 매트릭스의 역(Inverse)이 엑셀 명령 MINVERSE 에 의해서 구해지면 B 매트릭스와 곱셈에 의해서 해인 X 매트릭스가 얻어지게 된다.

noname03.png

A 매트릭스의 역(Inverse)이 얻어지면 B 매트릭스와의 곱셈에 의해서 X 값이 얻어질 수 있다.

noname04.png

한가지 확인해봐야 할 점은 A 매트릭스와 A의 인버스 매트릭스를 곱해서 단위 매트릭스가 얻어지는가 하는 점이다. 다음의 결과를 참조하자.

noname05.png

마나마인로고.png

4-2 엑셀 매트릭스 연산: MINVERSE 와 MMULT | Ecency