[BoostCamp AI Tech / Day 5] AI Math 6강 - 확률론 맛보기

newbie·2021년 8월 6일
0

[boostcampAI U stage] week1

목록 보기
18/21

딥러닝에서 확률론이 필요한 이유

  • 딥러닝은 확률론 기반 기계학습 이론에 바탕을 두고 있음
  • 기계학습에서 사용되는 손실함수(loss function)들의 작동 원리는 데이터 공간을 통계적으로 해석해서 유도하게 됨
  • 예측이 틀릴 위험(risk)을 최소화하도록 데이터를 학습하는 원리는 통계적 기계학습의 기본 원리
  • 회귀 분석의 손실함수 L2 노름 :
    • 예측 오차의 분산을 가장 최소화 하는 방향으로 학습
  • 분류 문제의 교차엔트로피(cross-entory) :
    • 모델 예측의 불확실성을 최소화 하는 방향으로 유도
  • 분산 및 불확실성을 최소화하기 위해서는 측정하는 방법에 대한 이해가 필요하므로 기계학습을 이해하려면 확률론의 기본 개념을 알고 있어야 함

인라인 링크는 아래처럼

확률분포

확률 변수

  • 데이터 공간을 X×YX \times Y라 표기하고, DD는 데이터 공간에서 데이터를 추출하는 분포
  • 관찰하는 데이터는 확률변수(random variable)로 고려하고, (x,y)D(x,y) \sim D 라 표기
    • (x,y)X×Y(x,y) \in X \times Y는 데이터공간 상의 관측가능한 데이터에 해당
    • 즉, 확률 변수란 데이터공간 상에서 원소를 X라 표현할 때,
    • X는 데이터 공간의 어떤 원소라도 될 수 있음을 의미하여, 임의로 랜덤하게 데이터공간 상에서 관측하게 되는 함수로 이해하면 됨
    • 아래 그림에서, 파란색 점은 확률변수를 사용해 데이터공간 상에서 관측항 데이터
    • 이러한 확률 변수를 추출한 확률 분포 D라고 함

결합분포

  • 결합분포 P(x,y)P(x,y)는 D를 모델링
    • 데이터를 기반으로 모델링할 분포를 상정해볼 수 있는데,
    • 전체 데이터 X,YX,Y가 주어졌을 때 두 데이터를 함께 고려한 분포를 결합분포(joint distribution) 라고 함
      • 확률 변수가 다변수(2개 이상) 일 때 활용
    • 그림 상에서, 결합분포 P(x,y)P(x,y)XXYY의 범위에 따라 구분지은 경우, 각 칸에 원소 개수를 셀 수 있음
    • 관찰된 데이터는 연속확률 변수처럼 보이는 확률분포를 띄고 있지만, 칸을 구분지으면 이산확률분포처럼 생각을 할 수 있음
    • 각 칸에 대한 원소 개수를 세면, 그걸 통해 현재 주어진 데이터의 결합데이터를 가지고 원래 확률 분포 D를 모델링 할 수 있음
    • 단, 확률분포 D와 결합분포 P(x,y)P(x,y)의 분포를 맞출 필요는 없음
      • 즉, D가 연속형이라도, P(x,y)P(x,y)를 이산형으로 해볼 수 있음
      • 이건 모델링 방법에 따라 다르며, 원래 데이터 분포 D와 실증적으로 주장하는 분포 차이가 발생할 수 있음(모델링 차이)
      • 확률분포 D와 다르더라도 근사할 방법을 알 수 있기 때문
    • 따라서, 결합분포는 주어진 데이터의 모양을 보고 적절히 선택

주변확률분포

  • 주변확률분포(P(x)P(x), marginal distribution) : 변수가 2개 이상일 때 (2개 이상의 사건 동시에 일어날 수 있을 때)
    • 하나의 특정 사건에 주목하여 그것이 일어날 확률(다른 사건 고려 X)
  • P(x)P(x)는 입력 x에 대한 주변확률분포로 y에 대한 정보는 주지 않음
    • P(x)=yP(x,y)P(x)=yP(x,y)dyP(x) = \sum_{y} P(x,y) \quad P(x)=\int_y P(x,y)dy
      • 주변확률분포는 결합분포에서 유도 가능

조건부확률분포★★★

  • 조건부확률분포 P(xy)P(x|y)는 데이터 공간에서 입력 xx와 출력yy사이의 관계를 모델링
  • P(xy)P(x|y)는 특정 클래스가 주어진 조건에서 데이터의 확률분포를 나타내줌
  • 해당 그림에선, yy가 주어졌을 때 xx의 확률을 표시한 것으로, y=1y=1 일때 xx의 점들만 세서 확률분포를 구함
  • 특정 출력값 혹은 클래스가 주어진 상황에서 데이터 확률분포를 구하기에, 입력과 출력 사이의 관계를 모델링 할 때(예측 모형을 세울 때) 활용

이산확률변수 VS 연속확률변수

  • 확률 변수는 확률분포 D에 따라 이산형(discrete)연속형(continuous) 확률 변수로 구분

    • 데이터 공간 X×YX \times Y에 의해 결정되는 것이 아닌 D에 의해 결정
    • 만약 데이터 공간이 정수 집합일 경우 이산형 확률 변수라 판단할 수 있지만, 실수 공간이라고해서 무조건 연속형이라 생각할 필요 없음
      • ex) 만약 실수 공간에서 -0.5 ~ 0.5에 포함되는 확률 변수 같은 경우 포함되는지, 안되는지에 따라 두 개로 분류되므로 이산형이라 생각할 수 있음
    • 확률분포의 종류에 따라서 이산형과 연속형으로 구분
  • 이산형 확률 변수

    • 이산형 확률 변수는 확률변수가 가질 수 있는 경수의 수를 모두 고려하여 확률을 더해서 모델링한다
    • (XA)=xAP(X=x),P(X=x)(X \in A) = \sum_{x \in A} P(X = x), P(X=x)는 확률변수가 xx값을 가질 확률로 해석
      • 학률변수 XXAA라는 집단에 속할 확률은, 곧 확률변수 XXAA에 포함된 xx값을 모두 가질 확률로 해석할 수 있음
  • 연속형 확률 변수

    • 연속형 확률변수는 데이터 공간에 정의된 확률변수의 밀도(density)위에서의 적분을 통해 모델링
    • P(XA)=AP(x)dxP(X \in A) = {\int_A P(x)dx}
      • 밀도함수 P(x)=limh0P(xhXx+h)2h밀도함수\ P(x) = {\lim_{h \to 0}P(x-h\leqq X \leqq x+h)\over 2h}
      • 밀도함수는 누적 확률분포의 변화율을 모델링하며, 확률로 해석하면 안됨

    ※ 참고로, 이산형과 연속형 확률변수에 속하지 않는 경우도 있음

    • ex) 경우에 따라 이산형 분포 혹은 연속형 분포를 가지는 상황
    • 따라서 확률변수가 항상 두 가지로 구분되는 것은 아니기에 주의

조건부확률과 기계학습

  • 조건부 확률P(yx)P(y|x) 는 입력변수 xx에 대해 정답이 yy일 확률을 의미
    • 연속확률분포의 경우에는 확률이 아니라 밀도로 해석해야 하는 것을 주의
  • 로지스틱 회귀에서 사용했던 선형모델과 소프트맥스 함수의 결합은 데이터에서 추출된 패턴을 기반으로 확률을 해석하는데 사용
  • 분류 문제에서 softmax(Wϕ+b)W\phi + b)는 데이터 xx로부터 추출된 특징패턴 ϕ(x)\phi(x)와 가중치 행렬WW을 통해 조건부확률 P(yx)P(y|x)(P(yϕ(x)P(y|\phi(x)라 써도 무방)를 계산
  • 회귀 문제에선 조건부기대값 E[yx]E[y|x]을 추정
    • why?
      • 회귀문제를 다루는 경우 손실함수를 L2norm을 사용(AI Math 5강 참고)
      • 조건부 기대값은 L2-norm과 일치(수학적으로 증명된 해당 내용 찾아볼 것)
      • 즉, 조건부 기대값을 사용하는 이유는 L2norm을 최소화 하기 위함
      • 예측에 오차의 분산을 최소화하는 수치로서, 통계치로 사용하기에 적절하여 조건부 기대값을 회귀문제를 종종 사용함
        • 원하는 목적에 따라 estimate가 달라짐
          • 중앙값, 조건부기댓값, 평균값 등등.....
      • 따라서, 조건부기대값은 Eyf(x)2E||y-f(x)||_2을 최소화하는 함수f(x)f(x)와 일치
    • EyP(yx)[yx]=yyP(yx)dyE_{y\sim P(y|x)}[y|x] = \int_{y}yP(y|x)dy
      • 정육면체인 주사위의 기댓값 : (1+2+3+4+5+6)6=3.5{(1 + 2 + 3 + 4 + 5 + 6) \over 6} = 3.5
  • 딥러닝은 다층신경망을 사용하여 데이터로부터 특징패턴 ϕ\phi을 추출
    • 특징패턴을 학습하기 위해 어떤 손실함수를 사용할지는 기계학습 문제와 모델에 의해 결정

기대값이란?

  • 확률분포가 주어지면 데이터를 분석하는 데 사용 가능한 여러 종류의 통계적 범함수(statistical functional)를 계산할 수 있음
  • 기댓값(expectation)은 데이터를 대표하는 통계량이면서 동시에 확률분포를 통해 다른 통계적 범함수를 계산하는데 사용
    • 연속확률분포 시 적분 => EyP(yx)[yx]=χf(x)P(x)dyE_{y\sim P(y|x)}[y|x] = \int_{\chi}f(x)P(x)dy
    • 이산확률분포 시 급수 => EyP(yx)[yx]=xχf(x)P(x)E_{y\sim P(y|x)}[y|x] = \sum_{x \in \chi}f(x)P(x)
  • 기대값을 이용해 분산,첨도,공분산 등 여러 통계량 계산 가능
    • 위 수식에 f 대신 대입하면 통계량을 계산할 수 있음

몬테카를로 샘플링

  • 기계학습의 많은 문제들은 확률분포를 명시적으로 모를 때가 대부분
  • 확률분포를 모를 때 데이터를 이용하여 기대값을 계산하려면 몬테카를로(Nonte Carlo)샘플링 방법을 사용
  • EyP(yx)[yx]=1Ni=1Nf(x(i)),x(i)i.i.dP(x)E_{y\sim P(y|x)}[y|x] = {1 \over N} \sum_{i=1}^N f(x^{(i)}), \quad x^{(i)} \overset{i.i.d} \sim P(x)
    • i.i.d(independent identically distributed) : 독립동일분포
      • 각각의 random variable들이 독립 + 동일한 확률분포를 가지는 분포
      • 몬테카를로 샘플링 시 표본을 독립적으로 추출
    • 몬테카를로는 이산형이든 연속형이든 상관없이 성립한다
    • sampling한 데이터값 xxf(x)f(x)에 대입 후 산술평균을 구하면 결과가 기대값에 근사
  • 몬테카를로 샘플링은 독립추출만 보장된다면 대수의 법칙(law of large number)에 의해 수렴성을 보장한다
    • 몬테카를로 샘플링은 기계학습에서 매우 다양하게 응용되는 방법

몬테카를로 예시

  • 적분구간이 -1~1인 균등분포에서 데이터를 샘플링해주기 위해 2로 나누면 균등분포와 동일한 적분에 해당하기에 기대값을 구하게 되므로 몬테카를로 적용 가능
    • 적분결과를 모르기에 2를 우항으로 넘겨서 곱해주면 됨
  • f(x)f(x)ex2e^{-x^2} 을 대입 후 연산
  • 단, 샘플가 적으면 오차범위가 커지고 참값에 멀어지게 되므로, 적절한 샘플 개수 고려

profile
DL, NLP Engineer to be....

0개의 댓글