새소식

AI/ML

행렬, 역행렬, 경사하강법에 대해 알아보기

  • -

행렬

  • 벡터를 원소로 가지는 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
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.