나의 작은 valley

[AI] 행렬과 벡터 본문

Computer Science/[인공지능]

[AI] 행렬과 벡터

붕옥 아이젠 2023. 2. 6. 15:07
728x90

before: 고등학교과정 생략

 

// 벡터

- 숫자를 원소로 가지는 list 또는 array

 

//L1노름(norm)

- 각 성분의 변화량의 절댓값

$$ \left| \right| x\left| \right|_1 = \sum_{i=1}^{d} \left| x_{i} \right| $$

//L2노름(norm)

- 피타고라스 정리를 이용한 유클리드 거리 계산

$$ \left| \right| x\left| \right|_1 = \sqrt{\sum_{i=1}^{d} \left| x_{i} \right|^2} $$

>> 노름이 다르면 기하학적 성질이 달라진다.

 

 

 

//행렬(matrix)

- 벡터를 원소로 가지는 2차원 array

 

 

//넘파이를 이용한 행렬 내적

>>XY^T

code:

>> np.inner(a,b)

 

 

//넘파이를 이욯한 역행렬

np.linalg.inv(a)  #linear algbra

 

 

//유사역행렬(pesudo - inverse)

- 행과 열의 숫자가 다를 떄 사용함

I) 행이 열보다 큰 경우

A^+(유사역행렬 기호) = (A^TA)^-1A^T

II) 열이 행보다 큰 경우

A^+ = A^T(AA^T)^-1

 

>> 전치행렬을 취해서 행렬간의 곱을 해주면 행렬의 크기가 같아지며 역행렬을 구할 수 있게 된다.

np.linalg.pinv(a)  #linear algbra 

 

 

 

//선형회귀분석

: 행이 열보다 큰 경우에만 가능하다

>> 변수의 개수보다 데이터가 많은 경우를 의미

X\beta = Y(추정치)

>> 방정식처럼 딱 떨어지는 Y값을 구할 수는 없다. 다만 근사값을 구하는 것이다.

 

양변에 invers X를 취하려는데 n > m 이니깐 유사역행렬을 취한다.

 

\beta = (X^+)Y

이떄 Y에는 min |Y - Y(추정치)| 즉 구한 데이터의 y값과 실제 y값의 차이가 최소가 되게 하는 값을 넣는다.

728x90

'Computer Science > [인공지능]' 카테고리의 다른 글

[AI] 3주차 과제  (0) 2023.02.07
[AI] 경사하강법 (2)  (0) 2023.02.07
[AI] 경사하강법 (1)  (0) 2023.02.07
[AI] numpy  (0) 2023.02.06
[AI] 2주차 과제  (0) 2023.02.06
Comments