[주요단어]
인공지능, 선형회귀, 파이썬, numpy, linalg pinv inv 행렬 수학 활용 벡터 직선의 방정식 연립 역행렬 가짜 유사 의사 무어-펜로즈 유사역행렬(Moore-Penrose) 컴퓨터 프로그래밍, AI, 경향성 예측
2부 선형 회귀식(numpy.linalg.pinv는 어떻게 작동되는가?)
:실제 많은 사람들이 사용하지만 어떻게 작동되는지 수학적 원리를 확인해 보겠습니다.
① 역행렬로 방정식 풀기
아래와 같은 행렬 A가 있고, a,b의 값을 찾으려 한다고 합시다.

먼저, A의 역행렬을 구하면 아래와 같습니다.
이를 양변의 왼쪽에 곱해 줍니다.(행렬은 교환법칙이 성립하지 않습니다. 왼쪽에 곱해야 함을 잊지 마세요)
결국 a=1, b=1이였습니다.
역행렬은 이렇게 매우 큰 크기의 연립방정식도 쉽게 계산할 수 있는 방법입니다. 선형회귀식 역시 위 방법을 이용합니다.
② 선형회귀식 실제 구해보기

이제 저 세 자료(변수)의 경향을 알려 줄수 있는 직선 y=ax+b이 있다고 합니다.
이 직선에 주어진 세 변량을 대입하겠습니다.
-2a+b = 0
0xa + b =2
0xa + b =4
가 나옵니다. 세 점을 모두 지나는 직선이 없으니 연립해서 a, b을 구할 수 없습니다.
위의 연립 방정식을 행렬로 표현 가능합니다.

위의 좌변 행렬 곱셈을 계산하면 위에 a,b에 관한 방정식 세 개가 나옴을 확인할수 있을 것입니다.
특히, 좌변에 있는 3x2 행렬을 '계수행렬'이라고 부릅니다.
만약 계수 행렬의 역행렬을 구하면 ① 번의 방법으로 m, n을 구할 수 있을 것입니다.
만약 계수 행렬이 정사각 행렬이면 손쉽게 m,n을 구할 수 있습니다. ( numpy.linalg.inv 사용)
그러나 계수행렬이 정사각행렬이 아닙니다.
③ 유사역행렬(의사역행렬)
때문에 pinv, 즉, pseudo-inverse를 이용합니다.
유사역행렬은 정사각행렬이 아닌 A와 A의 전치 행렬을 이용해
m x n 행렬을 m, n 중 더 작은 값의 정사각행렬로 만듭니다.

유사 역행렬은 위와 같이 사용되며 지수에 + 를 붙여 표현합니다.
이제 ②번에서 구한 계수행렬 A를 살펴보겠습니다.

이렇게 numpy의 pinv 의 수학적 원리를 알아 보았다.
2변량 변수로 예제를 들어 이해를 도우려 했으나 실제 다변량 변수에서 더 큰 힘을 발휘하는 만큼
선형회귀를 사용하는 것에 수학적 원리를 꼭 기억하길 바란다.
https://www.youtube.com/watch?v=vpGGwR1gUQA
'IT 과학 > 프로그래밍' 카테고리의 다른 글
선형회귀법의 수학적 원리(1) (기초행렬편) (0) | 2022.09.08 |
---|---|
파이썬 기초 배우기(개인 학습) (0) | 2020.02.29 |