행렬
- 벡터를 원소로 가지는 2차원 배열
- 코드(넘파이) 에서는 행벡터 기준으로 한다.
- 덧셈, 뺄셈, 성분곱 모두 벡터와 같다.
행렬의 곱셈
- 코드 → @ 연산 (X@Y)
XY → X의 열과 y의 행이 같아야 한다.
행렬 내적
np.inner → X의 행의 개수와 Y의 행의 개수가 같아야 한다.
수학에선 , np.inner는 i번째 행벡터와 j번째 행벡터 사이 내적이 계산됨으로 다르다!!
행렬곱 의미
- 벡터를 다른 차원의 공간으로 보내준다.
에 를 곱하여 을 계산하는 것은 m차원의 공간에서 A를 이용하여 n차원의 공간으로 보내는 것
여기서 A는 연산자로 이해한다.
→ 패턴 추출, 데이터 압축 가능
모든 선형변환(linear transform)은 행렬곱으로 계산가능
역행렬
- 조건
1) 행과 열의 숫자가 같은 지
2) 주어진 행렬의 determinant가 0이 아닌 지
np.linalg.inv로 계산가능
조건에 맞지 않으면 유사역행렬, 무어-펜로즈 역행렬 이용
np.linalg.pinv로 계산가능
응용 : 선형회귀분석
(y절편 생략)
이때 y는 L2 norm을 최소화
경사하강법
미분
- 변수의 움직임에 따른 함수값의 변화를 측정하기 위한 도구
import sympy as sym
from sympy.abc import x
sym.diff(sym.poly(x**2 + 2*x + 3),x)
: i 번째 값만 1 이고 나머지는 0인 단위벡터
- 미분값을 빼면서 함수의 극소값의 위치를 찾아간다.
→ convex 하지않은 함수도 수렴하기 위해 확률적 경사하강법
확률적 경사하강법
- 데이터 일부를 활용하여 업데이트한다.
- 만능은 아니지만 딥러닝의 경우 SGE가 경사하강법보다 길증적으로 더 낫다고 검증됨
- 효율적인 연산, 메모리
- 미니배치 사이즈 - 학습시 고려사항
'AI > ML' 카테고리의 다른 글
확률론 기본개념 정리 (0) | 2023.12.24 |
---|---|
소프트맥스, 활성함수, 역전파에 대해 알아보기 (0) | 2023.12.24 |
벡터, L1 L2 norm에 대해 알아보기 (0) | 2023.12.24 |
Beautiful Soup (간단한 웹 크롤링) (1) | 2023.12.23 |
SVM (1) | 2023.12.23 |