이 강의의 목표는 공식을 빨리 외우는 것이 아닙니다. 목표는 아래 식을 스스로 설명할 수 있게 되는 것입니다.
Ax=b
이 식은 말로 풀면 다음 뜻입니다.
행렬 A를 벡터 x에 곱했더니 벡터 b가 나왔다.
이 짧은 식 한 줄이 사실은 여러 개의 일차방정식을 한꺼번에 묶은 것입니다. 그래서 이 강의는 다음 질문에 답합니다.
- 행렬이란 무엇인가? (7강 벡터의 자연스러운 일반화)
- 행렬과 벡터를 곱한다는 것은 무슨 뜻인가? 그리고 왜 그렇게 계산하는가?
- 행렬과 행렬을 곱한다는 것은 무슨 뜻인가?
- Ax=b를 어떻게 풀까? 그 풀이는 언제 가능한가?
이 강의는 이 질문을 하나씩, 아주 작은 단계로 나누어 설명합니다.
이번 강에서 새로 등장하는 어휘만 모았습니다. 벡터·성분(7강), 스칼라·벡터덧셈·스칼라배·선형결합(7강)은 앞서 본 그대로 씁니다.
| 말 |
뜻 |
| 행렬 |
숫자를 직사각형 표처럼 배열한 것 |
| 행 |
행렬의 가로줄 |
| 열 |
행렬의 세로줄 |
| m×n 행렬 |
행이 m개, 열이 n개인 행렬 |
| 행렬곱 |
행과 열을 맞추어 계산하는 곱셈 |
| 단위행렬 (I) |
곱해도 대상을 바꾸지 않는 행렬 |
| 역행렬 (A−1) |
행렬 A의 작용을 되돌리는 행렬 |
| 가역 / 특이 |
역행렬이 있으면 가역, 없으면 특이행렬 |
| 선형시스템 |
여러 개의 일차방정식을 한꺼번에 묶은 것 |
| Ax=b |
선형시스템을 짧게 쓴 행렬 방정식 |
| 동차 시스템 |
b=0인 시스템 Ax=0 |
여기서 가장 중요한 식은 이것입니다.
Ax=b
이 한 줄이 8강의 출발점이자 도착점입니다.
7강에서 벡터는 숫자를 세로로 묶은 것이었습니다. 행렬은 여러 벡터를 옆으로(혹은 위아래로) 쌓아 만든 직사각형 표입니다.
A=[1324]
- 행: 가로줄. 위 행렬에는 행이 두 개로 (1,2)와 (3,4)입니다.
- 열: 세로줄. 위 행렬에는 열이 두 개로 [13]과 [24]입니다.
- 성분: 각 자리의 숫자. i행 j열 성분을 Aij로 적습니다. 예: A12=2.
행이 m개, 열이 n개인 행렬을 m×n 행렬이라고 부릅니다. 위 행렬은 2×2입니다. 다음 행렬
[142536]
은 2×3 행렬입니다 (행 2개, 열 3개).
외울 순서: 행 먼저, 열 나중. "m×n"의 m이 행, n이 열.
행렬 연산 중 가장 단순한 두 가지부터.
행렬 덧셈: 같은 크기의 행렬끼리 같은 자리 성분을 더합니다.
[1324]+[5768]=[610812]
7강의 벡터 덧셈과 똑같은 규칙입니다. 단, 크기가 다른 행렬은 더할 수 없습니다.
스칼라배: 모든 성분에 같은 수를 곱합니다.
2⋅[1324]=[2648]
이 두 연산은 본질적으로 7강에서 본 벡터 연산을 "표 모양"으로 일반화한 것입니다. 그래서 분배법칙 c(A+B)=cA+cB 등 익숙한 성질이 그대로 성립합니다.
8강의 진짜 새 내용은 다음 절부터, 즉 행렬곱부터입니다.
행렬-벡터 곱 Ax는 8강에서 가장 중요한 연산입니다. 같은 계산을 두 관점에서 보는 것이 핵심입니다.
행렬
A=[1324]
와 벡터
x=[56]
를 곱한 결과 Ax의 i번째 성분은 A의 i번째 행과 x를 짝지어 곱하고 더한 값입니다.
- 첫 번째 성분: 1⋅5+2⋅6=5+12=17
- 두 번째 성분: 3⋅5+4⋅6=15+24=39
따라서
Ax=[1739]
이 방식은 계산할 때 편합니다.
같은 결과를 다른 방식으로 읽어 봅시다. A의 두 열을 a1=[13], a2=[24]이라고 하면
Ax=5⋅a1+6⋅a2=5[13]+6[24]=[5+1215+24]=[1739]
즉 Ax는 A의 열벡터들을 x의 성분만큼 섞은 것입니다. 7강에서 배운 선형결합이 그대로입니다.
두 관점은 같은 결과를 주지만 의미가 다릅니다.
- 관점 1: 계산이 쉽다. 한 성분씩 차례로 구하면 된다.
- 관점 2: 행렬이 어떤 일을 하는지 보인다. "A가 입력 x를 받아, 자기 열벡터들의 가중합으로 출력을 만든다".
관점 2는 11강의 SVD를 이해할 때 결정적입니다. 일단 두 관점 모두 익숙해지는 것이 8강의 핵심 목표 중 하나입니다.
A가 m×n 행렬이면 x는 길이 n인 벡터여야 하고, 결과 Ax는 길이 m인 벡터가 됩니다.
"A의 열 개수 = x의 길이"여야 곱이 정의됩니다.
이번에는 행렬끼리 곱해 봅시다.
A=[1324],B=[5768]
AB의 i행 j열 성분은 A의 i번째 행과 B의 j번째 열을 4.1절처럼 짝지어 곱하고 더한 값입니다.
- (AB)11: 1⋅5+2⋅7=19
- (AB)12: 1⋅6+2⋅8=22
- (AB)21: 3⋅5+4⋅7=43
- (AB)22: 3⋅6+4⋅8=50
따라서
AB=[19432250]
같은 계산을 다른 시각으로 봅시다. B의 두 열을 b1,b2라고 하면
AB=A⎣⎢⎡∣b1∣∣b2∣⎦⎥⎤=⎣⎢⎡∣Ab1∣∣Ab2∣⎦⎥⎤
즉 AB의 각 열은 "A가 B의 그 열에 한 일"입니다. 그래서 행렬곱 AB는
B로 한 번 변환한 결과를 다시 A로 변환한 것
이라고 읽을 수 있습니다. 함수 합성과 같은 구조입니다 (3강에서 본 함수 합성과 비교해 보세요).
A가 m×n, B가 n×p일 때만 곱 AB가 정의되고, 결과는 m×p 행렬입니다.
"왼쪽 행렬의 열 개수 = 오른쪽 행렬의 행 개수"가 맞아야 곱이 됩니다.
- 결합법칙: (AB)C=A(BC)이며 항상 성립.
- 분배법칙: A(B+C)=AB+AC이며 항상 성립.
- 교환법칙: AB=BA는 일반적으로 성립하지 않는다.
교환법칙이 안 되는 이유는 다음 절에서 봅시다.
5.2절에서 본 대로 행렬곱은 "변환을 이어붙이는 것"입니다. 그렇다면 순서가 중요할 수밖에 없습니다.
x축 기준 반사
F=[100−1]
와 90도 회전
R=[01−10]
을 다른 순서로 곱해 봅시다.
RF=[01−10][100−1]=[0110]
FR=[100−1][01−10]=[0−1−10]
분명히 RF=FR입니다.
"먼저 반사하고 회전" vs "먼저 회전하고 반사"는 결과가 다른 변환입니다. 거울 앞에서 먼저 자세를 잡고 도는 것과 먼저 돌고 자세를 잡는 것이 다르듯이.
즉 행렬은 단순한 숫자가 아니라 변환입니다. 변환을 순서대로 적용하는 일은 일반적으로 가환이 아닙니다.
행렬곱에서 AB를 쓸 때는 항상 "B를 먼저, 그 결과에 A를"이라는 순서를 의식하세요.
2차원 단위행렬은
I=[1001]
입니다.
벡터
x=[56]
에 곱해 봅시다.
Ix=[1001][56]=[56]
결과가 그대로입니다.
단위행렬은 숫자 1과 비슷한 역할을 합니다.
숫자 2를 곱한 결과를 되돌리려면 21를 곱합니다. 행렬에도 같은 역할이 있습니다.
어떤 정사각 행렬 A에 대해
A−1A=AA−1=I
를 만족하는 행렬 A−1이 있으면, 이것을 A의 역행렬이라고 합니다. 역행렬이 있는 행렬을 가역, 없는 행렬을 특이행렬이라고 부릅니다.
2×2 행렬에는 외울 만한 공식이 있습니다.
A=[acbd]⇒A−1=ad−bc1[d−c−ba]
말로 풀면 이렇습니다.
대각 성분 a와 d를 자리바꿈하고, 비대각 성분 b와 c에는 마이너스를 붙인 뒤, 전체에 ad−bc1을 곱한다.
A=[2111]
의 경우 ad−bc=2⋅1−1⋅1=1이므로
A−1=11[1−1−12]=[1−1−12]
검증:
A−1A=[1−1−12][2111]=[1001]=I✓
공식을 보면 ad−bc=0이면 01이 나와 정의가 안 됩니다. 즉
ad−bc=0
이면 A는 역행렬을 갖지 않습니다. 이 양 ad−bc를 행렬식이라고 부르고, 9강에서 더 자세히 봅니다. 지금 기억할 것은 한 줄.
ad−bc=0일 때만 2×2 행렬은 가역이다.
큰 행렬에 대해서도 비슷한 양(행렬식)이 정의되고, 그 값이 0이면 역행렬이 없습니다.
8강의 출발점인 식 Ax=b가 사실 무엇이었는지 자세히 봅시다.
다음 연립방정식을 봅시다.
x+2y3x+4y=5=11
4.2절에서 본 "열의 가중합" 관점을 떠올리면, 이 두 식은 한꺼번에
[1324][xy]=[511]
으로 쓸 수 있습니다. 줄여 쓰면
Ax=b
이고, 여기서 A는 계수 행렬, x는 미지수 벡터, b는 상수 벡터입니다.
선형시스템 Ax=b의 해는 보통 다음 셋 중 하나입니다.
- 유일한 해: 해가 정확히 하나 (직선 두 개가 한 점에서 교차).
- 무한히 많은 해: 해 집합이 직선이나 평면 (두 방정식이 사실 같은 직선).
- 해가 없음: 어떤 x도 식을 만족하지 못함 (두 직선이 평행하지만 다른 위치).
2변수 2식인 경우 다음으로 구분할 수 있습니다.
| 행렬식 detA |
결과 |
| =0 |
유일한 해 (계수 행렬이 가역) |
| =0, b가 열공간에 있음 |
무한 해 |
| =0, b가 열공간에 없음 |
해 없음 |
특히 b=0인 경우를 동차 시스템이라고 합니다.
Ax=0
이 시스템은 항상 x=0이라는 해(자명해)를 가집니다. 흥미로운 질문은 "0이 아닌 해가 또 있는가?"입니다.
- detA=0이면 → x=0만 해 (유일)
- detA=0이면 → x=0 외에도 무한히 많은 해
이 사실은 9강 고유벡터 정의에서 결정적으로 쓰입니다. 고유벡터는 (A−λI)v=0이라는 동차 시스템의 영벡터 아닌 해이기 때문입니다.
선형시스템
Ax=b
에서 A의 역행렬이 있으면 양변 왼쪽에 A−1을 곱해
A−1Ax=A−1b⇒Ix=A−1b⇒x=A−1b
가 됩니다. 이것이 행렬 방정식을 푸는 가장 기본 형태입니다.
9.1절의 시스템
[1324][xy]=[511]
에서 A=[1324]의 행렬식은 1⋅4−2⋅3=−2. 8.2절 공식으로
A−1=−21[4−3−21]=[−21.51−0.5]
따라서
[xy]=A−1b=[−21.51−0.5][511]=[−10+117.5−5.5]=[12]
검증: 1+2⋅2=5✓, 3⋅1+4⋅2=11✓.
이 방법은 작은 행렬에서는 깔끔하지만 큰 행렬에서는 비효율적입니다. 100×100 행렬의 역행렬을 직접 계산하는 일은 가능하지만, 다음 절에서 볼 가우스 소거법이 훨씬 빠릅니다.
또한 A가 특이행렬(즉 detA=0)이면 이 방법은 아예 쓸 수 없습니다.
역행렬 없이 Ax=b를 직접 풀 수 있는 가장 기본적인 방법이 가우스 소거법입니다. 핵심 아이디어 하나만 짚습니다.
연립방정식 {x+2y=53x+4y=11를 풀 때 우리가 보통 하는 일은 다음과 같습니다.
- 두 번째 식에서 첫 번째 식의 3배를 빼서 x를 없앤다 → −2y=−4, 즉 y=2.
- 그 값을 첫 번째 식에 넣어 x를 구한다 → x=1.
이 과정을 행렬로 옮긴 것이 가우스 소거법입니다.
연립방정식과 우변을 한 행렬로 묶어 적고
[1324511]
행 연산(한 행에 다른 행의 배수를 더하거나, 한 행을 상수배 하거나, 두 행을 교환)을 통해 위 절차를 똑같이 행합니다.
R2←R2−3R1[102−25−4]
두 번째 식에서 −2y=−4, 즉 y=2. 첫 번째 식에서 x+4=5, 즉 x=1.
이 방법은 변수가 많아도 같은 원리로 작동하고, A가 특이행렬이어도 (해가 없거나 무한한 경우) 그 결과를 자연스럽게 알려 줍니다.
문제: 다음 값을 구하시오.
[2013][45]
풀이:
첫 번째 성분은
2⋅4+1⋅5=13
입니다.
두 번째 성분은
0⋅4+3⋅5=15
입니다.
따라서
[1315]
입니다.
문제: 다음 연립방정식을 Ax=b 꼴로 쓰시오.
2x+yx−3y=7=4
풀이: 계수, 미지수, 우변을 각각 모으면
[211−3][xy]=[74]
문제: 다음 행렬의 역행렬을 구하시오.
A=[3124]
풀이:
8.2절 공식으로 ad−bc=3⋅4−2⋅1=10. 0이 아니므로 역행렬이 존재합니다.
A−1=101[4−1−23]=[0.4−0.1−0.20.3]
검증:
AA−1=[3124][0.4−0.1−0.20.3]=[1.2−0.20.4−0.4−0.6+0.6−0.2+1.2]=[1001]✓
문제: 다음 시스템을 역행렬로 풀어 보시오.
3x+2y=7,x+4y=9
풀이: 13절처럼 행렬 형태로 쓰면
[3124][xy]=[79]
계수 행렬은 14절에서 본 행렬과 같습니다. 따라서
[xy]=[0.4−0.1−0.20.3][79]=[2.8−1.8−0.7+2.7]=[12]
따라서 x=1,y=2. 검증: 3⋅1+2⋅2=7✓, 1+4⋅2=9✓.
행렬은 AI 거의 모든 곳에 등장합니다. 짧게 짚어 봅니다.
이미지·문서·표 데이터는 모두 행렬(또는 그 일반화인 텐서)로 표현됩니다. 흑백 사진은 픽셀 밝기 값의 행렬이고, 추천 시스템의 평점 표는 사용자×아이템 행렬입니다.
신경망의 한 층은
y=Ax+b
꼴로 입력 x를 출력 y로 보냅니다. 행렬 A가 가중치이고, 학습이란 이 A를 데이터에 맞게 조정하는 일입니다. 신경망 전체는 여러 행렬곱의 합성, 즉 5.2절의 "변환 이어붙이기"입니다.
회귀, 최소제곱(10강), 균형 상태 찾기 등 많은 문제가 결국 Ax=b로 환원됩니다.
이번 강에서 배운 도구는 다음 강의의 출발점이 됩니다.
- 9강: 행렬을 변환으로 보는 관점(5.2절)에서 출발해 "방향이 바뀌지 않는 벡터"인 고유벡터를 찾는다.
- 10강: 행렬 A와 벡터의 곱 Ax에 직교성과 투영을 더해 최소제곱을 만든다.
- 11강: 모든 행렬을 "회전 × 늘리기 × 회전"으로 쪼개는 SVD를 본다. 4.2절의 열-가중합 관점이 핵심이다.
5.2절의 "행렬곱 = 변환 이어붙이기"를 한 번 더 새겨 두는 게 그다음 강의들의 디딤돌이 됩니다.
- 행렬은 숫자를 행과 열로 배열한 표이고, m×n은 행 m 열 n이다.
- 행렬 덧셈·스칼라배는 같은 자리끼리, 모든 성분에 적용하며, 7강 벡터 연산의 일반화다.
- 행렬-벡터 곱 Ax는 두 관점이 있다: 행별 짝맞춤(계산용) / 열의 가중합(의미용).
- 행렬곱 AB는 "B로 한 번, 그 결과에 다시 A로" 변환을 이어붙이는 일이다.
- 결합·분배법칙은 성립하지만 교환법칙은 일반적으로 성립하지 않는다.
- 단위행렬 I는 곱해도 대상을 바꾸지 않는다 (숫자 1의 역할).
- 역행렬 A−1은 A의 작용을 되돌린다 (A−1A=I).
- 2×2의 경우 A−1=ad−bc1[d−c−ba]이고, ad−bc=0이면 역행렬이 없다.
- 연립방정식은 Ax=b로 한 식으로 묶을 수 있다.
- 해는 유일/무한/없음 세 경우, 그리고 동차 시스템 Ax=0은 항상 x=0을 가진다.
- A가 가역이면 x=A−1b로 풀 수 있고, 그렇지 않으면 가우스 소거법으로 푼다.
- 행렬은 데이터 표현, 신경망 한 층, 연립방정식 모두의 공용 언어다.
- 2×3 행렬이 어떤 모양인지 설명할 수 있는가?
- 행렬-벡터 곱 Ax를 행별 관점과 열-가중합 관점 두 가지로 설명할 수 있는가?
- 다음 두 행렬을 곱해 보고 AB=BA임을 확인할 수 있는가?
A=[100−1],B=[0110]
- 단위행렬이 왜 숫자 1과 비슷한 역할인지 설명할 수 있는가?
- 다음 행렬의 역행렬을 구할 수 있는가?
[2153]
- 위에서 구한 역행렬을 써서 {2x+5y=1x+3y=1을 풀 수 있는가?
- 행렬식 ad−bc가 0이면 왜 역행렬이 없는지 한 줄로 말할 수 있는가?
- 연립방정식을 Ax=b 꼴로 바꿀 수 있는가? 거꾸로도 가능한가?
- 동차 시스템 Ax=0이 영벡터 아닌 해를 갖는 조건이 무엇인지 설명할 수 있는가?
- 행렬곱이 함수 합성과 같은 구조라는 말을 자기 말로 설명할 수 있는가?