이 단원 목차
남는 지표와 합산하는 지표
수축은 지정한 지표를 따라 성분을 곱하고 합하는 연산입니다. X의 shape가 (2,2,2)이고 v가 길이 2이면 마지막 축과의 수축은
i,j는 자유 지표로 출력에 남고 k는 합산 지표로 사라집니다. 출력 shape는 (2,2)입니다. 원소별 곱이라면 합산축이 남기 때문에 다른 연산입니다. Einstein 표기에서는 반복 지표로 합을 생략할 수 있지만 자유 지표가 식의 양쪽에서 맞는지 확인해야 합니다.
고정된 예제의 손계산
실습은 Xᵢⱼₖ=1+4i+2j+k, v=(1,2)를 사용합니다. 즉 원본 평탄 값은 1부터 8입니다.
나머지는 17,23입니다. 표에서 각 자유 좌표와 값을 비교하세요. 출력 네 원소마다 곱셈 두 번과 덧셈 한 번이 필요하므로 직접 구현 기준 곱셈 8회·덧셈 4회입니다. 이 작은 연산 수는 CPU·GPU 실행 시간 측정이 아닙니다.
어느 축을 합하는지가 중요하다
첫 축 i를 합하면 남는 순서는 (j,k)이고 출력은 (11,14,17,20)입니다. shape는 여전히 (2,2)이지만 숫자는 달라집니다. 축 크기가 우연히 같으면 잘못된 축을 수축해도 shape 오류가 나지 않아 더 위험합니다.
실습은 합산하지 않는 축을 원래 오름차순으로 남깁니다. 다른 라이브러리가 출력 축을 다른 순서로 배치하는지 명시적 출력 지표로 확인하세요.
기저와 쌍대의 역할
추상적으로 자연스러운 수축은 벡터와 공변벡터, 즉 쌍대공간 사이의 pairing입니다. 기저 변환 때 둘의 성분이 적절히 반대로 변해야 스칼라 또는 남은 텐서가 일관되게 변환됩니다. Euclidean 직교 기저에서는 내적으로 벡터를 공변벡터와 식별해 익숙한 dot product처럼 계산할 수 있습니다.
이 단원은 고정된 실수 Euclidean 기저를 사용합니다. 복소 공간의 Hermitian pairing에는 켤레가 필요하고, 임의 곡선 좌표에서는 metric 성분까지 확인해야 합니다. 단순 배열의 repeated index를 모든 좌표계에서 자동으로 불변인 식이라고 해석하지 마세요.
AI에서의 연산식
attention에서 QᵢₐKⱼₐ를 a에 대해 합하면 점수 행렬 Sᵢⱼ가 됩니다. batch나 head가 추가되면 그 축을 남기는지, 서로 섞어 합하는지 명시해야 합니다. 같은 einsum 문자열이라도 입력 축의 이름을 잘못 대응하면 의도와 다른 모델이 됩니다.
그림은 이산 출력 원소 값이며 표는 남는 좌표를 적습니다. v=0이면 출력이 영배열이 되지만 shape가 사라지는 것은 아닙니다.
확인 문제와 답
- X가 (3,4,5),v가 (5,)이고 마지막 축을 수축하면? **(3,4)**입니다.
- v=(0,0)이면? (2,2) 영배열입니다.
- 모든 크기가 2일 때 축 선택 오류를 shape만으로 잡나요? 아니요. 실제 원소와 지표 의미를 검산해야 합니다.
추가 읽기: Kolda–Bader, Tensor Decompositions and Applications. 본문의 작은 배열·복원·비용 예제는 직접 구성했습니다.
설명할 수 있나요?
실험 설정과 무관한 기준 예제를 묻습니다. 답을 고르고 설명을 확인해보세요.
선택한 답과 학습 표시는 이 브라우저에 저장됩니다. 다시 풀거나 표시를 해제할 수 있습니다.