본문 바로가기

부스트캠프 AI Tech/Math

(9)
RNN RNN - 시 계열(time-series), sequence data 비독립적 데이터 (소리, 문자열, 주가 등) 독립동등분포(i.i.d) 위배, 데이터의 소실이나 순서 변경에 영향 조건부확률 이용 과거의 모든 정보가 필요한 것은 아니다. 가변적인 길이의 데이터를 다루어야 함 고정된 길이 τ 만큼의 sequence만 사용(Autoregressive model) 바로 직전 정보와 그 이전 정보를 잠재 변수로 인코딩하여 활용 (Latent Autoregressive model) 가중치 행렬은 변하지 않음 Backpropagation Through Time 가중치 행렬의 미분값이 너무 크거나 작으면 불안정해짐 긴 시퀀스가 필요한 data는 BPTT를 적용 시 기울기 소실(gradient vanish) 발생 t..
CNN Convolution input data에 대해 일제적으로 고정된 크기의 kernal을 적용 kernal은 정의역 내에서 움직여도 변하지 않음(translation invariant) 주어진 signal(입력)에 대해 국소적으로 적용(locality) input : 30x30, kernal : 3x3 일 시 -> output : (30-3+1)x(30-3+1) 채널이 여러개인 경우 input과 kernal의 채널 수가 같아야 함 커널이 n개 있다면 output의 채널도 n개 Convolution backpropagation 역전파 단계에서도 커널을 통해 gradient가 전달된다 연속적, 이산적일 때 동일
Bayesian Statistic 조건부 확률 조건부확률 P(A|B)는 사건 B가 일어난 상황에서 사건 A가 발생할 확률 조건부확률 P(B|A)는 사건 A가 일어난 상황에서 사건 B가 발생할 확률 조건부확률만 가지고 인과관계(causality)를 추론하는 것은 불가능 중첩요인(confounding factor)를 제거하고 원인에 대한 변수만을 계산해야 함 조정(intervention)을 통해 중첩요인 제거 베이즈 정리 사후확률 : 데이터를 관찰할 시 hyperthesis가 발생할 확률 사전확률 : 데이터 분석 전 설정한 확률 가능도 : 주어진 데이터가 관찰될 확률 evidence : 데이터 전체의 분포 새로운 데이터가 들어오면 사후확률을 사전확률로 사용 가능
Statistics 모수(Parameter) 통계적 모델링 : 적절한 가정 위에서 확률분포를 추정하는 것 정확한 분포를 맞히는 것이 아닌 위험을 최소화 모수적(parametric) 방법론 : 특정 확률분포를 따른다고 가정한 후 그 분포의 모수를 추정 비모수적(nonparametric) 방법론 : 데이터에 따라 모델의 구조 및 모수의 개수 변화 모수가 없는 것이 아님! 확률 분포 가정 히스토그램을 통해 관찰 데이터가 0 또는 1 : 베르누이 분포 데이터가 n개 : 카테고리 분포, 다항분포 데이터가 [0.1] 사이 실수 값 : 베타 분포 데이터가 0 이상 : 감마 분포, 로그정규 분포 데이터가 실수 전체 값 : 정규 분포, 라플라스 분포 데이터를 생성하는 원리를 먼저 고려해야 함 모수 추정 후 반드시 검정해야 한다 통계량(st..
Probability 확률론 machine learning에서 loss function은 데이터를 통계적으로 해석, 학습 유도 회귀 분석에서 loss function으로 사용되는 L2_norm은 예측오차의 분산을 최소화 분류 문제에서 loss function으로 사용되는 cross-entropy는 모델 예측의 불확실성 최소화 확률변수 - 확률분포에 따라 구분 (데이터공간에 의해 결정되는 것이 아님) 이산확률변수 확률변수가 가질 수 있는 모든 경우의 수를 고려하여 더함 연속확률변수 확률변수의 밀도(density)위에서의 적분 결합분포(joint distribution) 주변확률분포 - x의 분포, (label)에 대한 정보 제공하지 않음 조건부확률분포 - y에 따른 x의 분포 기댓값(expectation) > 평균 데이터를 대..
Neural Network Softmax 한 벡터가 어떤 class에 속할지 확률 예측 Activation Function nonlinear function 활성 함수 + 선형모델 = 신경망 forward propagation(순전파) output activation func(z) z = weight * data + bias input data layer가 많을수록 필요한 뉴런(node)의 수가 줄어 효율적인 학습 가능 그러나, 최적화가 어려워질 수 있음 backward propagation(역전파) 각 노드의 tensor 값을 저장해야 미분이 가능하므로 순전파보다 느림(위 식에서 x,y를 모두 기억해야 함)
Gradient Descent Differentiation import sympy as sym from sympy.abc import x sym.diff(sym.poly(x**2 + 2*x + 3), x) 미분값을 더하면 함숫값 증가 미분값을 빼면 함숫값 감소 Gradient Descent 미분값을 빼서 함수의 극솟값을 구함 Input : gradient, init, lr, eps Output: var var = init grad = gradient(var) # gradient: 기울기 계산 while(abs(grad) > eps): var = var - lr * grad grad = gradient(var) Gradient Vector 다변수 함수를 각 변수 별로 편미분한 벡터 var = init grad = gradient(var..
Matrix Matrix vector를 원소로 가지는 2차원 배열 numpy에서는 row vector를 기본 단위로 함 하나의 vector는 공간에서의 한 점 Matrix는 이 점들의 모임 행렬 간의 덧셈, 뺄셈, 성분곱(행렬 끼리 곱), 스칼라곱(행렬에 상수 배)은 vector와 같음 벡터 공간에서 사용되는 연산자(operator) 행렬곱을 통해 벡터를 다른 차원으로 보낼 수 있다 Transpose Matrix 한 행렬의 row, column의 인덱스를 뒤집은 행렬 Matrix Multiplication (행렬곱) 행렬곱을 통해 vector를 다른 차원으로 변환 가능 X의 #col과 Y의 #row가 같아야 함 X의 row vector와 Y의 col vector의 내적 X @ Y = 행렬 X, 행렬 Y의 행렬곱 np..