[딥러닝] 선형대수(1) 벡터와 벡터의 기하학적 의미
01. 선형대수
선형대수는 벡터(vector)와 행렬(matrix)로 숫자를 표현하고 연산하는 수학의 한 분야로, 공간을 설명하는데 편리한 용어나 개념을 제공한다. 특히 컴퓨터 그래픽, 머신러닝, 신호처리, 데이터 분석 등 다양한 분야에서 선형대수의 개념을 활용하기 때문에 선형대수를 제대로 이해하는 것이 중요하다.
1) 컴퓨터 그래픽에서의 선형대수
컴퓨터 그래픽에서는 선형 대수를 사용하여 3차원 공간상에서 객체의 위치, 회전, 크기 등을 표현한다. 예를들어 3차원 공간에 있는 하나의 삼각형의 각 꼭짓점을 3차원 좌표계로 표현했을 때, 이 좌표계는 다시 벡터로 표현할 수 있다. 따라서 벡터들 간의 연산을 통해 삼각형의 위치나 크기를 변경할 수 있게 된다.
2) 딥러닝에서의 선형대수
대용량의 데이터를 다루는 딥러닝에서는 각 데이터들을 행렬과 벡터의 형태로 표현할 수 있다. 예를 들어 이미지 데이터는 픽셀의 배열로 표현할 수 있으며, 이 배열은 다시 행렬로 표현된다. 이 행렬을 활용하여 이미지 인식, 얼굴인식, 자연어 처리 등 다양한 분야에서 알고리즘을 개발할 수 있다.
3) 신호처리에서의 선형대수
신호처리분야에서 선형대수는 가장 중요한 개념 중 하나이다. 예를 들어, 시간축으로 표현되는 디지털 오디오 신호를 벡터와 행렬 형태로 변환할 수 있으며 이를 활용하여 신호처리 알고리즘, 오디오 필터링, 음성인식, 음악 분석 등에 사용된다.
4) 데이터분석에서의 선형대수
데이터 분석에서의 다차원 데이터 또한 행렬과 벡터로 표현될 수 있으며 이를 통해 차원을 축소하거나 데이터 간의 상관관계를 파악하고 예측 모델링을 할 수 있다. 뿐만 아니라 행렬 연산을 이용하여 데이터의 특징을 추출하거나 머신러닝 알고리즘에서 가중치와 바이어스를 결정하는 등 다양한 곳에 활용된다.
📁선형대수의 주요 구성 요소
스칼라(Scalar) : 하나의 숫자(보통 실수)
벡터(vector) : 여러 개의 숫자를 한줄로 나열/배열한것(1D array)
행렬(Matrix) : 여러개의 숫자를 사각형의 형태로 배열한 것(2D array), 공간에서 공간으로의 직교사상
텐서(Tensor) : 컴퓨터 프로그래밍에서는 n-D array를 tensor라고 표현, 숫자를 저장하는 역할
02. 벡터(vector)의 기하학적 의미
우선, 데이터 분석을 하기 위해서는 데이터를 수학적인 형태로 표현해야 한다. 조금 더 구체적으로, 각 관측치를 하나의 벡터 형태로 변환해야 하고, 이때 보편적으로는 독립변수(feature) 정보가 사용된다(독립변수가 각 관측지들의 특성을 나타내기 때문에).
예를 들어 왼쪽의 데이터 프레임에서 각 관측치에는 3개의 feature정보(나이, 경력, 학력)가 있으며, 관측치 1 = (30, 2, 고등학교)로 표현할 수 있다. 이때 (30,2, 고등학교)를 '관측치 1'의 원소라고 한다. 첫 번째 원소는 1차원 축에 해당되는 값이며, '원점으로부터 x축을 따라 얼마나 이동할지'를 나타낸다. 두 번째 원소는 2차원 축에 해당되는 값으로, y축을 따라 얼마나 이동할 것인가에 대한 값이며 마찬가지로 세 번째 값은 3차원 즉, z 축으로 얼마큼 이동할지를 나타낸다.
이 3개의 feature들 중, 2개의 feature정보(나이, 경력)만을 가지고 각 관측치들을 오른쪽 그림과 같이 2차원 벡터로 나타낼 수 있다. 이러한 과정을 통해 각각의 관측치의 원소값에 따라 벡터의 위치가 결정되는 것이다.
위의 예시처럼 CS관점에서는 각각의 데이터를 단순히 수치의 조합으로 생각하는 것이 아니라, '공간 상의 한 점'으로 바라보는 것이 중요하다. 이때 점이 공간상에 어느 위치에 찍힐 것인가?(즉, 벡터의 위치)는 벡터의 원소값들에 의해 결정된다. 다시 말해, 벡터가 공간상에 어디에 위치해 있는지는 곧 해당 벡터의 고유한 특성이 반영된 결과라는 의미가 된다.
또한 공간은 '차원'을 가지고 있으며 '몇 차원의 공간인가?'는 그 공간에서 수직인 축이 몇 개 있는가? 에 따라 정의된다. 예를 들어 3차원 공간의 경우, 서로 수직인 축(x, y, z)이 3개 존재하는 것이다.
차원 = 기저 벡터의 개수 = 좌표 성분의 수
*왜 '서로 수직인 축'인가?
서로 수직인 축은 각 축의 방향이 독립적이며 뿐만 아니라 한 축을 따라 이동하면서 다른 축으로의 이동이 독립적으로 이루어질 수 있게 해 준다. 이는 공간 내에서 모든 가능한 벡터들을 서로 독립적인 성분으로 분해할 수 있다는 의미이다.
예를 들어 벡터 a = (3,4)가 있을 때, a의 위치는 x축의 방향으로 3만큼, y축의 방향으로 4만큼 이동한 결과이다. 이를 x축과 y축의 성분으로 나누어 표현하자면, (3,0) + (0,4)로 나타낼 수 있다. 즉, 벡터 a는 x축의 방향의 성분이 3이고, y축 방향의 성분이 4인 두 개의 벡터의 합으로 표현할 수 있는 것이다. 따라서 서로 수직인 축은 해당 공간 내에서 모든 가능한 벡터들을 독립적인 성분으로 분해할 수 있도록 해주며, 이를 통해 공간의 차원을 정의할 수 있다.
🖇참고문헌
https://www.youtube.com/watch?v=fNk_zzaMoSs&list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab&index=1&t=290s