벡터, 행렬의 곱셉연산 용어 정리

LeeKunHa·2023년 9월 25일

선형대수학

목록 보기
1/1

용어 정리

1. Scalar Multiplication(스칼라 배)

  • 스칼라*벡터=벡터
  • 2 * [1,2,3] = [2,4,6]
  • 스칼라와 벡터 또는 행렬의 각 원소를 곱하는 연산
  • *, np.multiply

2. Scalar Product=Dot product(내적)

  • 벡터*벡터=스칼라
  • [1,2,3]*[4,5,6]=4+10+18=32
  • 원소 수가 같은 두 벡터의 같은 위치 원소끼리 곱한 뒤, 그 결과를 더하는 연산(내적을 이용해 구하는 행렬의 Matrix Multiplication에서는 같은 위치는 아님. 벡터는 1차원이기 때문에 같은 위치라고 표현한 것)
  • (파이썬 코드)
  • @, np.dot, np.inner(행렬에서는np.matmul)

3. Element-wise Multiplication=Element-wise Product(원소 곱)

  • 벡터벡터=벡터, 행렬행렬=행렬
  • [1,2,3]*[4,5,6]=[4,10,18]
  • 원소 수가 같은 두 벡터 또는 행렬의 같은 위치 원소끼리 곱하는 연산
  • *, np.multiply

4. Matrix Element Multiplication(행렬의 원소 곱)

  • 행렬*행렬=행렬
  • [[1,2],[3,4]]*[[1,2],[3,4]]=[[1,4],[9,16]]
  • 원소 수가 같은 두 행렬의 같은 위치 원소끼리 곱하는 연산
  • Element-wise Multiplication에서, 행렬끼리의 연산이 곧 Matrix Element Multiplication
  • (파이썬 코드)
  • *, np.multiply

5. Matrix Scalar Multiplication(행렬의 스칼라 곱)

  • 스칼라*행렬=행렬
  • 2 * [[1,2],[3,4]] = [[2,4],[6,8]]
  • 스칼라와 행렬의 각 원소를 곱하는 연산
  • Scalar Multiplication에서, 스칼라와 행렬의 연산이 곧 Matrix Scalar Multiplication
  • *, np.multiply

6. Matrix Multiplication(행렬 곱)

  • 행렬*행렬=행렬
  • [[1,2,3],[4,5,6]]*[[1,2],[3,4],[5,6]]=[[22, 28],[49, 64]]
  • 행렬A의 행벡터와 행렬B의 열벡터의 동일한 위치의 원소를 곱한 후 더하는 연산
  • 행렬A의 행벡터와, 행렬B의 열벡터 간의 Scalar Product결과를 행렬로 표현한 형태와 동일하다.
  • (전제조건) 행렬A의 열벡터의 원소개수(열벡터의 차원)와 행렬B의 원소개수가 동일해야 연산이 가능하다((nm)(q*p)일때, 안쪽에 있는 m과 q가 같아야 함).
  • 그 결과 행렬AB의 크기는, 행렬A의 행벡터의 원소개수(행벡터의 차원)와 행렬B의 열벡터의 원소개수로 정의된다.
  • 즉, 행렬A의 i행과 행렬B의 j열의 원소를 곱한 후 더하면 행렬AB의 i행j열을 구할 수 있다.
  • @, np.dot, np.matmul(벡터에서는np.inner)

정리

(정리)Scalar MultiplicationScalar Product=Dot productElement-wise Multiplication=Element-wise ProductMatrix Element MultiplicationMatrix Scalar MultiplicationMatrix Multiplication
한국어 표기스칼라 배,스칼라 곱내적,점곱원소 곱,요소별 곱셈행렬의 원소 곱행렬의 스칼라 곱행렬 곱
입력 형태스칼라*벡터벡터*벡터벡터벡터/행렬행렬행렬*행렬스칼라*행렬(n,m)행렬(n,m)*행렬(q,p)
결과 형태벡터스칼라벡터/행렬행렬행렬(n,m)행렬(n,p)
연산 성립조건(해당없음)두 벡터의 차원(원소 수)일치두 벡터 혹은 두 행렬의 차원일치두 행렬의 차원일치(해당없음)행렬A의 열(m)과 행렬B의 행(q)의 차원 일치
기호 표기**
파이썬 연산(가능)*,np.multiply,np.dot,np.inner@,np.dot,np.inner,matmul*,multiply*,multiply*,np.multiply,np.dot,np.inner@,np.dot,np.matmul
파이썬 연산(권장)*,np.multiply@,np.dot,np.inner*,multiply*,multiply*,np.multiply@,np.dot,np.matmul

참고

  • Matrix Multiplication에서 사용되는 np.dot vs np.matmul의 차이도 존재합니다. 이에 대해서는 https://jimmy-ai.tistory.com/75 에 자세하게 설명되어 있습니다.

0개의 댓글