텐서곱 계산기

두 벡터의 텐서곱(외적)을 계산하고, 행렬 또는 평탄화 벡터로 결과를 표시합니다.

콤마나 공백으로 구분한 숫자 형태로 두 벡터를 입력하고, 출력 형식을 선택한 뒤 계산을 클릭하세요.

텐서곱 계산기
두 벡터의 텐서곱(외적)을 계산하고, 행렬 또는 평탄화 벡터로 결과를 표시합니다.

텐서곱 계산기 소개

벡터 문맥에서 텐서곱은 외적이라고도 부르며, 두 벡터로부터 행렬을 만드는 선형대수의 기본 연산입니다. m개의 성분을 가진 벡터 u와 n개의 성분을 가진 벡터 v가 있으면, 그 텐서곱 u ⊗ v는 m × n 행렬이 되며 i행 j열의 원소는 uᵢ와 vⱼ의 곱입니다. 이는 두 벡터를 하나의 스칼라로 줄이는 내적과 뚜렷이 대비되며, 3차원 벡터에만 적용되어 다른 벡터를 반환하는 외적과도 다릅니다. 수학적으로 u = [u₁, u₂, …, uₘ], v = [v₁, v₂, …, vₙ]라면 유효한 모든 (i, j)에 대해 (u ⊗ v)ᵢⱼ = uᵢvⱼ입니다. 계산 복잡도는 O(mn)이므로, 비교적 큰 벡터에도 효율적입니다. 텐서곱은 쌍선형이어서 어느 한 벡터를 같은 비율로 스케일하면 결과도 같은 비율로 스케일되고, 벡터 덧셈에 대해 분배됩니다. 텐서곱은 교환법칙이 성립하지 않습니다. u ⊗ v와 v ⊗ u는 일반적으로 다른 행렬이며, 하나는 m × n, 다른 하나는 n × m입니다(m = n이고 특별한 관계가 있는 경우는 제외). 첫 번째 벡터가 행을, 두 번째 벡터가 열을 결정하기 때문입니다. 이러한 비대칭성은 순서 자체가 물리적 또는 의미적 의미를 갖는 물리학이나 머신러닝에서 특히 중요합니다. 양자역학에서 텐서곱은 복합계를 설명하는 데 필수적입니다. 두 양자계를 결합하면 복합계의 상태 공간은 각 상태 공간의 텐서곱이 됩니다. 예를 들어 두 큐비트 시스템은 4차원 상태 공간을 가지며, 이는 두 개의 2차원 큐비트 공간의 텐서곱입니다. 양자 얽힘은 복합 상태를 개별 상태의 단순한 텐서곱으로 쓸 수 없을 때 정확히 나타납니다. 머신러닝과 데이터 과학에서는 텐서곱(그리고 그 고차 일반화인 텐서)이 Transformer의 어텐션 메커니즘, 추천 시스템의 특성 교차 연산, 이미지 처리의 분리 가능 합성을 뒷받침합니다. 예를 들어 가우시안 블러 커널은 1차원 수평 가우시안 필터와 1차원 수직 가우시안 필터의 텐서곱으로 볼 수 있으며, 이를 통해 효율적인 분리 계산이 가능합니다. 신호 처리에서는 다차원 필터를 1차원 필터의 텐서곱으로 표현하면 계산량을 크게 줄일 수 있습니다. 이 계산기가 생성하는 평탄화 벡터 표현은 완전연결 신경망 층처럼 후속 연산이 1차원 입력을 기대할 때 특히 유용합니다.

텐서곱 예시

서로 다른 벡터 차원과 출력 형식을 보여주는 네 가지 예시입니다.

벡터결과메모
u = [1, 2], v = [3, 4][[3, 4], [6, 8]]2 × 2 행렬. (1,1) 원소 = 1×3 = 3; (2,2) 원소 = 2×4 = 8.
u = [1, 2, 3], v = [4, 5][[4, 5], [8, 10], [12, 15]]3 × 2 행렬로, 벡터 길이가 달라도 됨을 보여줍니다.
u = [1, 0], v = [0, 1][[0, 1], [0, 0]] | flattened: [0, 1, 0, 0]표준 기저 벡터의 외적입니다. 비영(0이 아닌) 원소는 1행 2열에만 나타납니다.
u = [2, 3], v = [1, 4][[2, 8], [3, 12]]일반적인 2 × 2 경우입니다. 결과의 각 행은 u의 해당 성분으로 스케일된 v입니다.

텐서곱 계산기 사용 방법

  1. 첫 번째 벡터 u의 성분을 콤마 또는 공백으로 구분한 숫자로 입력하세요. 예: 1, 2, 3.
  2. 같은 형식으로 두 번째 벡터 v를 입력하세요. 두 벡터의 성분 수는 달라도 됩니다.
  3. 출력 형식을 선택하세요. 'Matrix Format'은 결과를 행과 열의 표로 보여주고, 'Flattened Vector'는 모든 요소를 한 줄로 보여줍니다.
  4. 계산을 클릭하면 행렬 차원과 함께 결과 행렬(또는 평탄화 목록)이 표시됩니다.
  5. 초기화를 클릭하면 모든 입력이 지워지고 새 계산을 시작할 수 있습니다.

텐서곱 계산기 FAQ

텐서곱과 내적의 차이는 무엇인가요?
내적은 길이가 같은 두 벡터를 받아 대응하는 성분의 곱을 모두 더해 하나의 수(스칼라)를 반환합니다. 텐서곱은 길이에 상관없이 두 벡터를 받아, 첫 번째 벡터의 각 성분과 두 번째 벡터의 각 성분을 모두 곱한 행렬을 반환합니다. 텐서곱은 두 벡터의 모든 정보를 보존하지만, 내적은 이를 하나의 수로 압축합니다.
두 벡터는 반드시 같은 길이여야 하나요?
아니요. 벡터의 성분 수는 달라도 됩니다. u에 m개, v에 n개의 성분이 있으면 결과는 m × n 행렬입니다. 이것이 텐서곱이 같은 길이를 요구하는 내적보다 더 일반적인 이유 중 하나입니다.
텐서곱은 교환법칙을 만족하나요?
아니요. u ⊗ v는 일반적으로 v ⊗ u와 다릅니다. 첫 번째 벡터가 항상 행을, 두 번째 벡터가 항상 열을 결정하므로, 순서를 바꾸면 결과 행렬이 전치되고 경우에 따라 모양도 달라집니다.
평탄화 벡터 형식은 무엇을 뜻하나요?
평탄화 벡터는 m × n 결과 행렬을 행 우선 순서로 읽어 mn개의 숫자를 가진 하나의 목록으로 만든 것입니다. 텐서곱을 1차원 입력으로 다음 계산에 넘겨야 할 때 유용하며, 예를 들어 고정 길이 특징 벡터를 기대하는 머신러닝 모델에 넣을 때 좋습니다.
텐서곱은 양자 컴퓨팅에서 어떻게 쓰이나요?
양자역학에서는 다입자계의 상태를 각 입자 상태의 텐서곱으로 설명합니다. 두 큐비트가 각각 [a, b]와 [c, d] 상태에 있다면, 결합된 시스템의 상태는 그들의 텐서곱이며 4성분 벡터가 됩니다. 이 형식화가 바로 양자 컴퓨터의 상태 공간이 지수적으로 커지는 이유입니다.
크로네커 곱과의 관계는 무엇인가요?
크로네커 곱은 행렬에 대한 텐서곱의 일반화입니다. 입력이 벡터(열 행렬로 간주)일 때 u ⊗ v는 열 벡터 u와 행 벡터 vᵀ의 크로네커 곱과 같으며, 같은 m × n 행렬을 만듭니다. 일반 행렬의 경우 크로네커 곱은 블록 행렬을 생성합니다.