선형대수 1: 벡터 · 행렬 · 내적 · 행렬 곱 · 노름
벡터 · 내적 · 코사인 유사도 · 노름 · 행렬 곱 · 역행렬 · 랭크를 2~3차원 숫자로 손계산하는 선형대수 기초
먼저 알아야 할 것
다루는 내용
머신러닝의 기본 언어인 선형대수 첫 수업입니다. 스칼라 · 벡터 · 행렬 · 텐서, 내적과 코사인 유사도, L1 · L2 · L∞ 노름과 거리, 행렬-벡터 곱을 신경망 층 Wx+b로 읽는 법, 행렬 곱의 모양 규칙 · 계산량 · 배치 계산을 다룹니다. 2×2 역행렬로 연립방정식을 풀고 랭크 · 다중공선성의 뜻까지 넘파이로 검산한 예제로 익힙니다.
해설
선형대수 1: 벡터 · 행렬 · 내적 · 행렬 곱 · 노름
머신러닝에서 데이터 한 건은 벡터, 데이터 묶음과 모델의 가중치는 행렬입니다. 신경망 한 층의 계산도 "행렬 곱 + 덧셈"입니다. 이 수업은 벡터와 행렬, 내적과 코사인 유사도, 노름, 행렬-벡터 곱과 행렬 곱, 전치 · 역행렬 · 랭크를 2~3차원 숫자로 직접 계산하며 익힙니다.
| 항목 | 내용 |
|---|---|
| 참고 자료 | Dive into Deep Learning 2.3절 'Linear Algebra' · d2l.ai/chapter_preliminaries/linear-algebra.html |
| 트랙 · 수준 | 수학 · 기초 |
| 이 수업의 범위 | 스칼라 · 벡터 · 행렬 · 텐서, 벡터 덧셈 · 스칼라배, 내적과 각도, 코사인 유사도, L1 · L2 · L∞ 노름, 행렬-벡터 곱(선형 변환), 행렬 곱과 계산량, 전치 · 단위 행렬 · 역행렬, 선형 독립과 랭크, 배치 계산 |
| 먼저 알면 좋은 것 | 사칙연산, 제곱근, 피타고라스 정리, 실습 준비의 넘파이 기초 |
들어가기 전에
- 실습 준비: 파이썬 · 넘파이 · scikit-learn · PyTorch 최소한 — 배열의 모양과
@연산자를 써 봤다면, 이 수업은 그 뒤에 있는 수학입니다. - AI란 무엇인가 — "모델은 파라미터를 가진 함수"라는 그림을 알고 오면, 행렬이 왜 파라미터 묶음인지 바로 연결됩니다.
한눈에 보기
- 데이터 한 건을 특성 벡터로, 데이터 묶음을 데이터 행렬로 표현합니다.
- 내적으로 두 벡터가 얼마나 같은 방향인지(코사인 유사도) 계산합니다.
- 노름으로 벡터의 크기를 재고, L1 · L2가 정규화에 어떻게 쓰이는지 압니다.
- 행렬-벡터 곱을 "입력을 다른 공간으로 옮기는 변환"으로 읽고, 신경망 층 와 연결합니다.
- 행렬 곱의 모양 규칙과 계산량, 역행렬 · 랭크의 뜻을 압니다.
1. 스칼라 · 벡터 · 행렬 · 텐서
직관(해설용 비유): 스칼라는 숫자 하나(온도 25도), 벡터는 숫자를 한 줄로 세운 목록(집 한 채의 면적 · 방 수 · 연식), 행렬은 표(집 100채 × 특성 3개), 텐서는 표를 여러 장 겹친 것(사진 한 장 = 가로 × 세로 × 색 3채널)입니다.
| 이름 | 차원 수 | 표기 | 예 |
|---|---|---|---|
| 스칼라(scalar) | 0 | 학습률 0.01 | |
| 벡터(vector) | 1 | 특성 3개인 집: | |
| 행렬(matrix) | 2 | 집 채 × 특성 개 | |
| 텐서(tensor) | 3 이상 | 이미지 높이 × 너비 × 채널 |
는 "실수 개로 된 벡터들의 모임"이라는 뜻입니다. 이 과정에서는 벡터를 기본적으로 세로(열) 벡터로 보고, 데이터 행렬 는 행 하나가 예제 하나가 되도록 둡니다.
벡터 덧셈과 스칼라배
같은 자리끼리 더하고, 스칼라는 모든 원소에 곱합니다.
숫자로 해 보기(해설용): , 이면 , 입니다. 경사 하강법의 갱신 은 바로 "벡터에서 스칼라배한 벡터를 빼는" 계산입니다.
2. 내적: 두 벡터가 얼마나 같은 쪽을 보나
직관: 내적(dot product)은 "같은 자리끼리 곱해서 모두 더한 값"입니다. 두 벡터가 같은 방향이면 크고, 수직이면 0, 반대 방향이면 음수입니다.
| 기호 | 뜻 |
|---|---|
| 내적 (는 전치 — 세로 벡터를 가로로 눕힘) | |
| 의 길이(L2 노름) | |
| 두 벡터 사이의 각도 |
숫자로 해 보기(해설용): , 입니다.
- 내적:
- 길이: ,
- — 각도로 약 53도입니다.
코사인 유사도
를 코사인 유사도(cosine similarity)라고 합니다. 길이를 나눠 없애고 방향만 비교하므로, 문서 길이가 달라도 주제가 비슷하면 높게 나옵니다. 문장 임베딩 검색, 추천 시스템이 이 값을 씁니다. 자세한 쓰임은 임베딩과 벡터 유사도에서 봅니다.
왜 내적이 중요한가: 선형 모델의 예측 , 어텐션의 점수 , 검색의 유사도 — 머신러닝의 가장 흔한 계산이 모두 내적입니다. "가중치와 입력이 같은 방향일수록 큰 값"이라는 그림 하나로 많은 모델이 읽힙니다.
3. 노름: 벡터의 크기 재기
직관: 노름(norm)은 "원점에서 얼마나 먼가"를 재는 자입니다. 자를 대는 방식에 따라 이름이 다릅니다.
| 노름 | 뜻 | 비유(해설용) | 머신러닝 쓰임 |
|---|---|---|---|
| L1 | 절댓값의 합 | 바둑판 길을 따라 걷는 거리 | 라쏘 정규화 — 가중치를 0으로 만들기 쉬움 |
| L2 | 제곱합의 제곱근 | 직선거리 | 릿지 · 가중치 감쇠, 유클리드 거리 |
| L∞ | 가장 큰 절댓값 | 가장 긴 한 변 | 적대적 예제의 허용 범위 |
숫자로 해 보기(해설용): 이면 , , 입니다.
두 점 사이의 거리는 차 벡터의 노름입니다. , 의 유클리드 거리는 입니다. k-최근접 이웃, k-평균 군집화가 이 거리를 씁니다.
4. 행렬-벡터 곱: 입력을 변환하기
직관: 행렬 에 벡터 를 곱하면 새 벡터가 나옵니다. 의 행마다 와 내적을 하는 것입니다. 행이 개면 출력도 개 — 즉 차원 입력을 차원으로 옮기는 변환입니다.
숫자로 해 보기(해설용):
2차원 입력이 3차원 출력이 되었습니다. 신경망의 완전 연결 층(fully connected layer)은 정확히 이것에 편향을 더한 입니다. 여기에 ReLU 같은 비선형 함수를 씌우고 층을 쌓으면 다층 퍼셉트론이 됩니다.
다른 읽기 방법 — 열의 섞음: 는 "의 열들을 만큼씩 섞은 것"이기도 합니다. 위 예는 입니다. 이 읽기는 랭크(6절)를 이해할 때 쓸모 있습니다.
5. 행렬 곱: 변환을 이어 붙이기
| 규칙 | 설명 |
|---|---|
| 모양 | 앞 행렬의 열 수 = 뒤 행렬의 행 수 이어야 함 |
| 결합 법칙 | — 항상 성립 |
| 교환 법칙 | — 일반적으로 성립하지 않음 |
| 계산량 | 곱셈 번 |
숫자로 해 보기(해설용) — 교환이 안 되는 예: , 이면
로 서로 다릅니다. "어느 쪽에 곱하느냐"가 뜻을 바꿉니다.
배치 계산: 예제 여러 개를 한 번에
예제 개를 행으로 쌓은 에 가중치 를 곱하면 — 모든 예제의 출력이 한 번에 나옵니다. (행 = 예제로 두면 4절과 달리 가 오른쪽에 옵니다. 표기 차이일 뿐 같은 계산입니다.)
숫자로 해 보기(해설용): , 이면 첫 행은 , 둘째 행은 입니다. 넘파이로 계산해도 같습니다.
왜 GPU가 필요한가: 행렬 곱은 서로 독립인 곱셈 · 덧셈이 아주 많아 한꺼번에 나눠 계산하기 좋습니다. 은닉층이 4,096 × 4,096인 층에 예제 1,024개를 넣으면 곱셈만 억 번입니다(해설용 계산). 수천 개의 코어로 동시에 계산하는 GPU가 딥러닝의 핵심 하드웨어가 된 이유입니다.
flowchart LR
A[데이터 한 건: 특성 벡터 x] --> B[여러 건 쌓기: 데이터 행렬 X]
B --> C[행렬 곱 XW: 모든 예제를 한 번에 변환]
C --> D[편향 더하기 + 비선형 함수]
D --> E[다음 층 또는 출력]
A --> F[내적 · 코사인: 두 벡터 비교]
A --> G[노름: 크기 · 거리 재기]6. 전치 · 단위 행렬 · 역행렬 · 랭크
전치와 단위 행렬
- 전치(transpose) : 행과 열을 바꿉니다. (순서가 뒤집힘).
- 단위 행렬(identity) : 대각선이 1, 나머지 0. — 아무것도 바꾸지 않는 변환입니다.
- 대칭 행렬(symmetric): . 공분산 행렬이 대표적이고, 선형대수 2의 고유값 분해에서 주인공입니다.
역행렬과 연립방정식
직관: 역행렬(inverse) 은 변환 를 "되돌리는" 변환입니다. . 그래서 의 해는 입니다.
2 × 2 행렬은 공식이 있습니다.
숫자로 해 보기(해설용): , 를 풉니다.
- 검산: , ✓
왜 실무에서는 역행렬을 직접 안 구하나: 역행렬을 구한 뒤 곱하는 것보다 np.linalg.solve처럼 방정식을 바로 푸는 쪽이 빠르고 수치 오차도 작습니다. 선형 회귀의 정규방정식 도 실제 구현은 분해(QR, SVD 등)로 풉니다.
선형 독립과 랭크
직관: 벡터 묶음에서 어느 하나가 다른 벡터들의 섞음으로 만들어지면 "새 정보가 없는" 벡터입니다. 서로 이렇게 만들어지지 않으면 선형 독립(linearly independent)이고, 행렬에서 독립인 열(또는 행)의 최대 개수가 랭크(rank)입니다.
숫자로 해 보기(해설용): 는 둘째 열이 첫째 열의 2배라 랭크가 1입니다. 행렬식도 이라 역행렬이 없습니다. 이 행렬은 2차원 평면 전체를 한 직선 위로 눌러 버리므로, 눌린 결과에서 원래 점을 되찾을 수 없습니다. 데이터에서 "키(cm)"와 "키(m)" 열이 함께 있으면 이런 일이 생기고(다중공선성), 회귀 계수가 불안정해집니다.
연습 문제
1. , 의 내적과 코사인 유사도는? 두 벡터의 관계는?
풀이: 내적 , 코사인 유사도 0 — 서로 수직입니다.
2. 의 L1 · L2 · L∞ 노름은?
풀이: L1 , L2 , L∞ 입니다.
3. 모양이 인 입력 배치에 가중치를 곱하면 출력 모양과 곱셈 횟수는?
풀이: 출력은 , 곱셈은 번입니다.
4. 의 역행렬은?
풀이: , 입니다. 검산: 의 첫 행 ✓.
스스로 점검
- 신경망 층 에서 가 이면 입력과 출력의 차원은?
- 답: 입력 는 512차원, 출력 는 256차원입니다. 행 수가 출력, 열 수가 입력 차원입니다.
- 코사인 유사도가 내적보다 검색에 자주 쓰이는 이유는?
- 답: 벡터 길이의 영향을 없애고 방향(뜻)만 비교하기 때문입니다. 길이가 다른 문서도 공정하게 비교할 수 있습니다.
- 행렬식이 0인 행렬은 왜 역행렬이 없나요?
- 답: 공간을 더 낮은 차원으로 눌러 버려(랭크 부족) 서로 다른 입력이 같은 출력으로 가기 때문에, 출력에서 입력을 하나로 되찾을 수 없습니다.
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| 스칼라(scalar) | 숫자 하나 |
| 벡터(vector) | 숫자를 한 줄로 늘어놓은 것, 데이터 한 건 |
| 행렬(matrix) | 숫자 표, 데이터 묶음 또는 가중치 |
| 텐서(tensor) | 3차원 이상으로 쌓은 숫자 묶음 |
| 내적(dot product) | 같은 자리끼리 곱해 더한 값 |
| 코사인 유사도(cosine similarity) | 길이를 뺀 방향의 닮음, −1~1 |
| 노름(norm) | 벡터의 크기 (L1 · L2 · L∞) |
| 행렬-벡터 곱 | 행마다 내적해 새 벡터를 만드는 변환 |
| 전치(transpose) | 행과 열 바꾸기 |
| 단위 행렬(identity) | 아무것도 바꾸지 않는 행렬 |
| 역행렬(inverse) | 변환을 되돌리는 행렬 |
| 행렬식(determinant) | 2 × 2에서 , 0이면 역행렬 없음 |
| 랭크(rank) | 독립인 열(행)의 최대 개수 |
| 선형 독립(linear independence) | 어느 벡터도 다른 벡터들의 섞음으로 못 만듦 |
더 깊이 보려면
D2L 2.3절은 스칼라 · 벡터 · 행렬 · 텐서, 텐서 연산의 성질, 합 · 평균 같은 축소(reduction), 내적, 행렬-벡터 곱, 행렬 곱, 노름을 PyTorch · 넘파이 코드와 함께 설명하고 연습 문제를 둡니다. 증명과 기하학적 해석을 더 원하면 머신러닝을 위한 수학의 2장(선형대수)과 3장(해석 기하)을 이어서 보세요.
다음에 볼 것
- 선형대수 2: 고유값 · 고유벡터 · 특잇값 분해(SVD) — 행렬이 "어느 방향으로 얼마나 늘리는지"를 분해해 PCA로 이어 갑니다.
- 미분 최소한 — 벡터 함수의 기울기를 구하는 법을 배웁니다.
라이선스
이 글은 원문 번역이 아니라 KAITABASE가 직접 쓴 해설이며, 숫자 예는 모두 설명용으로 만들고 넘파이로 다시 계산해 확인했습니다. 참고 자료 D2L은 CC BY-SA 4.0(본문)으로 공개되어 있습니다.
출처
- 참고: d2l.ai/chapter_preliminaries/linear-algeb… (D2L 2.3 Linear Algebra)
- 참고: mml-book.github.io (Deisenroth · Faisal · Ong, Mathematics for Machine Learning)
AI 원리부터 이해하기 · 수학 모듈
수학 모듈 학습
이 글은 수학 모듈의 학습 자료입니다. 전체 9개 자료 중 1번째입니다.
출처·원문
원문 보기요약만