본문 바로가기

인공지능

인공지능 수학 (벡터)

인공지능(AI)은 현대 사회에서 놀라운 발전을 이루고 있는 기술 분야 중 하나입니다. 이러한 발전의 핵심은 수많은 데이터를 분석하고 이해하는 능력에 기인합니다. 그 중에서도 벡터(Vector)라는 개념은 AI 분야에서 굉장히 중요한 역할을 합니다. 이번 글에서는 인공지능에서 사용되는 벡터에 대해 알아보겠습니다.


벡터의 개념

벡터는 크기와 방향을 가지는 양을 나타내는 개념입니다. 수학적으로는 숫자의 나열로 표현되며, 공간 상에서 화살표로 표시할 수 있습니다. 벡터는 크기와 방향 두 가지 정보를 함께 가지므로, 여러 분야에서 활용되고 있습니다. 예를 들어, 기상 데이터를 분석할 때 바람의 속도와 방향을 벡터로 표현하거나, 이미지 처리에서는 색상을 벡터로 표현하는 등 다양한 분야에서 활용됩니다.

조금 더 살펴보면
벡터는 해당 차원에서의 한 점이며, 숫자열로 표기됩니다. 차원(dimension)은 벡터를 이루는 성분(component)의 개수입니다.

아래 그림에서와 같이 영어, 수학 2개의 성적은 2차원 벡터로 표현 할 수 있으며, 영어, 수학, 국어 3개의 성적은 3차원 벡터로 표현할 수 있습니다. 만약 100개 과목으로 구성된 성적이 있다면 100차원 벡터로 표현할 수 있으며, 벡터는 100차원에서의 하나의 점을 의미합니다.

 

2차원 벡터의 시각화

 

3차원 벡터의 시각화


벡터의 특징

  • 크기와 방향: 벡터는 크기와 방향을 가집니다. 크기는 벡터의 길이로 표현되며, 방향은 화살표의 방향으로 나타납니다.
  • 벡터 연산: 벡터는 덧셈, 뺄셈, 스칼라 곱 등의 연산을 통해 다른 벡터와 조작할 수 있습니다. 이러한 연산을 통해 데이터 분석이나 변형에 사용됩니다.
  • 차원: 벡터는 여러 차원에서 정의될 수 있습니다. 2차원에서는 평면상의 점, 3차원에서는 공간상의 점과 같이 표현될 수 있습니다.


인공지능에서의 벡터 활용

인공지능에서는 데이터를 수학적으로 처리하고 분석하는 과정에서 벡터를 활용합니다. 

  • 피처 벡터: 자연어 처리나 이미지 처리에서 텍스트나 이미지를 수치화하여 처리해야 합니다. 이때 각각의 데이터를 벡터로 변환하여 표현하게 됩니다. 이렇게 만들어진 벡터를 피처 벡터라고 하며, 머신러닝 모델의 입력으로 사용됩니다.

예를 들어, FNN(Fully-connected multi layered Neural Network)의 경우, 아래 그림과 같이, 영상을 1차원 벡터로 구성하여 영상 데이터를 컴퓨터가 인식할 수 있는 숫자열, 즉 벡터로 표현합니다. 영상은 인접한 픽셀 간의 상관관계가 매우 높으므로, 영상을 벡터화(vectorization) 할 경우, 인접한 픽셀 간의 상관관계가 깨져 정보의 손실이 발생합니다.

 

FNN에서 이미지 벡터화


CNN(Convolutional Neural Network)의 경우는 필터링 기법을 인공 신경망에 적용하여 이미지의 공간정보를 유지하여 학습 할 수 있도록 하였습니다. 이 때 데이터는 벡터가 아닌 행렬(2d matrix)로 표현되며, 이를 특징맵(feature map)이라고도 합니다.

 

CNN 개념

 

  • 차원 축소: 고차원 데이터는 처리가 복잡해지고 계산 비용이 높아질 수 있습니다. 벡터의 차원을 축소하여 데이터의 중요한 정보를 유지하면서 계산 효율성을 높이는 차원 축소 기법이 인공지능에서 자주 사용됩니다.

 

  • 유사도 계산: 벡터 공간에서의 거리나 각도를 통해 데이터 간의 유사도를 계산할 수 있습니다. 이를 통해 문서나 이미지 간의 유사도를 파악하거나 추천 시스템에서 상품 간의 유사도를 측정하는 등 다양한 분야에서 활용됩니다.


조금 더 살펴보면
유사도를 계산하기 위해 유클리드 거리(Euclidean distance) 혹은 코사인 유사도(cosine similarity)를 사용합니다.

 

유클리드 거리: 벡터(점)들 간의 거리는 직선으로 연결될 수 있고, 그 거리를 유클리드 거리라고 하며, 거리가 가까울수록 더 유사합니다. 아래 그림과 같이 벡터의 숫자가 늘어나서 3차원, 4차원, 100차원이 되더라도, 두 점(벡터)는 늘 직선으로 연결됩니다.

 

유클리드 거리


코사인 유사도: 두 점(벡터)들 간의 각도를 재고 각도가 작을수록 더 유사합니다. 코사인 유사도는 1 (각도차가 0도)일 때 가장 유사하고, 0 (각도차가 90도)일 때 가장 다릅니다. 예를 들어, (80, 0), (0, 70) 이라는 두 벡터가 있다면, 두 벡터가 이루는 각은 90도이며, 두 벡터의 성분끼리의 곱은 0이 됩니다. (80 x 0) + (0 x 70) = 0. 아무리 긴 두 벡터도 성분끼리 곱해서 더한 값이 0에 가까우면, 두 벡터의 유사도는 낮은 것을 알 수 있습니다.

 

코사인 유사도


결론

벡터는 인공지능 분야에서 핵심적인 개념 중 하나로, 데이터의 수치화, 유사도 계산, 차원 축소 등 다양한 측면에서 활용됩니다. 이를 통해 인공지능은 다양한 문제를 해결하고 인간의 인지 능력을 모사하는데 큰 도움을 주고 있습니다. 따라서 벡터에 대한 이해는 인공지능을 공부하는 데 중요한 출발점이 됩니다.

'인공지능' 카테고리의 다른 글

인공지능 수학 (함수)  (1) 2023.08.16