[선형 대수] 벡터란

2022. 12. 2. 21:28TIL💡/Linear Algebra

선형 대수에서 벡터란

선형대수는 데이터 분석에 필요한 각종 계산을 돕는 학문이다.

데이터 분석을 하려면 수많은 숫자로 구성된 데이터를 다루어야 한다.

 

선형 대수에서 다루는 데이터는 개수나 형태에 따라 크게 스칼라(Scala), 벡터(Vector), 행렬(Matrix), 텐서(Tensor) 유형으로 나뉜다.

- 스칼라는 숫자 하나로 구성된 데이터

- 벡터는 여러 숫자로 구성된 데이터 레코드

- 행렬은 이러한 벡터, 즉 데이터 레코드가 여럿인 데이터 집합

- 텐서는 크기가 같은 행렬이 여러 개 있는 것

 

스칼라: 숫자 하나

스칼라는 숫자 하나만으로 된 데이터를 의미한다. 스칼라는 보통 x처럼 알파벳 소문자로 표시하며, 실수인 숫자 중 하나이다.

 

벡터: 방향이 있고 순서가 있고 차원의 공간에 존재하는 점

벡터는 숫자 여러 개가 특정한 순서대로 모여 있는 것을 의미한다.

벡터는 세로줄은 하나고, 가로줄은 여러 개인 형태로 위에서 아래로 써서 표기해야 한다.

 

또 벡터 하나를 이루는 데이터 개수가 n개이면 이 벡터를 n차원 벡터라고 한다.

 

행렬: 2차원 배열

행렬은 복수 차원을 가지는 데이터 레코드가 여러 개 있을 때, 이 데이터를 합쳐 표기한 것이다.

벡터 하나는 열이 아니라 행으로 표시한다.

스칼라나 벡터도 수학적으로는 행렬에 속한다.

 

텐서: 3차원 이상의 배열

텐서는 크기가 같은 행렬이 여러 개 같이 묶여 있는 것을 의미한다.

엄격한 수학적 정의로는 다차원 배열로 표현되는 사상(mapping)으로 다차원 배열 자체를 의미하지는 않는다.

하지만 데이터 과학 분야에서는 흔히 다차원 배열을 텐서라고 한다.

 

벡터란

기하학적 정의

벡터는 다음과 같이 크기(magnitude)와 방향(direction)을 가진 물리량이다.

수치와 연관되지 않고 공간상 임의의 점(시작점)에서 임의의 점(끝점)을 연결한 화살표이기 때문에 벡터는 수치적인 개념보다 기하학적 혹은 시각적으로 이해해야 한다.

 

대수적 정의

벡터는 수 또는 함수의 나열이다. 즉, 실수 또는 함수를 원소로 갖는 순서쌍 혹은 배열이다.

 

벡터의 특징

1) 방향성을 갖는다.

다음과 같이 벡터는 시작점(A)에서 끝점(B)으로, 즉 A에서 B로 방향성이 있다.

이 때 선분 길이(r)를 벡터 크기라고 한다. 즉, 벡터는 스칼라 값에 방향이라는 성분이 하나 더 추가된 것이다.

 

2) 크기와 방향이 중요하지 (좌표상의) 어디에 표현하는지는 중요하지 않다.

3) 같은 벡터라고 해서 좌표상의 위치까지 동일하지는 않다.

4) 크기가 같더라도 방향이 다르면 다른 벡터다.

 

벡터의 표현

기하학적 표기

벡터는 시작점과 끝점을 연결하는 유향 선분으로, 벡터 변수에 화살표를 추가하여 표기하거나 한 문자로 표기한다.

대수적 표기

벡터는 다음과 같이 소문자 볼드체로 표시한다.

x = [3 2]

 

 

지금까지 일반적인 벡터를 알아보았다. 그렇다면 벡터로 무엇을 표현할 수 있을까?

다양한 데이터를 벡터로 표현할 수 있다.

 

1) 이진 문자열을 벡터로 표현할 수 있다.

2) 속성들에 대해 벡터로 표현할 수 있따.

3) 확률분포를 벡터로 표현할 수 있다.

4) 이미지를 벡터로 표현할 수 있다.

 

특수한 벡터

단위 벡터

'같은 벡터라도 좌표가 다를 수 있다'는 기하학적으로 같은 벡터라도 대수학적으로는 의미가 다를 수 있다는 것이다.

따라서 기하학적 의미를 대수학적 의미로 해석하려고 단위 벡터를 사용한다.

단위 벡터는 길이가 1인 벡터를 의미하며, 길이가 1이기 때문에 방향 성분만 나타낸다.(크기 성분에는 전혀 영향을 끼치지 않는다.)

 

단위 벡터를 사용하면 곱셈이 단순해진다.

또 컴퓨터 그래픽 응용 프로그램에서는 표면의 방향, 빛 또는 가상 카메라의 방향을 지정할 때 벡터를 사용하는데, 이 때 벡터의 길이가 1이라면 벡터를 연산하는 데 걸리는 시간이 짧아진다. 이처럼 벡터를 단위 형태로 변환하는 것을 정규화라고 한다.

 

위치 벡터

원점이 아닌 곳에 벡터가 있다면 어떻게 표현하면 좋을까? 이 때 사용할 수 있는 것이 위치 벡터이다.

원점이 시작점에 있지 않은 벡터는 원점이 시작점인 벡터들로 표현할 수 있는데, 이러한 벡터들을 위치 벡터라고 한다.

 

끝점에서 시작점으로 뺀다.

 

영 벡터

영 벡터는 모든 성분이 0으로 구성된 벡터이다.

크기(길이)가 0이면서 시작점과 끝점이 같은 벡터를 영 벡터라고 한다.

즉, 벡터의 모든 성분이 0인 것을 영벡터라고 하며, 다음과 같이 영 벡터와 벡터는 차이가 있다.

 

영 벡터 [0 0]이 필요 없다고 생각할 수도 있으나 공간을 이루려면 영 벡터도 반드시 필요하다.

벡터 공간 내에 존재하는 모든 벡터는 선형 결합으로 만들 수 있어야 하기 때문이다.

 

선형 결합이란, 벡터들을 스칼라와 곱하거나 벡터 간 덧셈을 조합하여 새로운 벡터를 얻는 연산이다.

 

영 벡터의 특징

- 어떤 벡터와도 평행이다.

- 어떤 벡터와도 같은 직선 위에 있다.

- 어떤 벡터와도 수직이다.

- 덧셈과 뺄셈의 항등원이다.

 

인공지능에서는 왜 벡터를 사용하는가?

1) 인공신경망에서 입력 데이터는 숫자 데이터만 가능

딥러닝의 인공신경망은 입력층, 은닉층, 출력층 등 계층 세 개로 구성된다.

빅데이터를 분석하고자 입력 노드로 입력되는 데이터는 숫자 데이터만 가능하며, 텍스트 데이터는 입력이 불가능하다.

따라서 텍스트 데이터는 숫자 데이터로 변환해서 사용해야 한다. 단 텍스트 데이터는 불규칙적인 숫자의 나열이 아닌 단어 고유 의미에 따른 연관성을 부여하여 벡터로 변환해야 한다.

 

2) 유사 데이터를 분류하는 데 사용

단어 의미가 유사한 것으로 클러스터링(Clustering)되도록 한다.

단어 의미가 유사한 단어끼리 분류하여 벡터화(vectorized)할 수 있다.

이를 위해서는, 무작위 숫자를 부여하는 것이 아니라 의미를 고려하여 숫자를 적용하고 이를 벡터로 변환한다.