[AI 수학적 기초]텐서에 대해 더더알아보자(벡터)

OasisGorilla·2024년 9월 30일
0

벡터란?

텐서 공부일지에서 벡터는 1차원 텐서라고 썼었다.
이번에는 벡터에 대해 공부하며 생각한 내용들을 정리하는 글이다.

강의에서 백터는 다음과 같은 특징을 갖고 있다고 말하고 있다.

  • 1차원 배열
  • 소문자이면서 두꺼운 이탤릭체로 표기함 e.g. x
    (스칼라는 소문자 이탤릭체로 표기했었음)
  • 인덱스로 각 원소에 접근이 가능함
    (각 원소는 스칼라이므로, 소문자 이탤릭체로 표현한다.)

벡터는 무조건 1차원 배열이다.
[1, 2, 3]이나 [4, 5] 처럼 표현된다.
이때 [1, 2, 3]은 3차원 공간에서의 벡터다.
[4, 5]는 2차원 공간에서의 벡터다.

[1, 2, 3, 4, 5] 와 같은 시각화하기 어려운 5차원 공간에서의 벡터도 있다.

2차원배열은 뭐다? 2 rank tensor다.(행렬로도 표현 가능) 조금 헷갈렸던 개념은
차원이라는게 배열의 차원과 벡터의 차원이 다르다는 사실이 처음에는 조금 헷갈렸으나,
몇 번 반복하니 명확해졌다.

이제 벡터의 연산에 대해서 알아볼 것이다.

벡터의 전치

행렬 내의 원소를 대각선 축을 기준으로 서로 위치를 바꾼 것[출처, 나무위키]

원래 행렬의 행과 열을 뒤바꾼 행렬[출처, 위키독스]

벡터의 열과 행을 바꾸는 연산이다. 3행 1열의 벡터를 1행 3열로 바꾸는 연산.
PyTorch에서는 만들어진 텐서에 '.T'속성을 붙여서 만들고,
TensorFlow에서는 tf.transpose()함수에 만들어진 텐서를 매개변수로 넣어서 만든다.

노름벡터(norm)와 단위 벡터

벡터의 놈(norm)은 원점으로부터의 거리를 나타내는 것 같다.
강의나 여러 자료에서는 벡터의 크기 또는 길이를 측정하는 방법이라고 한다.

구하는 방법은 각 배열의 요소를 제곱하여 모두 더한 것의 제곱근을 구하면 된다.
직각 삼각형의 빗변 길이 구하는걸 떠올리면 쉽다.(피타고라스의 정리)

이 거리를 유클리드 거리라고 하는데, 유클리드 거리는 피타고라스 정리를 일반화한 것이라고 한다.
[출처, 위키피디아]

L2 norm

벡터의 놈은 || 로 텐서를 감싸서 표현한다.
텐서 x의 놈은 ||x||로 표현한다.
여기까지 다룬 norm은 L2 norm이다.

단위벡터(unit vector)는 크기가 1인 norm을 의미한다.

L1 norm

이는 단순히 각 원소의 절댓값을 더한 것이다.

둘의 차이는 거리를 구하는 방법의 차이이며, 이렇게 측정된 거리값은 방법에 따라 다르게 나온다.

Squared L2 norm

이는 L2 norm을 구하는 과정에서 마지막 제곱근을 구해주는 과정을 뺀 방법이다.

연산적으로는 이득이지만, 큰 값에 과도하게 반응하여 모델 모양이 과도하게 정규화된다고 gpt와 강의에서 말했다.

표현해야할 정보보다 덜 표현될 수 있다는 얘기로 이해했다.

제곱근이 제거되기 때문에 미분이 간편해져 연산비용이 줄어든다.
또한 경사하강법과 같은 최적화 과정에서 부드러운 기울기를 제공하는 이점도 있다고 한다.

Max norm

텐서의 성분 중 가장 큰 절대값을 크기로 정의하는 방법
강의에서는 크게 다루지 않았지만, 딥러닝에서 가중치의 최대 크기를 제한할 때 사용한다고 한다.
신경망이 과도하게 학습하는 것을 막는다.

이 모든 norm을 일반화 하는 Lp norm 공식도 알려줬다.

실제로 위 식에 p>=1을 적용하면 다 들어맞는다.(max는 무한대)

기저, 직교, 정규직교 벡터

기저벡터(Basis vector)

어떤 주어진 벡터공간에서 임의의 벡터를 표현할 수 있는 기준이 되는 벡터의 집합

  • 기저벡터들의 선형 결합으로 모든 벡터를 표현할 수 있음
  • 좌표의 축처럼 서로독립(선형 관계에 있지 않음)인 벡터들의 집합
  • 2차원 공간에는 2개의 기저벡터가, 3차원 공간에는 3개의 기저벡터가 필요하다.

직교벡터(Orthogonal vector)

서로 90도 관계에 있는 벡터

xy가 있다고 할 때 xTy = 0 이면
직교벡터라고 한다.

n차원 벡터공간은 n개의 직교벡터를 갖는다.

정규직교벡터(Orthonormal vector)

서로 직교하면서, 각 벡터의 크기(norm)가 1인 경우

0개의 댓글