나의 작은 valley
[AI] 행렬과 벡터 본문
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