Home [AI]인공지능 기초
Post
Cancel

[AI]인공지능 기초

경사하강법

미분

변수의 움직임에 따른 함수값의 변화를 측정하기 위한 수식

  • 최적화에서 가장 많이 사용하는 기법
  • 한 점에서의 식별된 기울기를 통해 방향에 따른 증감 판별 가능

Desktop View B의 x 좌표가 A에 근접하여 A 접선의 기울기 역할로 변환

편미분

벡터(다변수 함수)의 경우 편미분을 사용

  • 특정 변수에 대한 미분 값 적용
    • 특정 변수를 제외한 나머지 변수는 전원 상수 취급

경사하강법(Gradient Descent; GD)

미분 값을 뺌으로써 함수의 극소값을 도출

  • 그레디언트 벡터를 통해 경사하강법에 적용
  • 극소값의 기울기는 0이므로 갱신이 되지 않아 종료조건에 해당
  • 이론적으로 미분가능하고 볼록(convex)한 함수에 대해선 적절한 학습률과 학습 횟수를 바탕으로 수렴이 보장
  • 특히 선형회귀의 경우 목적식은 회귀 계수 $\beta$에 대해 볼록함수이기 때문에 알고리즘을 충분히 돌리면 수렴이 보장
  • 비선형회귀 문제의 경우 목적식이 볼록하지 않을 수 있으므로 일부에 대한 수렴을 보장

$\nabla f = (\partial x_1f, \partial x_1f, \dotsb, \partial x_1f)$

그레디언트 벡터: 편미분을 계산한 결과 벡터

선형회귀

선형 회귀는 주어진 데이터의 특성을 가장 잘 나타내는 직선 도출

  • 목적식을 최소화하는 경사하강법 알고리즘
    • 다음 $\beta$ 는 현재 $\beta$에서 기울기에 비례한 값(학습률) 만큼 갱신
측면에서 볼 때(2D)측면에서 볼 때(3D)위에서 볼 때

확률적 경사하강법(Stochastic Gradient Descent; SGD)

모든 데이터를 사용해서 업데이트하는 대신, 데이터 한개 또는 일부(Mini-batch)를 활용하여 업데이트 진행

  • 볼록이 아닌(non-convex) 목적식은 SGD를 통해 최적화 가능
  • 데이터의 일부를 가지고 업데이트를 진행하므로 연산 자원을 보다 효율적으로 활용 가능
  • 미니배치 크기가 수렴 속도에 영향
  • 머신러닝 학습에 더욱 효율적
    • 일반적으로 모든 데이터를 메모리에 업로드할 시 OOM(Out-Of-Memory) 오류 발생
    • GPU에서 연산을 진행하는 사이 CPU는 전처리와 GPU에서 업로드 할 데이터를 준비

Desktop View 경사하강법과 확률적 경사하강법의 차이

신경망(Neural Network)

데이터를 비선형으로 해석하는 모델

  • 순전파: 1층부터 L층 까지의 순차적인 신경망 계산
  • 활성함수를 쓰지 않으면 선형 모형과 동일
  • 선형 모델과 활성함수(activation function)를 합성
  • 단층 신경망
    • $O = WX + B$
  • 다층 신경망
    • $z = {W^{(t)}x + b^{(t)}}$
    • $H = (\sigma(z_1), \dotsb, \sigma(z_n))$
    • $O = HW^{(L)} + b^{(L)}$
      • $\sigma$: 활성함수
      • $z$: 잠재벡터 (충 별 Output 벡터)
      • $H$: 활성함수를 통과한 잠재벡터

층을 여러개 쌓는 이유
Universal Approximation Theorem 이론에 따라 2층 신경망으로도 임의의 연속함수를 근사할 수 있지만, 실제로는 무리가 있다.
층이 깊을수록 목적함수를 근사하는데 필요한 뉴런(노드)의 숫자가 훨씬 빨리 줄어들어 더욱 효율적으로 학습이 가능하다.

층이 얇으면 필요한 뉴런의 숫자가 기하급수적으로 늘어나므로 넓은 신경망이 되어야한다.

  • 10개의 노드를 학습할 때
    • 2층 신경망 뉴런의 수: ${10^2} = 100$
    • 5층 신경망 뉴런의 수: $4^2 * 5 = 96$
      • 4개 씩 5층으로 구성

Linear Neural Networks

데이터 분포에 따른 선형 회귀 그래프 도출

  • $\eta$ = 학습률
  • $w_{t} = w_{t-1} - \eta \frac{\partial loss}{\partial w}$
  • $b_{t} = b_{t-1} - \eta \frac{\partial loss}{\partial b}$

Multi-Layer Percentron(MLP)

레이어를 쌓을 때 선형변환을 누적하게 되면 일반 선형회귀와 다를게 없으므로 학습에 영향이 크게 미치지 않는다.
따라서 레이어 사이에 Nonlinear transform 과정을 거쳐 학습한다.
즉, 선형회귀 > Nonlinear transform > 선형회귀 > $\dotsb$

  • Activation function
    • Rectified Linear Unit(Relu)
    • Sigmoid
    • Hyperbolic tangent

소프트맥스(Softmax) 연산

모델의 출력을 확률로 해석할 수 있게 변환해주는 연산

  • 분류 문제를 풀 때 선형 모델과 소프트맥스 연산을 결합하여 예측

One-Hot

최대값을 가진 주소만 1로 출력하는 연산을 사용하며, 추론을 할 때 주로 사용

활성함수

실수계 위에 정의된 비선형(nonlinear) 함수

  • 딥러닝에서 ReLU 함수를 주로 이용
SigmoidtanhReLU

역전파(Backpropagation) 알고리즘

각 층에 사용된 파라미터를 효율적으로 학습하는 알고리즘

연쇄법칙

  • $z = (x+y)^2$
    • $w = x + y$ 로 치환
    • $z = w^2$
    • $\frac{\partial z}{\partial x} = \frac{\partial z}{\partial w} \frac{\partial w}{\partial x}$
    • $\frac{\partial z}{\partial w} = 2w, \frac{\partial w}{\partial x} = 1$
    • $\therefore \frac{\partial z}{\partial x} = 2$
  • 각 노드의 뉴런(텐서) 값을 컴퓨터가 기억해야 미분 계산이 가능
오차역전파 식 유도오차역전파 결과 요약
오차역전파(심화) 식 유도 1오차역전파(심화) 식 유도 2
오차역전파(심화) 결과 요약

확률론

확률론의 필요성

  • 딥러닝은 확률론 기반의 기계학습 이론을 바탕으로 구성
    • 기계학습에서 사용되는 손실함수(loss function)들의 작동 원리는 데이터 공간을 통계적으로 해석해서 유도
    • 회귀 분석에서 손실함수로 사용되는 $L_2$노름은 예측 오차의 분산을 가장 최소화 하는 방향으로 학습하도록 유도
    • 분류 문제에서 사용하는 교차엔트로피(cross-entropy)는 모델 예측의 불확실성을 최소화하는 방향으로 학습하도록 유도
  • 분산 및 불확실성을 최소화하기 위해서 측정법에 대한 이해 필요

확률 변수

  • 이산형 확률 변수
    • 모델링: 확률변수가 가질 수 있는 경우의 수를 모두 고려한 확률의 합
    • $P(X \in A) = \displaystyle\sum_{x \in A} P(X={x})$
  • 연속형 확률 변수
    • 모델링: 데이터 공간에 정의된 확률 변수의 밀도(density) 위에서의 적분
    • $P({x}) = \displaystyle \lim _{h->0} \frac{P({x} - h \leq X \leq {x} + h)}{2h}$
    • $P(X \in A) = \int _A P({x})d{x}$

확률 분포

  • $x \times y$: 데이터 공간
  • $D$: 데이터 공간에서 데이터를 추출하는 분포
  • 결합분포 $({x}, y)$는 $D$를 모델링
  • $P({x})$는 입력 ${x}$에 대한 주변확률 분포로 $y$에 대한 정보를 제공하지 않음
  • 조건부 확률 분포 $P({x}|y)$ 는 데이터 공간에서 입력 ${x}$와 출력 $y$사이의 관계를 모델링
    • 주어진 조건에서 특정 클래스 데이터의 확률 분포를 표현
  • 딥러닝은 다층 신경망을 사용하여 데이터로부터 특징패턴 $\phi$을 추출

조건부확률

조건부확률 $P({x}|y)$는 입력변수 ${x}$에 대해 정답이 $y$일 확률

  • 로지스틱 회귀에서 사용했던 선형모델과 소프트맥스 함수의 결합은 데이터에서 추출된 패턴을 기반으로 확률을 해석하는데 사용

몬테카를로 샘플링

  • 확률 분포를 명시적으로 모를 때, 데이터를 이용하여 기대값을 계산
  • 이산형과 연속형에 상관없이 성립
  • 독립추출만 보장된다면 대수의 법칙(law of large number)에 의해 수렴성을 보장
  • 실제로 $\int_{-1}^1 \exp^{-x^2} dx$ 은 몬테카를로 샘플링에 의해 약0.0039의 오차를 보유

확률분포 가정

  • 기계적으로 확률분포를 가정하는 것이 아닌, 데이터 생성 원리를 먼저 고려하는 것이 원칙
  • 베르누이 분포
    • 데이터가 2개의 값(0 or 1)만 가지는 경우
  • 카테고리 분포
    • 데이터가 n개의 이산적인 값을 가지는 경우
  • 베타 분포
    • 데이터가 [0, 1] 사이에서 값을 가지는 경우
  • 감마분포, 로그 정규분포 등
    • 데이터가 0 이상의 값을 가지는 경우
  • 정규분포, 라플라스 분포 등
    • 데이터가 $R$ 전체에서 값을 가지는 경우

통계학

모수

  • 통계적 모델링
    • 적절한 가정 위에서 확률 분포를 추정하는 것이 목표이며, 기계학습과 통계학이 공통적으로 추구하는 목표
    • 유한한 개수의 데이터만 관찰하여 모집단의 분포를 정확하게 알아내는 것은 불가능하므로 근사적으로 확률 분포를 추정
  • 모수적 방법론
    • 데이터가 특정 확률분포를 따른다고 선험적으로 가정한 후, 그 분포를 결정하는 모수를 추정하는 방법
  • 비모수 방법론: 특정 확률 분포를 가정하지 않고 데이터에 따라 모델의 구조 및 모수의 개수가 유연하게 바뀌는 방법론
    • 기계학습에서 많이 사용하는 방법론
    • 모수가 없는 것이 아닌, 모수가 무한히 많거나, 모수가 바뀌는 것

중심극한정리(Central limit theorem; CLT)

  • 모집단의 형태와 관계없이 표본크기 n이 커질수록 $\overline{X}$의 분포(표집분포)는 정규분포에 근사

Desktop View 분포에 따른 표집분포

최대 가능도 추정

가장 가능성이 높은 모수를 추정하는 방법

  • 표본 평균이나 표본 분산은 중요한 통계량이지만, 확률 분포마다 사용하는 모수가 다르므로 적절한 통계량에 영향을 미침
  • 로그 가능도를 통해 계산의 연산량을 줄임으로써 최적화

딥러닝에서의 최대가능도 추정법

  • 딥러닝 모델의 가중치를 $\theta = ({W^{(1)}}, \dotsb, {W^{(L)}})$로 표기했을 때, 분류 문제에서 소프트맥스 벡터는 카테고리 분포의 모수 $(p_1, \dotsb, p_K)$를 모델링
  • 원핫벡터로 표현한 정답레이블 ${y} = (y_1, \dotsb, y_K)$을 관찰데이터로 이용해 확률분포인 소프트맥스 벡터의 로그 가능도의 최적화 가능

두 확률분포 사이의 거리를 계산하기 위한 함수

  • 데이터 공간에 두 개의 확률 분포 $P({x}), Q({x})$가 존재할 경우
    • 총 변동 거리(Total Variation Distance; TV)
    • 쿨백-라이블러 발산(Kullback-Leibler Divergence; KL)
    • 바슈타인 거리(Wasserstein Distance)

베이즈 정리

조건부 확률을 이용하여 정보를 갱신하는 방법

  • $P(\theta|D)$: 사후확률
  • $P(\theta)$: 사전확률
  • $P(D|\theta)$: 가능도
  • $P(D)$: Evidence
  • $P(\theta|D) = P(\theta) \frac{P(D|\theta)}{P(D)}$

조건부확률은 유용한 통계적 해석을 제공하지만, 인과관계를 추론할 때 사용해선 안된다.

인과관계: 데이터 분포의 변화에 강건한 예측 모형을 만들 때 필요

베이즈 정리 예제

모 질병의 발병률이 10%로 알려져있다.
해당 질병에 실제로 걸렸을 때 검진될 확률은 99%, 실제로 걸리지 않았을 때 오검진될 확률이 1%라고 할 때,
어떤 사람이 질병에 걸렸다고 검진결과가 나왔을 때 실제로 감염되었을 확률은?

  • 사전확률: 발병률(10%)
  • 가능도
    • $P(D|\theta)$: 실제로 걸렸을 때 검진될 확률(99%)
    • $P(D|\tilde{\theta})$: 걸리지 않았을 때 오검진될 확률(1%)
  • Evidence
    • $P(D) = \displaystyle \sum_{\theta} P(D|\theta)P(\theta) = 0.99 \times 0.1 + 0.01 \times 0.9 = 0.108$

$\therefore P(\theta|D) = 0.1 \times \frac{0.99}{0.108} \approx 0.916$

오 검진률이 0.1로 상승할 시

  • $P(D) = \displaystyle \sum_{\theta} P(D|\theta)P(\theta) = 0.99 \times 0.1 + 0.1 \times 0.9 = 0.189$
  • $\therefore P(\theta|D) = 0.1 \times \frac{0.99}{0.189} \approx 0.524$

오탐율 $\propto$ $\frac{1}{정밀도}$


조건부 확률의 시각화

Desktop View PR 표

Desktop View PR 시각화

This post is licensed under CC BY 4.0 by the author.