네이버 부스트코스에서 제공하는 임성빈 님의 강의를 참고하여 작성된 포스팅입니다.
딥러닝에서 확률론은 왜 필요한가?
딥러닝은 확률론 기반의 기계학습 이론에 바탕을 둔다.
손실함수는 예측이 틀릴 위험을 최소화하도록 데이터를 학습하는 데, 이는 데이터 공간을 통계적으로 해석해서 유도하는 방식이다.
- 회귀 (L2 norm) : 예측 오차의 분산을 최소화
- 분류 (Cross-Entropy) : 모델 예측의 불확실성을 최소화
확률분포
확률분포는 데이터를 나타내는, 일종의 초상화라고 볼 수 있다.
- 파란색 점 : 실제 관측된 데이터 포인트
- P(X, y) : 데이터 공간
- D : 데이터 공간에서 데이터를 추출하는 분포
- (x,y) ~ D : 데이터 표기
빨간 격자선의 의미는 밑에서 다시 설명하겠다.
확률변수
확률변수는 확률분포 D에 따라 이산형, 연속형 확률변수로 구분된다.
이산형 (discrete)
확률변수가 가질 수 있는 경우의 수를 모두 고려해 확률을 더하는 방식으로 모델링
- 확률질량함수
p(X=x) 는 확률변수가 x값을 가지는 확률
연속형 (continuous)
이산형처럼 개별 확률을 구하는 것은 불가능하므로 데이터 공간에 정의된 확률변수의 밀도 위에서 적분을 통해 모델링
- 확률밀도함수
밀도는 누적확률분포의 변화율을 모델링하며, 이를 확률로 해석할 수는 없다. (=이산형과의 차이)
결합 분포
앞서 예시를 다시 살펴보자.
- 파란색 점 : 실제 관측된 데이터 포인트
- P(X, y) : 데이터 공간
- D : 데이터 공간에서 데이터를 추출하는 분포
- (x,y) ~ D : 데이터 표기
이 때 P(x, y)는 분포 D를 모델링하며, D는 이론적으로 존재하는 확률분포이므로 사전에 알 수 없다.
그래서 빨간 칸을 나눈 것이다!
빨간 격자를 나누어 이산확률분포처럼 취급할 수 있다.
칸 안에 들어간 파란색 점 (=데이터 포인트) 의 개수를 세서 만든 결합 분포 P만 가지고 원래의 확률분포 D를 모델링하는 것이다.
이 때 원래 확률분포인 D가 이산적인지 / 연속적인지에 따라 결합 분포 p가 결정되는 것은 아니다.
결합 분포는 원래 확률 분포와 상관 없이 정할 수 있다.
위에서처럼 이산형으로 구할수도 있고, 구역의 밀도를 계산하는 방식으로 연속형으로 구할수도 있다.
달라도 되는 이유는, 컴퓨터로 데이터를 분석하기 때문에 D와 다르다 할지라도 근사할 수 있는 방법이 있기 때문이다.
즉, 결합분포 P(x,y)를 생성하는 방법은 주어진 데이터의 모양을 보고 사용자가 적절하게 선택하면 된다.
주변 확률 분포 (Marginal Probability Distribution)
결합확률분포를 각각의 y에 대해서 모두 더해주거나, 적분해주면 유도 가능하다.
위 그림에서 P(x)는 입력 x에 대한 주변확률분포로, y에 대한 정보를 제공하지 않으며 y가 무슨 값이든 상관없이 x의 빈도에 따라서 분포가 나타난다.
수학적인 정의는 이 포스팅에 잘 정리되어 있는 것 같다.
조건부확률분포
반면 조건부확률분포인 p(x|y)는 데이터공간에서 입력 x와 출력 y 사이의 관계를 모델링한다.
즉, 특정 클래스가 주어진 조건에서 데이터의 확률분포를 보여준다.
마찬가지로 수학적인 정의는 이 포스팅에 잘 정리되어 있는 것 같다.
데이터 통계량
위와 같은 확률분포가 주어지면 데이터를 분석하는데 사용 가능한 여러 종류의 통계적 범함수를 계산 가능하다.
- 통계적 범함수 : 수학에서 범함수(functional)는 함수들의 집합을 정의역으로 갖는 함수
- 여기서는 데이터를 분석하기 위해 통계적으로 유의미한 함수들을 지칭할 때 쓰인 것 같다
- 기댓값 : 확률론에서 확률 변수의 기댓값은 각 사건이 벌어졌을 때의 이득과 그 사건이 벌어질 확률을 곱한 것을 전체 사건에 대해 합한 값이다. 이것은 어떤 확률적 사건에 대한 평균의 의미로 생각할 수 있다. 이 경우 '모 평균'으로 다룰수있다 (출처 : 위키백과)
- 데이터를 대표하는 통계량
- 다른 통계적 범함수를 계산하는데 사용됨
- 연속확률분포 : 적분 사용
- 이산확률분포 : 급수 사용
기댓값을 사용해 분산, 첨도, 공분산 등 여러 통계량을 계산할 수 있다.
기댓값은 확률변수의 위치를 나타내고 분산은 그것이 얼마나 넓게 퍼져 있는지를 나타낸다.
- 공분산 (Covariance) : 2개의 확률변수의 선형 관계를 나타내는 값이다.
- 2개의 변수중 하나의 값이 상승하는 경향을 보일 때 다른 값도 상승하는 선형 상관성이 있다면 양수의 공분산을 가진다.
- 반대로 2개의 변수중 하나의 값이 상승하는 경향을 보일 때 다른 값이 하강하는 선형 상관성을 보인다면 공분산의 값은 음수가 된다.
- 상관관계의 상승 혹은 하강하는 경향을 이해할 수 있으나 2개 변수의 측정 단위의 크기에 따라 값이 달라지므로 상관분석을 통해 정도를 파악하기에는 부적절
- 첨도 (kurtosis) : 확률분포의 꼬리가 두꺼운 정도를 나타내는 척도이다.
- 왜도 (skewness) : 실수 값 확률 변수의 확률 분포 비대칭성을 나타내는 지표
- 왜도의 값은 양수나 음수가 될 수 있으며 정의되지 않을 수도 있다.
- 왜도가 음수일 경우에는 확률밀도함수의 왼쪽 부분에 긴 꼬리를 가지며 중앙값을 포함한 자료가 오른쪽에 더 많이 분포
- 왜도가 양수일 때는 확률밀도함수의 오른쪽 부분에 긴 꼬리를 가지며 자료가 왼쪽에 더 많이 분포
- 평균과 중앙값이 같으면 왜도는 0
몬테카를로 샘플링
기계학습의 많은 문제들은 확률분포를 명시적으로 모를 때가 대부분이다.
당연히.. 존재하는 모든 데이터 포인트를 모으기는 어려우니까
-> 이게 가능하다면 애초에 기계학습을 써야 하는 이유도 없을 것이다.
확률분포를 모를 때 데이터를 이용하여 기대값을 계산하려면 몬테카를로 (Monte Carlo) 샘플링 방법을 사용해야 한다.
몬테카를로 방법은 확률분포가 이산형이든 연속형이든 상관없이 성립한다.
x : 샘플링한 데이터
이 때 데이터의 독립추출이 보장된다면, 대수의 법칙 (law of large number)에 의해 수렴성을 보장하며 구하고자 하는 기댓값에 근사하게 된다.
'NLP > AI 이론' 카테고리의 다른 글
다양한 디코딩 전략 : model.generate()에 관한 고찰 (0) | 2024.08.08 |
---|---|
[AI Math] 딥러닝 수식 뽀개기 (0) | 2024.04.16 |
[AI Math] 경사하강법 (1) | 2024.01.28 |
[AI Math] 벡터와 행렬의 개념 (1) | 2024.01.28 |
[Python] NumPy & Pandas (1) | 2024.01.28 |