Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- 소프티어
- 자바
- Coursera
- softeer
- 데이터과학
- 데이터 사이언스
- AI Mathematics
- 문자열
- IBM
- 오블완
- string
- Java
- 데이터사이언스
- Clean Code
- 클린코드 파이썬
- Boostcamp AI
- 코테
- 클린코드
- 부스트캠프
- 알고리즘
- Python
- 티스토리챌린지
- Data Science
- 깨끗한 코드
- 코세라
- 코딩테스트
- 프로그래머스
- 파이썬
- data science methodology
- programmers
Archives
- Today
- Total
떼닝로그
확률론 기초 본문
딥러닝에서의 확률론
- 딥러닝은 확률론 기반의 기계학습 이론에 바탕
- 기계학습에서의 손실함수(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)
- 기대값은 데이터를 대표하는 통계량이면서 동시에 확률분포를 통해 다른 통계적 범함수를 계산하는 데 사용
- 연속확률분포의 경우엔 적분, 이산확률분포의 경우엔 급수 사용

- 기대값을 이용해 분산, 첨도, 공분산 등 여러 통계량 계산 가능

몬테카를로 (Monte Carlo) 샘플링
- 확률분포를 모를 때 데이터를 이용하여 기대값을 계산하기 위한 방법

- 몬테카를로는 이산형, 연속형 상관 없이 성립함
- 몬테카를로 샘플링은 독립추출만 보장된다면 대수의 법칙에 의해 수렴성을 보장
- 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