본문 바로가기

Study/AI

[선형대수] 행렬과 벡터의 차이 + 성분곱과 행렬곱, 벡터곱

반응형

# 1. 행렬과 벡터의 차이

벡터는 m×1이나 1×m으로 나타납니다. 행렬의 행이나 열 size가 1이면 그 행렬을 vector라고 부릅니다.

행렬은 m×n으로 나타낼 수 있습니다. 이는 m개의 행과 n개의 열로 이루어진 행렬입니다. 벡터를 원소로 가지는 2차원 배열로도 볼 수 있습니다. 의식해서 각 수를 개수라고 생각해야지, 안 그러면 헷갈립니다. 

 

전 고등학교 과정에서 벡터만 배웠기 때문에 실수로 행렬과 벡터를 같은 개념으로 생각했습니다. 그러나 행렬과 벡터는 엄연히 다르게 사용되는 개념이기 때문에 혼동하지 않도록 주의해야 합니다.

 

행렬의 쓰임에 대한 정보는 링크한 포스트 참조(https://pasus.tistory.com/2)

 

# 2. 성분곱(Hadamard product, 아다마르 곱)

성분곱은 벡터와 행렬 모두에게 동일하게 적용할 수 있습니다.

 

m×n과 m×n 과 같이 모양이 같은 두 행렬/벡터에 대해서 성분곱이 가능합니다. 피연산 행렬/벡터의 동일 위치 원소끼리 곱하여 결과 행렬/벡터의 동일 위치에 넣어주면 됩니다.

 

이런 계산 방법을 element wise product라고도 합니다.

기호는 ⨀를 사용하며 계산 방법은 아래와 같습니다.

# 3. 행렬 곱(matrix multiplication) ≠ 벡터 곱(Vector Multiplication)

#1에서 행렬과 벡터는 같은 개념이 아닌 것을 분명히 했습니다. 그렇다면 행렬의 곱과 벡터의 곱 또한 같지 않다는 것을 예상할 수 있습니다.

 

행렬의 곱(matrix multiplication)은 외적 또는 내적과 같지 않습니다. 외적과 내적은 벡터의 곱(Vector Multiplication)에 해당합니다.

벡터에는 벡터의 곱(Vector Multiplication)인 외적과 내적이 있다면, 행렬에는 행렬곱(matrix multiplication)이 있습니다.

 

# 3-1.벡터의 곱(Vector Multiplication)

벡터의 곱에 대해 먼저 알아봅시다.

벡터의 곱에는 내적(inner product)과 외적이 있습니다. 아래의 자료로 비교해봅시다.(outer product와 cross product는 다른 개념인데, 자료에서는 이 둘을 동일하게 취급하고 있네요. 이 부분은 수정되어야 하는 게 맞는 것 같아서 지워두었습니다.)

 

1. 벡터의 외적

원래 두 개의 다른 수학적 개념이 있었는데 한국에서는 그 두 개념을 모두 외적이라고 번역해 버렸습니다. 때문에 두 개념을 잘 구분해야 합니다. 하나는 Cross product(벡터곱)이고 또 하나는 Outer product입니다.

 

Cross product

Cross product(벡터곱)가 흔하게 고등학교 때 배웠던 그 개념입니다.

 벡터 a, b의 벡터곱 a×b=v는 벡터 값이며 그 크기(길이)인 |v|는 |a||b|sinθ이고 (θ는 a, b가 이루는 각의 크기) 방향은 a, b에 모두 수직입니다. 3차원으로 연결되겠죠. |v|는 평행사변형의 면적과 같습니다.

계산 과정은 두 벡터의 성분으로 구성된 행렬식(determinant)를 계산하면 됩니다.

(과정은 링크한 영상을 참고: https://www.youtube.com/watch?v=XDbBq6ImWi4)

(링크한 포스트 참고: https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=spin898&logNo=221145110501)

Outer product

Outer product는 생소합니다. 이는 두 벡터 간의 텐서곱을 부르는 말입니다.

두 벡터의 outer product의 결과는 행렬입니다. 계산 방법은 아래와 같습니다.

이 개념에 대해서는 깊게 들어가야하기 때문에 생략하겠습니다. 

 

2. 벡터의 내적

벡터의 내적은 inner product이고 dot product, scalar product, projection product)라고도 합니다. ·(dot)으로 연산을 표기하고 계산 결과가 스칼라 값입니다.

 

두 벡터 a, b의 시작점을 일치시키면, 둘의 사잇각 θ(0≦θ≦π)가 정의되며 a·b=|a||b|cosθ로 정의됩니다.(때문에 a·b=0이면 벡터 a와 벡터 b가 서로 직교한다는 것을 알 수 있습니다.) 기하학적으로 해석하면 b에 a를 정사영(투영)하는 것입니다.

 

성분으로 표시된 두 벡터 a, b의 내적은 아래와 같이 정의됩니다.

 

# 3-2. 행렬의 곱(matrix multiplication)

행렬의 곱인 matrix multiplication은 i번째 행벡터와 j번째 열벡터 사이의 내적을 성분으로 가지는 행렬을 계산합니다.

m×n 행렬 A와 r×p 행렬 B의 곱 C=AB는 m×p 행렬입니다. 이때 C가 정의되려면 r=n이어야 합니다. 즉, 앞 행렬의 column 개수와 뒤 행렬의 row 개수가 같아야 곱이 가능합니다. 

계산 결과는 아래와 같습니다.

 

반응형