벡터의 노름
- 벡터의 노름()은 원점에서부터의 거리, 기호는
-노름은 각 성분의 변화량의 절대값을 모두 더한 값
-노름은 유클리드 거리. norm은 임의의 차원 d에 대해서 성립하는 것을 명심
#L1-노름
def l1_norm(x):
x_norm = np.abs(x)
x_norm = np.sum(x_norm)
return x_norm
#L2-노름
##L2-노름은 np.linalg.norm을 이용해도 구현 가능
def l2_norm(x):
x_norm = x*x
x_norm = np.sum(x_norm)
x_norm = np.sqrt(x_norm)
return x_norm```
행렬의 연산 주의
- 행렬의 곱은 항상 행 벡터와 열 벡터 사이의 연산
- numpy에서 @ 연산(행벡터 x 열벡터) != np.inner 내적(행벡터 X 행벡터)
유사역행렬
- 행과 열이 달라 역행렬을 구할 수 없을 때 사용
softmax
-모델의 출력을 확률로 해석할 수 있게 변환해 주는 연산
-분류 문제를 풀 때 선형모델과 소프트맥스 함수를 결합하여 예측
-활성 함수 중 하나로, 이진 분류 이상의 결과를 해석할 때 사용
-추론 시, 원-핫(one-hot) 벡터로 최댓값을 가진 주소만 1로 출력하는 연산을 하여 softmax로 출력
multi-layer perceptron
-다층 퍼셉트론, MLP는 신경망이 여러 층으로 합성된 함수
-입력부터 출력까지 순차적으로 신경망을 계산하는 것을 순전파(forward propagration)
몬테카를로 샘플링
-기계학습의 많은 문제들은 확률분포를 명시적으로 모를 때가 대부분이다
-학률분포를 모를 때 데이터를 이용하여 기대값을 계산할 수 있다
-몬테카를로는 확률변수 이산형 연속형에 상관없이 적용 가능
-독립추출만 보장되면 대수의 법칙(law of large number)에 의해 수렴성을 보장한다
무어펜로즈 역행렬
역행렬을 구할 수 없기 때문에 유사한 기능을 하는 유사 역행렬을 대신 구했다. 행과 열의 대소에 따라 왜 계산방식이 달라지는가에 대해 고민했다. 그 이유는 비선형성 이라고 생각을 했다. 현재 는 차원에 속하는데 차원을 축소시켜야 한다. 그러기 위해선 인 경우는 s 의 좌측에서 곱해져야 →
m x m 짜리 (항등행렬)이 되는 것이다. 반대의 경우도 마찬가지다.
몬테카를로 샘플링
예제 : 함수 의 상에서 적분값을 어떻게 구할까?
import numpy as np
def mc_int(fun,low,high,sample_size=100,repeat=10):
int_len = np. abs(high-low) #밑변
stat=[] #결과값 리스트
for _ in range(repeat): #반복
x = np.random.uniform(low=low,high=high,size=sample_size) #low high 에서 샘플 사이즈 개수만큼 랜덤으로 뽑음
fun_x = fun(x) #높이(y값)
int_val = int_len * np.mean(fun_x) #밑변 * 높이(모든 높이 요소들의 평균) => 랜덤만큼 뽑아서 나온 x가 만든 높이를 평균내서 해당 넓이를 알 수 있음
stat.append(int_val) #리스트에 담음 리스트에는 평균 넓이들이 계속 append 됨
return np.mean(stat), np.std(stat) #그 모든 넓이들의 평균과 표준편차를 구함
def f_x(x):
return np.exp(-x**2)
print(mc_int(f_x,low=-1,high=1,sample_size=10000,repeat=100))
캠프를 시작하고 이틀차가 되었다. 어제에 비해서 오늘은 확실히 잘 적응해 나가는 중이다. 이 과정이 힘들다는것을 알고 있었는데 점점 실감이 난다. 강의와 과제 퀴즈 그리고 이렇게 하루동안 배운 것을 기록하는 과정까지 잠 자는 시간 빼고 여기에 몰입하게 되는것 같다. 나한테 가장 어려운건 지금 이렇게 배운것을 기록하고 글을 쓰는것이다. 강의를 시청하는 시간의 배로 걸리고 내 언어로 정리하려니까 어려웠다. 나중에 다시 처음부터 봤을때 글이 엉망진창으로 느껴질 수도 있는데 처음부터 잘 하는게 어디 있겠나 생각하며 계속 적어나가 보겠다.
내일은 남은 AI math 강의 (6~10) 까지 듣고 퀴즈랑 과제 풀고 마무리 해야겠다.