[주요단어]
인공지능, 선형회귀, 파이썬, numpy, linalg pinv inv 행렬 수학 활용 벡터 직선의 방정식 연립 역행렬 가짜 유사 의사 무어-펜로즈 유사역행렬(Moore-Penrose) 컴퓨터 프로그래밍, AI, 경향성 예측
2부 선형 회귀식(numpy.linalg.pinv는 어떻게 작동되는가?)
:실제 많은 사람들이 사용하지만 어떻게 작동되는지 수학적 원리를 확인해 보겠습니다.
① 역행렬로 방정식 풀기
아래와 같은 행렬 A가 있고, a,b의 값을 찾으려 한다고 합시다.
![](https://blog.kakaocdn.net/dn/KaiWa/btrLEbipXNO/zfM4QAkeD8pPlrOeTyGZ80/img.png)
먼저, A의 역행렬을 구하면 아래와 같습니다.
이를 양변의 왼쪽에 곱해 줍니다.(행렬은 교환법칙이 성립하지 않습니다. 왼쪽에 곱해야 함을 잊지 마세요)
결국 a=1, b=1이였습니다.
역행렬은 이렇게 매우 큰 크기의 연립방정식도 쉽게 계산할 수 있는 방법입니다. 선형회귀식 역시 위 방법을 이용합니다.
② 선형회귀식 실제 구해보기
![](https://blog.kakaocdn.net/dn/c4jz3Q/btrLIVez07Q/S6L3I8fZKqS632zJAkeMsk/img.png)
이제 저 세 자료(변수)의 경향을 알려 줄수 있는 직선 y=ax+b이 있다고 합니다.
이 직선에 주어진 세 변량을 대입하겠습니다.
-2a+b = 0
0xa + b =2
0xa + b =4
가 나옵니다. 세 점을 모두 지나는 직선이 없으니 연립해서 a, b을 구할 수 없습니다.
위의 연립 방정식을 행렬로 표현 가능합니다.
![](https://blog.kakaocdn.net/dn/cOr71c/btrLJo8pd8I/VdE3FCMgxXZ5dcGqytHk90/img.png)
위의 좌변 행렬 곱셈을 계산하면 위에 a,b에 관한 방정식 세 개가 나옴을 확인할수 있을 것입니다.
특히, 좌변에 있는 3x2 행렬을 '계수행렬'이라고 부릅니다.
만약 계수 행렬의 역행렬을 구하면 ① 번의 방법으로 m, n을 구할 수 있을 것입니다.
만약 계수 행렬이 정사각 행렬이면 손쉽게 m,n을 구할 수 있습니다. ( numpy.linalg.inv 사용)
그러나 계수행렬이 정사각행렬이 아닙니다.
③ 유사역행렬(의사역행렬)
때문에 pinv, 즉, pseudo-inverse를 이용합니다.
유사역행렬은 정사각행렬이 아닌 A와 A의 전치 행렬을 이용해
m x n 행렬을 m, n 중 더 작은 값의 정사각행렬로 만듭니다.
![](https://blog.kakaocdn.net/dn/FAL5i/btrLI3Rd5NH/gZ1HWoikrjXPndmtxtwLe0/img.png)
유사 역행렬은 위와 같이 사용되며 지수에 + 를 붙여 표현합니다.
이제 ②번에서 구한 계수행렬 A를 살펴보겠습니다.
![](https://blog.kakaocdn.net/dn/vn9N0/btrLJLCbeV4/BwmkJZ0pECDzzeU6e82BhK/img.png)
이렇게 numpy의 pinv 의 수학적 원리를 알아 보았다.
2변량 변수로 예제를 들어 이해를 도우려 했으나 실제 다변량 변수에서 더 큰 힘을 발휘하는 만큼
선형회귀를 사용하는 것에 수학적 원리를 꼭 기억하길 바란다.
https://www.youtube.com/watch?v=vpGGwR1gUQA
'IT 과학 > 프로그래밍' 카테고리의 다른 글
선형회귀법의 수학적 원리(1) (기초행렬편) (0) | 2022.09.08 |
---|---|
파이썬 기초 배우기(개인 학습) (0) | 2020.02.29 |