떼닝로그

확률론 기초 본문

Boostcamp AI Tech/AI Mathematics

확률론 기초

떼닝 2022. 6. 16. 08:29

딥러닝에서의 확률론

  • 딥러닝은 확률론 기반의 기계학습 이론에 바탕
  • 기계학습에서의 손실함수(loss function)들의 작동 원리는 데이터 공간을 통계적으로 해석해서 유도 - 예측이 틀릴 위험(risk)을 최소화하기 위해
  • 회귀 분석에서 손실함수로 사용되는 L2-norm예측오차의 분산을 가장 최소화하는 방향으로 학습
  • 분류 문제에서 사용되는 교차 엔트로피(cross-entropy)모델 예측의 불확실성을 최소화하는 방향으로 학습
  • 분산 및 불확실성을 최소화하기 위해서는 측정하는 방법을 잘 선택해야 함
  • 확률분포는 data 해석에 있어서 굉장히 중요한 도구로 쓰임

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

  • 확률변수는 확률분포 D에 따라 이산형(discrete)과 연속형(continous) 확률변수로 구분
  • 이산확률변수와 연속확률변수가 모든 확률 분포를 나타내는 것은 아님
위가 이산확률변수, 아래가 연속확률변수

이산형 확률변수

  • data가 정수 집합일 경우 이산형
  • 확률변수가 가질 수 있는 경우의 수를 모두 고려하여 확률을 더해서 모델링 수행
  • 일반 컴퓨터에서 가장 많이 사용

연속형 확률변수

  • data가 실수형일 경우. 하지만 실수형이라고 다 연속형 확률변수라고 할 수는 없음.
  • 데이터 공간에 정의된 확률변수의 밀도(density) 위에서의 적분을 통해 모델링 수행. (위의 식에서 P(x)가 밀도함수)
  • 밀도는 누적확률분포의 변화율을 모델링하는 것이며, 확률이 아님.
  • 기계학습에서 자주 사용

확률분포는 데이터의 초상화

  • 데이터공간을 X * Y로 표기하고, D는 데이터공간에서 데이터를 추출하는 분포
  • (x, y) ∈ X * Y는 데이터 공간 상의 관측 가능한 데이터 (위의 사진에서의 파란색 점).
    • 확률변수(데이터공간에서 random하게 관측되는 함수)로 (x, y) ~ D로 표기.
  • 확률분포에 따라 (어떤 식으로 data 접근하냐에 따라, 분포의 종류에 따라) 모델링 방식이 달라짐
  • 결합분포(Joint Distribution) P(x, y)는 D를 modeling
    • 원래의 확률분포와 상관 없이 modeling 방법에 따라 다른 방향으로 사용 가능.
    • 원래 data의 확률분포 추출하는 D와 주어진 data에서 심층적으로 추정하게 되는 분포는 다를 수 있음. (근사하는 방법을 알 수 있기 때문)
  • 주변확률분포결합확률분포를 각각의 y에 대해 모두 더해주거나 적분 수행
    • P(x)는 입력 x에 대한 주변확률분포(Marginal Distribution)로 y에 대한 정보를 주진 않음
    • 아래의 그래프는 각 X의 값에 따른 빈도를 나타냄 (Y의 값과 연관 X)
주변확률분포
  • 조건부확률분포 P(x|y)는 데이터 공간에서 입력 x와 출력 y 사이의 관계를 모델링. 입력변수 x에 대해 정답이 y일 확률
    • P(x|y)는 특정 클래스가 주어진 조건에서 데이터의 확률분포를 보여줌
    • 주어진 class에 대해 정보가 각각 어떤 식으로 되어있는가 확인할 때 사용
조건부확률분포
  • 주어진 class에 대해 x의 분포가 각각 어떤 식으로 되어있는가 확인하려면 주변확률분포보다는 조건부확률분포 사용

조건부확률과 기계학습

  • 로지스틱 회귀에서 사용하는 선형모델과 softmax 함수의 결합데이터에서 추출된 패턴을 기반으로 확률을 해석하는 데 사용
  • 분류 문제에서 softmax(W∮+b)은 데이터 x로부터 추출된 특징패턴 ∮(x) 가중치행렬 W를 통해 조건부확률 P(y|x) 계산
  • 회귀 문제의 경우 조건부기대값 E[y|x] 추정
  • 조건부기대값은 L2-norm(E||y-f(x)||)를 최소화하는 함수 f(x)와 일치
    • 회귀문제에선 보통 y가 연속인 함수를 다루기 때문에 적분 사용
조건부기대값
  • 딥러닝은 다층신경망을 사용하여 데이터로부터 특징패턴 ∮ 추출
  • 특징패턴을 학습하기 위해 어떤 loss함수를 사용할 것인지는 기계학습 문제와 모델에 의해 결정됨

기대값 (expectation)

  • 기대값은 데이터를 대표하는 통계량이면서 동시에 확률분포를 통해 다른 통계적 범함수를 계산하는 데 사용
  • 연속확률분포의 경우엔 적분, 이산확률분포의 경우엔 급수 사용
위가 연속확률분포, 아래가 이산확률분포
  • 기대값을 이용해 분산, 첨도, 공분산 등 여러 통계량 계산 가능
위에서부터 순서대로 분산, 첨도, 공분산. x 대신 f 대입하면 통계량 계산 가능

몬테카를로 (Monte Carlo) 샘플링

  • 확률분포를 모를 때 데이터를 이용하여 기대값을 계산하기 위한 방법
몬테카를로 샘플링식. x에 sampling한 data를 넣어줌으로써 식이 성립
  • 몬테카를로는 이산형, 연속형 상관 없이 성립함
  • 몬테카를로 샘플링은 독립추출만 보장된다면 대수의 법칙에 의해 수렴성을 보장
  • sample size가 작으면 몬테카를로 방법이라 하더라도 오차 범위가 커질 수 있고, 참값에서 멀어질 수 있기 때문에 적절한 값으로 지정해줘야함
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):
    	# 균등분포에서 data sampling 진행
    	x = np.random.uniform(low=low, high=high, size=sample_size)
        fun_x = fun(x)
        int_val = int_len * np.mean(fun_x)	# 대입된 함수들에 대해 산술평균
        stat.append(int_val)
	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))

'Boostcamp AI Tech > AI Mathematics' 카테고리의 다른 글

베이즈 통계학  (0) 2022.06.17
통계학 기초  (0) 2022.06.17
딥러닝 학습방법 이해하기  (0) 2022.06.16
경사 하강법 (Gradient Descent)  (1) 2022.06.15
행렬 (Matrix)  (0) 2022.04.04
Comments