인공지능에서는 많은 데이터를 다루기 때문에 스칼라, 벡터, 행렬, 텐서의 개념은 중요합니다.
1. 스칼라 scalar
스칼라 scalar는 1, 2, 3.6, -4, a 처럼 보통의 수치를 말합니다. 처음에는 그저 한 개의 숫자형이라고 보시면 쉽습니다.
즉, 알파벳과 개별적인 실수와 정수, 그리스 문자의 소문자는 스칼라를 나타냅니다.
a, p, α. β 등...
a = 1
b = 1.2
c = -5
d = 1.2e5 # (1.2 곱하기 10의 5제곱 = 120000 )
print(a)
print(b)
print(c)
print(d)
이하의 벡터와 행렬, 텐서는 모두 스칼라를 기본으로 한 배열입니다.
2. 벡터 vector
벡터 vector 는 통상 위치와 속도 힘과 같이 크기와 방향성을 가지는 물리량으로 배우지만
파이썬에서의 벡터는 스칼라를 일직선 상에 나열한 것입니다.
즉, 한 개 또는 그 이상의 '스칼라' 값으로 구성된 튜플, 또는 리스트 입니다.
벡터에는 세로로 수치를 나열하는 세로 벡터(열 벡터)와
가로로 수치를 나열하는 가로 벡터(행 벡터)가 있습니다.
벡터는 Numpy의 1차원 배열을 이용해서 리스트나 튜플처럼 나열할 수 있습니다.
import numpy as np
a = np.array([1,2,3])
print (a)
b = np.array([-2.4, 0.9, 1.3])
print(b)
3. 행렬matrix
행렬(매트릭스) 는 2차원의 배열입니다. 스칼라를 격자 형태로 나열한 것입니다.
행렬에서 수평 방향의 스칼라 나열을 행, 수직 방향의 스칼라 나열을 열이라고 합니다.
위에서 보았던 세로 벡터의 경우 열의 수가 1인 행렬로, 가로 벡터의 경우에는 행의 수가 1인 행렬로 볼 수 있습니다.
행렬은 다음과 같이 표현할 수 있습니다.
import numpy as np
a = np.array(
[[1, 2, 3],
[4, 5, 6]]
)
4. 텐서tensor
텐서는 스칼라를 여러 개의 차원으로 나열한 것으로 스칼라, 벡터, 행렬을 포함합니다.
차원이 없는 값, 즉 . (점)과 같이 차원이 없는 값을 스칼라, 1차원으로 구성된 값을 벡터, 2차원으로 구성된 값을 행렬이라고 한다면 3차원이 되면 텐서라고 합니다.
4차원 텐서는 3차원 텐서를 위로 쌓아올린 모양이고, 5차원 텐서는 그 4차원 텐서를 다시 옆으로 확장한 모습이며,
6차원 텐서는 5차원 텐서를 뒤로 확장한 모습입니다.
파이썬으로 (2, 3, 4) 의 3차원 텐서를 구현해보겠습니다.
리스트 안에 리스트 2개가 있고 그것이 3행 4열의 구조를 띄고 있습니다.
import numpy as np
a = np.array(
[[[0, 1, 2, 3],
[2, 3, 4, 5],
[4, 5, 6, 7]],
[[1, 2, 3, 4],
[3, 4, 5, 6],
[5, 6, 7, 8]]]
)
수학이나 물리학에서의 텐서는 복잡한 방법으로 정의되지만,
우리는 인공지능 ai에서 활용할 텐서의 개념은 기계학습에서의 편리성을 중시한 간단한 개념이라는 것을 잊지 마세요!
'AI 머신러닝 딥러닝 > AI 수학 입문 공부일지' 카테고리의 다른 글
AI 인공지능 수학 공부일지 6. 거듭제곱, 제곱근, 삼각함수, 난수 그래프 그리기 (0) | 2022.10.24 |
---|---|
AI 인공지능 수학 공부일지 5. matplotlib 기초 (0) | 2022.10.21 |
AI 인공지능 수학 공부일지 4. Numpy 기초 행열 (0) | 2022.10.21 |
AI 인공지능 수학 공부일지 3. 판다스 pandas 모듈 (0) | 2022.10.21 |
AI 인공지능 수학 공부일지 2. BeautifulSoup로 네이버 금융 코스피 지수 추출하기 (0) | 2022.10.21 |