TIL: 인공지능을 위한 선형대수학 기초

오늘은 선형대수학의 기초 내용을 공부했다. 이 내용은 머신러닝과 딥러닝에서 아주 중요한 개념이라고 해서 처음부터 천천히 이해하려고 노력했다.


1. 스칼라와 벡터

  • 스칼라는 크기만 있는 값이라고 한다. 숫자 하나만으로 표현되며, 온도나 무게 같은 단위를 가질 수도 있다.
    예를 들어, 5kg처럼 단순한 값이 스칼라다.
  • 벡터는 크기와 방향을 가진 값이다. n차원 공간의 점이나 데이터의 특성을 나타낼 때 사용된다.
    NumPy로 벡터를 만들고, 더하거나 곱하는 방법도 배웠다.
import numpy as np

# 벡터 예제
v1 = np.array([1, 2, 3])
v2 = np.array([4, 5, 6])

# 벡터 연산
print("덧셈:", v1 + v2)
print("내적:", np.dot(v1, v2))

벡터는 머신러닝에서 데이터 포인트나 단어 임베딩 같은 데 사용된다고 한다. 아직 정확히 이해는 안 가지만, 데이터와 관련이 깊은 것 같다.


2. 벡터 공간과 기저

  • 벡터 공간은 벡터들이 모여 있는 공간인데, 덧셈이나 곱셈 같은 연산을 할 수 있다.
  • 기저는 공간을 표현하는 중요한 벡터들의 집합이다. 모든 벡터는 기저의 조합으로 표현될 수 있다.

PCA라는 기법에서 기저를 새롭게 찾는다고 하는데, 나중에 더 배워봐야겠다.

# 2차원 벡터와 기저
e1 = np.array([1, 0])
e2 = np.array([0, 1])
v = np.array([3, 2])

# 좌표 찾기
coord1 = np.dot(v, e1)
coord2 = np.dot(v, e2)

print("좌표:", (coord1, coord2))

3. 행렬과 행렬 연산

  • 행렬은 숫자들을 직사각형으로 배열한 것이다.
  • 행렬 곱셈이나 전치 같은 연산이 있다. 행렬은 머신러닝에서 데이터의 연산을 쉽게 만들어주는 역할을 한다.
# 행렬 곱셈 예제
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])

result = np.dot(A, B)
print("행렬 곱셈 결과:\n", result)

배운 점

오늘 배운 내용을 정리하면서 느낀 점은, 처음에는 개념이 조금 어려웠지만 하나씩 따라가다 보니 조금씩 이해가 되는 것 같았다.
특히 NumPy로 코드를 작성하면서 개념이 눈에 보이니까 더 재미있었다. 앞으로도 실습을 많이 하면서 익숙해져야겠다.


 

 

+ Recent posts