[Week 1- Day 3] 회고

2022. 1. 21. 19:11About Me/AI Tech

# 역행렬

- 행/열의 수가 같고,

- 행렬식이 0이 아닌 경우만 가능

inverse matrix. A^(-1). 로 표기.

A연산을 거꾸로 되돌린다는 의미.

AA^(-1) = A^(-1)A = I (항등행렬)

import numpy as np
import np.linalg.inv

X @ inv(X) = I

 

유사역행렬

- 행/열의 수가 달라도 계산가능

무어펜로즈 역행렬. A^+. 로 표기.

행/열의 수가 달라도 계산이 가능하기 때문에, 출력 모양도 행/열이 다를 수 있음. 행이 n, 열이 m인 경우, 다음과 같이 연산함.

n >= m 이면, A^+ = (A^T A)^(-1) A^T

n <= m 이면, A^+ = A^T (A A^T)^(-1)

import numpy as np
import np.linalg.pinv

pinv(Y) @ Y = I

 

활용 예시 1. 연립방정식의 해 구하기

(풀기 위한 식보다 변수의 수/해의 수가 많은 경우, 유사역행렬로 해결 가능)

a1x1 + a2x2 + ... + anxn = b

a1x1 + a2x2 + ... +anxn = b

...

==> Ax = b

==> x = A^+ b

 

활용 예시 2. 선형회귀 분석

(변수의 수보다 데이터의 수가 더 많을 경우)

[ -- x1 -- ][ -bi- ] = [ -y1- ]

Xb = y

==> 위 식을 만족하는 b 찾기는 사실상 불가능

==> 가장 유사한 b 찾기는 가능하기 때문에, 그 값을 ^y으로 하여 유사역행렬로 풀이 가능

b = X^+ y

   = (X^T X)^(-1) X^T y

 

이는 실제로 코드로 적용하면, sklearn.linear_model.LinearRegression 과 같은 결과임.

 

 

# 미분

sympy : 함수를 symbolic하게 이해하도록 하는 라이브러리

https://docs.sympy.org/latest/index.html

import sympy.diff
from sympy.abc import x, y

 

ei 벡터 : 주어진 값 xi가 있을 때, xi에만 영향을 미침.

i번째 값만 1이고, 나머지에는 0인 단위 벡터.

특정 x벡터의 i번째 변수에만 계산 적용가능.

 

그레디언트 벡터

= 각 변수에 대한 편미분 계산 한 벡터.

 

nabla f = ( dx1 f, dx2 f, ... , dxn f )

주어진 다변수 입력을 가지는 함수의 그레디언트(기울기) 벡터를 표시하는 기호.

 

f'(x)대신 nabla f를 사용하면,

앞서 사용한 수직선 상에서 update하는 경사하강법( abs(grad)로 종료조건 설정 ) 이 아닌,

일반적인 n차원 공간에서 벡터에 적용되는 경사하강법( Vector라서 norm(grad)로 종료조건 설정 )을 적용함.

3차원 공간 상에서의 화살표 움직임으로 도식화 가능

 

활용 예시. 선형회귀 문제

일반적인 문제해결을 위해 경사하강법 사용할 수 있으니, 일반성이 있다고 볼 수 있음.

 

경사하강법에서 주의할 점.

학습률(lr)와 학습횟수가 중요 하이퍼파라미터 --> 잘 조정해야 수렴을 보장.

but, 비선형문제에는 항상 최대점 보장X

 

 

 

## 피어 세션

미션 : 진도 파악, 제너레이터 개인조사

(모더레이터: 피어세션 팀 발표)

 

아침에는 현재 어느정도 진도를 나갔고, 오늘은 어디까지 할 계획인지 공유.

오후에는 진도나간 정도, 오늘 한 일 정리. 어제 데코레이터 질문 추가로 공유.

 

5시에 피어세션 발표가 있어서 참석.

조 이름 말하고, 조원 하나하나씩 특징 소개 & 친해지고 싶으면 연락해라. 그라운드 룰 하나씩 말하면서 이유도 말함.

피어세션 마지막에 할 말이 없고, 재미도 없어서 그런지 되게 피로감이 컸음.

다음에는 궁금한 거나 TMI 시간 가지는 거 어떠냐고 물어봐야 겠음.

 

9시에는 멘토링 시간이 있었음.

일단 서로 자기소개를 하고, 멘토분이 어떻게 취업준비했는지/ 이 과정이 도움되는지/ 노션 꿀팁/ 석사가야하나 등등 알려줌.

- 적극적으로 TMI 시간(코딩 안될때 뭐하나?) 갖으면서, 친해짐.

- 프로젝트 진행하면서 포기하지 않으면 굉장히 값진 시간.

- 나중에 본인 PR하면서, 팀원도 찾고 프로젝트 완성도 해야함.

- 스터디 할 기반을 만들어두는 게 좋음. 등등.

반응형

'About Me > AI Tech' 카테고리의 다른 글

과제 설명: 경사하강법으로 선형회귀 문제 풀기  (0) 2022.01.22
[Week 1- Day 5] 회고  (0) 2022.01.21
[Week 1- Day 4] 회고  (0) 2022.01.21
[Week 1- Day 2] 회고  (0) 2022.01.21
[Week 1- Day 1] 회고  (0) 2022.01.21