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로 코드를 작성하면서 개념이 눈에 보이니까 더 재미있었다. 앞으로도 실습을 많이 하면서 익숙해져야겠다.
'내일배움캠프 TIL' 카테고리의 다른 글
| 2024.12.11 TIL - 알고리즘 문제풀이 (1) | 2024.12.11 |
|---|---|
| 2024.12.10 TIL - 인공지능을 위한 수학(2). (1) | 2024.12.10 |
| 2024.12.06 TIL - 파이썬 복습(2). 모듈 / 클래스 (0) | 2024.12.06 |
| 2024.12.05 TIL - 파이썬 복습 (1). 함수 / 예외처리 (0) | 2024.12.05 |
| 2024.12.04 TIL - 파이썬 라이브러리 (1) | 2024.12.04 |