Lec8: Mathematics for Artificial Intelligence_Vector
01_Vector
1) Vector?
- Vector : 숫자를 원소로 가지는 List 또는 Array
- Column Vector, Row Vector
![](https://velog.velcdn.com/images/ghkd1330/post/aabe5a50-7f1e-4421-a9ef-567b13f09d46/image.png)
x = [1, 7, 2]
x = np.array([1, 7, 2])
![](https://velog.velcdn.com/images/ghkd1330/post/c5bc975c-2832-42c2-bce5-30699a4f35dd/image.png)
- Vector는 공간에서 한 점을 나타낸다.
![](https://velog.velcdn.com/images/ghkd1330/post/dd4c6f0b-1b82-49b2-86d7-a3b903e9be3e/image.png)
- Vector는 원점으로부터 상대적 위치를 표현한다.
![](https://velog.velcdn.com/images/ghkd1330/post/6ed366cc-a519-4647-ac35-da3ff2316cee/image.png)
- Vector에 숫자를 곱해주면 길이만 변한다.
![](https://velog.velcdn.com/images/ghkd1330/post/d5e91096-6486-4928-9d2b-699d1954a36a/image.png)
- Vector끼리 같은 모양을 가지면 덧셈, 뺄셈을 계산할 수 있다.
![](https://velog.velcdn.com/images/ghkd1330/post/9d8e432c-7bdc-4bf5-a97a-2855e44a6c60/image.png)
- 성분곱도 계산 가능.
![](https://velog.velcdn.com/images/ghkd1330/post/f16fad77-6cd9-4226-a9b6-ddb05ce0e24d/image.png)
import numpy as np
x = np.array([1, 7, 2])
y = np.array([5, 2, 1])
x + y
x - y
x * y
2) Addition and Subtraction of Vectors
- 두 Vector의 덧셈과 뺄셈은 다른 Vector로부터 상대적 위치이동을 표현한다.
![](https://velog.velcdn.com/images/ghkd1330/post/d540d510-31f0-42a4-9a21-534edaf731f7/image.png)
![](https://velog.velcdn.com/images/ghkd1330/post/86e47375-83fa-4aaa-a1ea-182cd2059703/image.png)
3) Norms of Vectors
- Vector의 Norm : 원점에서부터의 거리
- 임의의 차원 d에 대해 성립한다.
![](https://velog.velcdn.com/images/ghkd1330/post/424c30fb-2f7e-4356-b984-3f3cd338ee61/image.png)
![](https://velog.velcdn.com/images/ghkd1330/post/2672f776-cf28-4e73-b93d-d4e3b0628a44/image.png)
![](https://velog.velcdn.com/images/ghkd1330/post/f3bc67ed-f7ed-4fe7-8ef7-fefe8779075d/image.png)
def l1_norm(x):
x_norm = np.abs(x)
x_norm = np.sum(x_norm)
return x_norm
def l2_norm(x):
x_norm = x * x
x_norm = np.sum(x_norm)
x_norm = np.sqrt(x_norm)
return x_norm
4) Types of Norms
- Norm의 종류에 따라 기하학적 성질이 달라진다.
- L1_Norm에서의 원은 원점으로부터의 거리가 같기 때문에 원이라 할 수 있다.
![](https://velog.velcdn.com/images/ghkd1330/post/7050adb8-1c5c-4184-91dd-038297a3ba90/image.png)
5) Distance Between Two Vectors
![](https://velog.velcdn.com/images/ghkd1330/post/5526817e-cd1e-40c5-8c12-2c8737e9a5b3/image.png)
- 두 Vector 사이의 거리를 계산할 때는 Vector의 뺄셈을 이용.
![](https://velog.velcdn.com/images/ghkd1330/post/296b1c66-269d-49a3-877a-3fd5a9c28e7a/image.png)
- 뺄셈을 거꾸로 해도 거리는 같다.
![](https://velog.velcdn.com/images/ghkd1330/post/16844171-8fee-456d-9e9d-8992c6a909fe/image.png)
6) Angle Between Two Vectors
- 두 Vector 사이의 거리를 이용.
- 제2 코사인 법칙에 의해 계산 가능.
![](https://velog.velcdn.com/images/ghkd1330/post/b89059fa-0e37-451b-baea-89a37e1ded78/image.png)
![](https://velog.velcdn.com/images/ghkd1330/post/b6a5571f-cb12-441a-bec3-9544f38dacbe/image.png)
![](https://velog.velcdn.com/images/ghkd1330/post/a8c99bec-10ed-48b2-92d9-f75a36f64b22/image.png)
def angle(x, y):
v = np.inner(x, y) / (l2_norm(x) * l2_norm(y))
theta = np.arccos(v)
return theta
7) Interpreting the Inner Product
- 내적은 정사영(=Orthogonal Projection)된 Vector의 길이와 관련이 있다.
![](https://velog.velcdn.com/images/ghkd1330/post/719a6caa-11f4-4de7-9ec3-bc01d13e0e51/image.png)
![](https://velog.velcdn.com/images/ghkd1330/post/f31f3118-86cf-4091-a686-bb245f1d069a/image.png)
![](https://velog.velcdn.com/images/ghkd1330/post/9ca3e354-cb41-417a-839e-227fa799ae4d/image.png)