Deep Learning Basics 2

‍이세현·2024년 4월 11일
1

A Simple Machine Learning Example

Example: Linear Regression

Goal of linear regression

실수 x vector가 입력으로 주어질 때 output y를 예측하는 시스템을 설계하는 것

y^=wTx\hat{y} = \mathbf{w}^Tx
  • y^\hat{y}: prediction
  • w\mathbf{w}: 학습해야 하는 parameters
  • xx: input

What will be

  • Experience: training set (X(train),Y(train))(\text{X}^{(\text{train})}, \text{Y}^{(\text{train})})
    • 주어진 training data
  • Task: linear regression
    • training data를 가장 잘 표현하는 선형 모델을 예측하는 것
    • (Xtrain,Ytrain)(X_{\text{train}}, Y_{\text{train}})를 기반으로 MSEtest\text{MSE}_{\text{test}}를 최소화하는 방향으로 w\mathbf{w}를 개선하는 것
  • Performance measure: mean squared error
    MSEtest=1mi(y^(test)yi(test))2\text{MSE}_{\text{test}} = \frac{1}{m} \sum_i(\hat{y}^{(\text{test})} - y_i^{(\text{test})})^2

    Why should we consider MSEtest\text{MSE}_{\text{test}} for performance measurements, instead of MSEtrain\text{MSE}_{\text{train}}?
    train data에서 잘 수행되었다고 해서 새로운 data에서도 잘 동작하는 것은 아니다. MSEtrain\text{MSE}_{\text{train}}은 모델이 train data에 얼마나 잘 적합되었는지 나타낸다. 실제 성능을 평가하는 것은 MSEtest\text{MSE}_{\text{test}}이다.

Solution by optimization for reducing the training error

  • argmin1my^trainytrain22\text{argmin}\frac{1}{m}\|\hat{y}^{\text{train}}-y^{\text{train}}\|_2^2
    • L2 normarization(euclidean distance)
  • w1my^trainytrain22=0\nabla_w\frac{1}{m}\|\hat{y}^{\text{train}}-y^{\text{train}}\|_2^2=0
    • 오차를 최소로 하는 ww
  • wXtrainwytrain22=0\nabla_w\|X^{\text{train}}w-y^{\text{train}}\|_2^2=0
    • y^=wTX\hat{y}=w^TX
  • w(Xtrainwytrain)T(Xtrainwytrain)=0\nabla_w(X^{\text{train}}w-y^{\text{train}})^T(X^{\text{train}}w-y^{\text{train}})=0
  • w=(XtrainTXtrain)1Xtrainytrainw=(X^{\text{train}^T}X^{\text{train}})^{-1}X^{\text{train}}y^{\text{train}}

Probability and Information Theory

Probability

Machine learning은 항상 확률적으로 표현된다.
같은 입력에 대해 다른 출력이 나올 수 있다.

Discrete Variables and Probability Mass Function

  • Probability mass function

    • 이산 확률 변수 X\text{X}가 임의의 값 xx일 확률 P(X=x)P(\text{X}=x)xx에 대한 함수 f(x)=P(X=x)f(x)=P(\text{X}=x)라 할 때 f(x)f(x)는 확률변수 X\text{X}의 확률질량함수이다.
    • Notation: P(x=x)P(x)P(\text{x}=x) → P(\text{x})
    • ex) 주사위를 던져 3이 나올 확률 P(x=3)P(\text{x}=3)
    • return value는 실수이다.
  • Properties

    • 유효한 x에 대해 P(x)는 항상 0 이상, 1 이하이다.
      xxP(x)=1\sum _{x\in{\text{x}}}P(x) = 1
  • Joint probability: 입력이 두개 이상인 다변수 확률함수

    • P(x=x,y=y)P(\text{x}=x, \text{y}=y): x=x\text{x}=x and y=y\text{y}=y
  • Marginal probability

    • joint probability에서 하나의 확률 변수를 제거한 확률 분포
    • input을 제거하는 효과가 있다.
      xx,P(x=x)=yP(x=x,y=y)\forall{x}\in{\text{x}}, P(\text{x}=x) = \sum_{y}{P(\text{x}=x, \text{y}=y)}
    • 임의의 xx에 대하여 yy와 상관없이 xx가 일어날 확률
  • Conditional Probability

    • 어떤 사건이 일어났다는 전제 하에 다른 사건이 일어날 확률
      • given 조건은 | 뒤에 표시된다.
    • P(y=yx=x)=P(x=x,y=y)P(x=x)P(\text{y} = y | \text{x} = x) = \frac{P(\text{x}=x,\text{y}=y)}{P(\text{x}=x)}
    • 분자: joint probability
    • 합이 1이 되도록 marginalized 값으로 나누어준다.
    • The Chain Rule of Conditional Probabilities
      • P(a,b,c)=P(ab,c)P(b,c)P(a,b,c) = P(a|b,c) P(b,c)
      • P(b,c)=P(bc)P(c)P(b,c) = P(b|c)P(c)
      • P(a,b,c)=P(ab,c)P(bc)P(c)P(a,b,c) = P(a|b,c)P(b|c)P(c)
      • P(a,bc)=P(ab,c)P(bc)P(a,b|c) = P(a|b,c)P(b|c)
      • P(a,b,c)=P(a,bc)P(c)=P(ab,c)P(bc)P(c)P(a,b,c) = P(a,b|c)P(c) = P(a|b,c)P(b|c)P(c)

Continuous Variables and Probability Density Function

  • Probability density function
    • 연속 확률 변수 XX의 분포를 나타내는 함수 f(x)f(x)를 확률 밀도 함수라고 한다.
    • Notation: P(axb)=abf(x)dxP(a \leq x \leq b) = \int_{a}^{b}f(x)dx
      • xx ~ p(x)p(x): xx가 확률 밀도 함수 p(x)p(x)를 따른다.
  • Independence and Conditional Independence
    • Independence: p(x=x,y=y)=p(x=x)p(y=y)p(\text{x}=x, \text{y}=y)=p(\text{x}=x)p(\text{y}=y)
    • Conditional Independence - xxyy가 독립사건일 때
      • p(x=x,y=y,z=z)=p(x=xz=z)p(y=yz=z)p(\text{x}=x,\text{y}=y,\text{z}=z)=p(\text{x}=x|\text{z}=z)p(\text{y}=y|\text{z}=z)

Expectation, Variance, and Covariance

  • function f(x)f(x)에 대한 Expectation: input xx가 있을 때 function ff가 어떻게 작동할 것인가에 대한 평균(기댓값)
    • 이산확률분포: ExP[f(x)]=xP(x)f(x)\mathbf{E}_{x\sim P}[f(x)]=\sum_{x}P(x)f(x)
    • 연속확률분포: Exp[f(x)]=p(x)f(x)dx\mathbf{E}_{x\sim p}[f(x)]=\int p(x)f(x)dx
    • PP 또는 pp: xx가 발생할 확률을 나타내며 f(x)f(x)p(x)p(x)만큼 실행된다.
    • ff: 결과
      • 확률변수 XX가 주사위의 눈인 경우 f(x)f(x)는 1, 2, 3, 4, 5, 6
  • Variance: ff가 평균으로부터 얼마나 넓게 퍼져있는지 나타내는 값
    • Covariance: Cov(f(x),g(y))=E[(f(x)E[f(x)])(g(y)E[g(y)])]\text{Cov}(f(x), g(y))=\mathbf{E}[(f(x)-\mathbf{E}[f(x)])(g(y)-\mathbf{E}[g(y)])]
      • Cov>0\text{Cov} > 0: 같은 경향성을 띠며 높은 상관관계를 가진다.
      • Cov<0\text{Cov} < 0: 반대되는 경향성을 띠며 높은 상관관계를 가진다.
      • Cov=0\text{Cov} = 0: 상관관계가 없다.

Common Probability Distribution

  1. Bernoulli distribution (이항 분포)
    P(x=1)=ϕP(\text{x}=1)=\phi
    P(x=0)=1ϕP(\text{x}=0)=1-\phi
    P(x=x)=ϕx(1ϕ)1xP(\text{x}=x)=\phi^x(1-\phi)^{1-x}

    • 기댓값 Ex(x)=ϕ\mathbf{E}_\text{x}(\text{x})=\phi
    • 분산 Varx(x)=ϕ(1ϕ)\text{Var}_\text{x}(\text{x})=\phi(1-\phi)
  2. Multinoulli distribution (categorical distribution)
    1부터 K까지 K개의 정수값 중 하나가 나오는 확률 변수의 분포

  3. Gaussian distribution (normal distribution)

    N(x;μ,σ2)=12πσ2exp(12σ2(xμ)2)\mathcal{N}(x;\mu,\sigma^2)=\sqrt{\frac{1}{2\pi\sigma^2}}\text{exp}\left( -\frac{1}{2\sigma^2}(x-\mu)^2\right )
    • Ex[x]=μ\mathbf{E}_x[x]=\mu
    • Varx(x)=σ2\text{Var}_x(x)=\sigma^2
  4. Multivariate normal distribution
    다변량 정규분포

Useful properties of Common functions

  1. Logistic sigmoid
    베르누이 분포에서 ϕ\phi를 구하기 위해 사용한다.
    σ(x)=11+ex\sigma(x)=\frac{1}{1+e^{-x}}
  2. Softplus function - smooth relu
    정규분포에서 σ\sigma를 구하기 위해 사용한다.
    ζ(x)=log(1+ex)\zeta(x)=\log (1+e^x)
    • 미분하면 logistic sigmoid 함수와 같다.

Bayes' rule (조건부 확률)

P(xy)=P(yx)P(x)P(y)P(x|y) = \frac{P(y|x)P(x)}{P(y)}
  • Posterior probability: P(xy)P(x|y)
  • Evidence: given yy
    • 먼저 관찰한(발생한) data
  • output: xx
    • xx에 대한 지식(분포)이 있어야 한다.
  • Likelihood: P(yx)P(y|x)
  • Prior probability: P(y)P(y)
    • 합을 1로 만드는 marginalize 역할

evidence(yy)를 기반으로 무언가(xx)를 기대

Information Theory

드물게 발생하는 사건일수록 정보량이 높다.

확률이 낮다 → 정보량이 높다

xx라는 사건이 일어날 self-information I(x)I(x)

I(x)=logP(x)I(x) = -\log P(x)
  • Shannon entropy
    모든 사건의 정보량의 기댓값(Shannon entropy)은 확률적 가중치 합으로 나타낸다.

    H(x)=ExP[I(x)]=ExP[logP(x)]H(x) = \mathbf{E}_{x\sim P}[I(x)] = -\mathbf{E}_{x\sim P}[\log P(x)]
  • Kullback-Leibler (KL) divergence

    • 같은 변수 xx에 대해 두 분포 PPQQ의 차이를 나타내는 방법
      DKL(PQ)=ExPlogP(x)Q(x)=ExP[logP(x)logQ(x)]D_{KL}(P||Q) = \mathbf{E}_{x\sim P}\log \frac{P(x)}{Q(x)} = \mathbf{E}_{x\sim P}[\text{log}P(x)-\text{log}Q(x)]
    • 실제 세계 PP와 모델 QQ의 차이
    • PP: 실제 세계, real dataset
    • xx: PP에서 추출한 data
    • logP(x)\log P(x): GT, dataset - self entropy(상수로 간주)
    • logQ(x)\log Q(x): Trained model - GT와 차이가 없을 때 훈련이 잘 되었다고 판단
  • Cross-entropy

    • PP에서 뽑은 data xxQQ의 정보량을 계산하는 방법
      H(P,Q)=ExPlogQ(x)H(P,Q)=-\mathbf{E}_{x\sim P}\log Q(x)

KL divergence와 cross-entropy의 관계
H(P,Q)=H(P)+DKL(PQ)H(P, Q)=H(P)+D_{KL}(P||Q)
cross entropy가 작으면 KL divergence도 작다.
(self entropy H(P)H(P)는 dataset으로 결정되므로 상수 취급)

Capacity, Overfitting and Underfitting

  • Generalization

    • 새로운 입력에 대해 얼마나 잘 동작하는지 나타내는 지표
    • overfit vs underfit
  • Generalization error (or test error)

    • test set에서 performance measurement
    • machine learning에서 최소화해야 하는 것
    • optimization algorithm으로 generalization error를 아예 없애는 것은 불가능하다.
    • Example) training error를 최소화해야 하지만 실제로는 test error를 신경 써야 한다.
  • i.i.d assumptions

    • training set만 고려할 때 test set에의 성능에 어떠한 영향을 미칠까?
    • dataset의 examples는 서로 독립적이고 train set과 test set은 동일한 분포로, 서로 동일한 확률 분포를 형성하도록 그려져야 한다.
      • Data가 생성되는 distribution pdatap_{data}: train set과test set을 생성하기 위해 사용되는 데이터 생성 분포가 동일할 때 모델이 새로운 데이터에서도 잘 동작할 수 있다.
    • training error와 test error의 관계를 설명할 수 있다.
      • ww가 고정되었을 때 training error와 test error가 동일한 것을 기대할 수 있다.
  • underfitting and overfitting

    • Underfitting: model이 training set에서 충분히 낮은 error를 가지지 않을 때 발생한다.
    • Underfitting: training error와 test error의 차가 매우 클 때 발생한다.
  • Capacity

    • 모델이 표현할 수 있는 함수의 다양성, 복잡성
    • 모델의 capacity를 변경함으로써 모형이 overfitting되거나 underfitting 여부를 제어할 수 있다.
      • Low Capacity: underfit
        • High capacity: overfit
    • 모델 capacity와 task의 실제 complexity가 비슷할수록 성능이 좋을 것이다.
    • data가 많으면 capacity를 고려하지 않고 overfitting 하면 된다.
  • Occam's razor

    • 설계한 모델 모두 진실을 이야기한다면 capacity가 작은(단순한) 모델이 더 낫다.
  • Model capacity가 높아질수록

    • training error는 최소 오차 값에 수렴할 정도로 낮아진다.
    • Generalization error는 U 모양으로 점점 증가한다.
  • The No Free Lunch Theorem

    • 모든 문제를 해결하는 algorithm은 존재하지 않는다.
    • Machine learning 연구의 목적
      • 실제 세계와 관련된 분포가 무엇인지, 실제 데이터에 대해 어떤 유형의 machine learning algorithm이 잘 수행되는지 이해하는 것
    • 특정 task를 잘 수행하는 machine learning algorithms을 설계해야 한다.
  • Regularization

    • 경향성을 loss function에 반영하는 것
    • ex) Linear regression J(w)=MSEtrain+λwTwJ(\mathbf{w})=\text{MSE}_{train}+\lambda\mathbf{w}^T\mathbf{w}
      • 'weight는 작을 것이다'와 같이 data의 특성, 사전 지식을 반영하는 것을 regularization이라고 한다.
    • λ=0\lambda=0: no preference
    • Large λ\lambda: weight는 작아진다.
    • 일반적으로 regularizer라고 불리는 penalty를 cost function에 가하여 함수 f(x;θ)f(x;\theta)를 규제한다.
    • 정규화는 일반화 오류를 줄이기 위한 것이지만 훈련 오류는 줄이는 것은 아니다.
    • 최적의 정규화라는 것은 없다.
      • The no free lunch theorem

Hyperparameters and Validation Sets

  1. Hyperparameters
    • Hyperparamete는 learning algorithm의 동작을 제어한다.
    • ex) J(w)=MSEtrain+λwTwJ(\mathbf{w}) = \text{MSE}_{train} + \lambda \mathbf{w}^T \mathbf{w}
      • w\mathbf{w}의 차원은 capacity hyperparameter이다.
      • λ\lambda는 weight decay hyperparameter이다.
    • 일반적으로 hyperparameter는 학습시키지 않는다.
      • 종종 optimize가 매우 어렵다.
      • training 과정에서 hyperparameter를 학습하는 것은 부적절하다.

    Then, how should we choose hyperparameters?
    ↳ Validation Sets

  2. Validation Sets
    • training algorithm이 관찰하지 못하는 검증 set이 필요하다.
    • training set을 서로 분리된 두 집합으로 나눈다.
      • training set = training data - validation set
      • validation set: 학습 진행 중 일반화 오류를 측정하고 그에 따라 hyperparameter를 업데이트하기 위해 사용된다.
    • training data : validation data = 8 : 2
    • i.i.d에 따라 두 set의 경향성이 같아야 한다.
  3. Cross-Validation
    • 원래 dataset에서 임의로 선택된 subsets에 대한 training 및 testing 연산을 반복한다.
    • k-fold cross-validation procedure
      • Dataset을 k개의 부분집합으로 나눈다.
      • i-subset은 testset, 나머지는 training set으로 사용한다.(i는 1부터 k까지의 정수이다)
      • test error는 k trials의 평균 test error로 측정한다.
profile
Hi, there 👋

0개의 댓글

관련 채용 정보