欲速不達

일을 급히 하고자 서두르면 도리어 이루지 못한다.

Fantastic AI, Fantastic World

DS | Data Science/Statistics & Math

[Scala & Vector & Matrix] 스칼라와 벡터와 행렬

_껀이_ 2022. 9. 20. 20:14
728x90
반응형

1. Scala (스칼라)

 일반적으로 스칼라라고 하면 벡터 공간(Vector Space)의 세 요소 중 하나로 물리학에서는 '방향을 가지지 않은 크기만 존재하는 물리량'이다. 수학에서 또한 방향을 가지지 않은 하나의 값을 가지는 단위이며 일반적인 수라고 볼 수 있다.

 

 

2. Vector (벡터)

 벡터는 숫자를 원소로 하는 리스트 / 배열(list / array)이다. 또 벡터는 벡터공간 안에서 한 점을 의미하며, 원점으로부터 상대적 위치를 가지고 있으며 이를 원점에서의 벡터로의 방향으로 볼수 있다. 

 

  • 특징
  1. 벡터는 공간에서의 한 점
  2. 원점으로부터 상대적 위치를 표현
  3. 숫자(스칼라)를 곱해주면 길이가 변함
  4. 숫자(음수)를 곱하면 길이는 그대로 원래방향과 정반대방향이 됨
  5. 같은 모양의 벡터는 덧셈, 뺄셈, 성분곱(Hadamard Product) 가능

 

  • 성분곱(Hadamard Product)

      : 서로 다른 벡터나 행렬에 대해 같은 위치에 있는 성분끼리 곱셈 연산을 하는 것

 

  • 벡터의 노름(norm)

      : 벡터의 노름은 원점으로부터의 거리, 즉 벡터의 길이를 말함

      : L1-norm --> 각 성분의 변화량의 절대값의 합

                           뺄셈을 통해 두 벡터 사이의 거리를 계산

      : L2-norm --> 각 성분의 제곱의 합의 제곱근 / 피타고라스 정리를 이용해 유클리드 거리 계산

                           각 성분의 차이로 L2-norm을 계산함으로써 거리를 계산할 수 있고 두 벡터 사이의 각도도 계산 할 수 있음

 

두 벡터 사잇각 θ
θ 계산식

 위의 θ 계산식과  같이 제 2 코사인 법칙에 의해 각도를 구할 수 있다. 분자는 벡터 v1, v2의 내적이며, 분모는 각각의 L2-norm을 곱한 것이다.

 

  • 정사영(Orthogonal Projection)

       : 시작점이 같은 두 벡터 x, y에서 벡터 x가 벡터 y에 수직이 되게 만나는 곳과 시작점의 거리를 말한다.

       : 벡터 y 위에 있는 벡터 x의 그림자로 볼 수 있다.

 

       : Proj(x) = llxll * cosθ --> 코사인 법칙에 의해 Proj(x)는 llxll cosθ가 된다.

       : llyll Proj(x) * <x,y> = llxll * llyll * cosθ --> 내적은 정사영의 길이를 벡터 y의 길이 llyll만큼 조정한 값이다.

 

 

3. Matrix (행렬)

 행렬은 벡터를 원소로 가지는 2차원의 배열이며, 같은 모양을 가지는 행렬끼리는 덧셈, 뺄셈을 할 수 있다. 또, 성분곱은 벡터와 같이 적용된다. 

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

 * numpy의 np.inner() 함수는 i번째 행벡터와 j 번째 행벡터 사이의 내적을 성분으로 가지는 행렬을 계산하지만 수학에서 말하는 내적과는 다르다.

 

  • 행렬은 벡터공간에서 사용되는 연산자(operator)로 이해한다.
  • 행렬곱을 통해 벡터를 다른 차원의 공간으로 투영할 수 있다. --> 선형변환(linear transformation)
  • 행렬곱 -> 패턴 추출 / 데이터 압축 할 수 있다.
  • 역행렬

       : 어떤 행렬 A(nxn)에 행렬곱을 한 행렬 B(nxn)가 a*I(단위행렬)이 될때 행렬 B를 A의 역행렬이라고 한다. 이때 행렬 A           의 행렬식이 0이 되면 안된다.

역행렬

  • 유사역행렬

       : 역행렬이 계산할수 없을때 유사역행렬 또는 Moore-Penrose 역행렬을 이용한다. 

유사역행렬

 

 

 

 

참고자료 : 네이버부스트캠프 AI Tech 강의자료

728x90
반응형