행렬 덧셈·곱셈·전치 연산을 익히고, 신경망 가중치가 행렬로 표현되는 구조를 파악한다.
행렬이란?
행렬(Matrix)은 숫자를 직사각형 격자 형태로 배열한 것입니다. 벡터가 1차원 배열이라면, 행렬은 2차원 배열입니다.
# 2×3 행렬 (2행 3열)
A = [[1, 2, 3],
[4, 5, 6]]
# 이미지는 행렬이다
# 28×28 흑백 이미지 = 784개 숫자로 이루어진 행렬
핵심 행렬 연산
행렬 덧셈: 같은 크기끼리만 가능
A = [[1, 2], [3, 4]]
B = [[5, 6], [7, 8]]
A + B = [[6, 8], [10, 12]] # 같은 위치끼리 더함
행렬 곱셈: AI의 핵심 연산
행렬 곱셈은 단순히 위치끼리 곱하는 것이 아닙니다. (m×n 행렬) × (n×k 행렬) = (m×k 행렬)
A = [[1, 2], B = [[5, 6],
[3, 4]] [7, 8]]
A × B = [[1×5+2×7, 1×6+2×8], = [[19, 22],
[3×5+4×7, 3×6+4×8]] [43, 50]]
행렬 곱셈은 순서가 중요합니다. A×B ≠ B×A (일반적으로).
전치 행렬: 행과 열을 뒤집기
A = [[1, 2, 3], AT = [[1, 4],
[4, 5, 6]] [2, 5],
[3, 6]]
신경망에서 행렬이 하는 일
신경망의 각 레이어는 가중치 행렬과 입력 벡터의 곱셈으로 이루어집니다.
# 신경망 한 레이어의 핵심 연산
출력 = W × 입력 + b
# W: 가중치 행렬 (학습으로 결정됨)
# b: 편향(bias) 벡터
입력이 100개 특징을 가진 벡터이고 레이어가 200개 뉴런을 가지면, W는 200×100 행렬입니다. 이 행렬의 각 숫자가 학습으로 최적화되는 파라미터입니다.
배치 처리: 행렬 곱셈의 위력
AI 훈련 시 데이터를 한 번에 여러 개(배치) 처리합니다. 32개 데이터를 동시에 처리할 때:
# 단일 입력: 벡터 (100,)
# 배치 입력: 행렬 (32, 100)
# 한 번의 행렬 곱셈으로 32개를 동시 계산
출력 = 입력_배치 @ W.T # (32, 100) @ (100, 200) = (32, 200)
GPU는 이 행렬 곱셈을 병렬로 처리하는 데 특화되어 있습니다. AI가 GPU를 필요로 하는 근본적인 이유입니다.
단위 행렬
# 단위 행렬 I: 곱해도 변하지 않음 (숫자 1과 같은 역할)
I = [[1, 0, 0],
[0, 1, 0],
[0, 0, 1]]
A × I = A (항상 성립)
핵심: 신경망 = 거대한 행렬 곱셈의 연속입니다. 행렬 연산을 이해하면 신경망의 내부 구조가 보입니다.
관련 검색어 · 행렬이란, 행렬 곱셈, 신경망 가중치 행렬, 선형대수 행렬, 딥러닝 행렬연산, GPU 행렬 곱셈