​지난 시간 정리

지난 시간에 표본공간, 실험, 사건, 확률변수, 확률함수 등을 정리했습니다. 중요하게 기억해야 할 것은 확률변수입니다.

 

확률변수는 표본공간의 원소를 실수로 변환하는 함수입니다.

  • 동전을 던져 앞면을 1, 뒷면을 0으로 변환한다고 가정하면, 확률변수 𝑋는 다음과 같이 정의됩니다:
    𝑋(𝐻) = 1, 𝑋(𝑇)= 0
  • 즉, 표본공간 {𝐻,𝑇}를 실수 {1,0}으로 변환하는 역할을 합니다.

또한 확률함수확률변수의 값을 확률로 변환하는 함수라는 것입니다. 그리고 이 확률함수는 이산형확률함수와 연속형확률함수로 나눌 수 있고, 이 두개의 이름이 다릅니다. 이산형확률함수를 확률질량함수라고 하고, 연속형확률함수를 확률밀도함수라고 합니다.

 

강의보러가기: https://youtu.be/lvka0j2_7ic?si=DC0ggGwEt_oj77wK

이산형확률변수

Bernoulli Distribution

확률변수로 성공은 1 실패는 0으로 변환하고 성공의 확률을 $p$ 라고 두면 확률 함수는 아래와 같습니다.

 

$$ f_X(x;p) = p^x(1-p)^{1-x}, \space\space x = 0\space or \space1 $$

 

$ f_X(x;p) $는 $p$로 Parameterized 된 확률변수 X에 대한 x확률변수 함수라는 뜻입니다. $p$로 parameterized 됐다는 건 p에 의해 확률분포 모양이 변한다는 의미입니다.

 

아주 쉽습니다. 한 번 시도이니까 만약 성공이면 $ x = 1 $ 이니까 $p$가 되고 실패라면 x = 0 이니까 $1-p$가 됩니다. 베르누이라는 말에 어려움을 느끼지만, 제일 쉽습니다.

 

평균과 분산

$$ E[X] = p $$
$$ V[X] = p(1 - p) $$

 

위 식은 따로 설명할 필요없을 것 같습니다. 성공 확률이 p니까 평균적으로 p의 확률만큼 성공하겠죠. 분산은 성공확률 $p$를 중심으로 $1-p$만큼 퍼져있는겁니다. 수학식으로는 아래와 같이 됩니다. 

 

$$ E[X] = \sum_{x=0,1} xp^x(1-p)^{1-x} = 0 + p = p$$
$$ V[X] = E[X^2] - (E[x])^2 = \sum_{x=0,1} x^2p^x(1-p)^{1-x} = p - p^2 = p(1-p)$$

 

강의에서 $ V[X] = E[X^2] - (E[x])^2 = \sum_{x=0,1} x^2p^{x^2}(1-p)^{1-x^2} $이라고 썼는데 강의내용이 틀렸으니 참고하시기 바랍니다. 글이 수정이 쉬워서 글먼저 쓰고 유트브를 만드는게 더 품질이 좋을 것 같은데, 블로그 글쓰기는 저도 모르게 계속 미루게 됩니다.

Binomial Distribution

베루누이분포와 거의 똑같습니다. 다만 시행을 여러번 즉, n번한다고 가정하고 확률변수는 성공의 횟수로 합니다. 그래서 아래와 같은 확률질량함수가 나옵니다.

$$ f_X(x;p) = \binom{n}{x}p^x(1-p)^{1-x} \space \space, for x = 0, \space1, \space\space...,n$$

이 전에 설명을 해서 설명은 생략합니다.

평균과 분산

$$ E[X] = np $$
$$ V[X] = np(1 - p) $$

1번 일때는 p이고 n번 시행하니까 평균이 np가 됩니다. 자세한 설명은 생략하겠습니다.

연속형확률변수

연속형확률변수는 특정값으로 나타내지 않고 범위로 나타냅니다. 왜냐하면 연속형확률함수의 확률밀도함수는 범위를 확률로 변환해줍니다. 연속형확률함수의 특정값에서의 확률은 항상 0입니다.

연속형확률변수의 특징을 보겠습니다.

 

1. Uncountable

연속형확률변수는 Uncoutable입니다. 우리 정규분포의 MLE를 공부하며 동물의 몸무게 예시를 봤었습니다. 동물의 무게를 셀 수 있을까요? 무게가 정확히 같은 동물은 없을 겁니다. 0.0000000000000000000000000000000000000000000001 그램이라도 다르겠죠.

 

2. Range 

셀 수 없기때문에 범위로 표시합니다. $[0, 1]$은 0과 1사이의 범위를 의미하고 0과 1을 포함합니다. $(0, 1]$ 0과 1사이의 범위를 의미하고 0은 포함하지 않고 1은 포함합니다.

 

3. $ \int $ 

$\sum$ 대신 $\int$를 활용합니다. 네, 범위를 적분하고 적분한 값이 확률을 의미합니다. 적분을 사용하니까 특정값에서 적분은 0이 되는 겁니다. $\int^{a}_{a} f(x)dx$ 는 항상 0입니다.

확률밀도함수

$$ P=(a\leq X \leq b) = \int^{a}_{b} f(x) dx $$

위 식에서 볼 수 있듯이 확률변수 X가 a와 b사이에 있을 확률은 오른쪽 식이 됩니다. f(x)가 확률밀도함수이고, 적분하여 확률을 구합니다. 적분되는 식 $f(x)$가 확률밀도함수입니다.

 

확률질량함수와 범위를 보는관점이 다릅니다. 확률질량함수에서의 확률변수는 < 와 $\leq일때 값의 차이가 있습니다. 하지만 연속형은 값이 같습니다.

 

예를들어 누적질량함수를 구할때 $P(a < X \leq b) \neq $P(a < X < b) $ 와 같이 범위에서 a 또는 포함되느냐 아니냐에 따라서 확률값이 달라지지만, 연속형확률변수는 $P(a < X \leq b) = $P(a < X < b) $ a와 b 포함여부에 관계없이 같습니다. 적분의 성질을 잘 생각보시면 됩니다.

누적밀도함수

$$F(x) = P(X \leq x) = \int^{x}_{-\infty} f(t) dt $$

입니다. 확률밀도함수를 적분하면 누적밀도함수가 됩니다. 당연히 누적밀도함수를 미분하면 확률밀도함수가 됩니다.

평균과 분산

$$E[x] = \int xf(x) dx $$
$$V[x] = E[(x-\mu)^2] = E[X^2] - (E[X])^2

상세한 내용은 강의를 참고하시 바랍니다.

​지난 시간 정리

MLE에 대한 간략한 소개까지 완료 했습니다.

 

다시 한 번 간단히 말씀드리면, 데이터를 목격하고 과연 이 데이터는 어떻게 생긴 분포로 부터 나온것 이 가장 있음직(likelihood) 할까를 구하는 문제입니다.

 

제주도 옆 우도 예제를 말씀드리며 개와 고양이 중에 뭘 봤냐라는 문제는 이항분포를 가정하고 MLE를 통해 이항분포의 모수 p(개를 볼 확률)를 구해봤습니다. 또한, 그냥 동물을 보고 무게를 측정했을 때는 정규분포를 가정하고 MLE를 통해 정규분포의 모수 평균과 분산을 구해봤습니다.

 

이제 Gaussian Noise를 선형회귀에 적용하여 MLE에서 배운 지식을 활용해 우리가 사용했던 MSE(또는 SSE)가 진짜 합리적이였는지 봐야합니다.

 

제가 전에도 말씀 드렸죠? 우리는 왜 이 공부를 하고 있는지 생각하면서 가는게 정말 중요하다고요.

우리는 MSE(또는 SSE)를 활용해서 우리가 예측에 사용할 빨간선을 구했습니다. 그런데 진짜 MSE(또는 SSE)를 활용해서 빨간선을 구하는게 합리적인지 의심이 생겼다고요. 그래서 다른 방법으로도 MSE(또는 SSE)를 활용하는 것이 맞다고 나온다면 우리는 의심을 거둘 수 있을 겁니다.

 

Gaussian Noise를 선형회기에 적용하고 MLE를 활용해도 역시 MSE(또는 SSE)가 합리적이였다는 것을 알 수 있습니다. 수학적으로 SSE와 같은식이 나옵니다.

 

하지만 그 전에 확률과 통계를 잠시 다루고 가겠습니다. 이 부분은 다른 좋은 강의가 많아서 제가 만드는게 의미가 있을까 고민을 했습니다.(사실 머신러닝도 좋은 강의가 많긴 합니다.)  하지만, 제가 확실히 아는가에 대한 물음에 자신이 없어서 저 역시 한 번 강의를 만들면서 정리하는게 맞다고 생각했습니다.

**강의 보러 가기: https://youtu.be/pyeyuBmIOr4?si=SXI3E7pSC4C3j767

확률과 통계의 관계

확률과 통계는 데이터 분석의 두 축을 이루는 중요한 개념입니다. 이 둘의 차이를 간단히 설명하자면 다음과 같습니다:

 

확률(Probability): 모델이 주어졌을 때, 데이터를 예측하는 과정입니다. 예를 들어, 공평한 동전을 던질 때 앞면이 나올 확률이 1/2임을 예측하는 것이 확률입니다.

 

통계(Statistics): 데이터를 기반으로 모델을 추정하는 과정입니다. 예를 들어, 데이터를 보고 𝑦 = 𝑎𝑥+𝑏 형태의 선형 모델을 찾아내는 것이 통계입니다.

 

제가 참고한 웹에서 확률은 동물을 보고 발자국을 예측하는 것이고, 통계는 발자국을 보고 동물을 추정하는 것과 같아고 비유하고 있습니다. 한 번 읽어보시 바랍니다.

 

A Brief Introduction to Probability & Statistics: https://betterexplained.com/articles/a-brief-introduction-to-probability-statistics/

 

표본공간, 실험, 사건

 

확률을 이해하려면 몇 가지 기본 개념을 알아야 합니다.

 

1. 표본공간(Sample Space)

 

모든 실험 결과를 포함하는 집합입니다. 예를 들어, 동전을 한 번 던질 때 표본공간은 앞면(Head)과 뒷면(Tail)을 포함하는 집합 𝑆= {𝐻,𝑇}입니다.

 

2. 실험(Experiment)

데이터를 얻기 위해 수행하는 행위를 의미합니다. 동전을 한 번 던지는 것도 하나의 실험입니다.

 

3. 사건(Event)

표본공간의 부분집합으로, 특정 조건을 만족하는 결과를 나타냅니다. 예를 들어, 주사위를 던졌을 때 짝수가 나오는 사건은 {2, 4, 6}입니다.

 

확률변수와 확률함수

확률변수(Random Variable)

 

확률을 한 번 정리하기로 한 이유 중 하나입니다.

 

머신러닝을 공부하시는 많은 분들이 확률에 대해서 정확히 공부를 하지 않고 시작하는 경우가 많기 때문에, 이 확률변수를 정확히 모르는 경우가 많습니다.

 

확률변수는 표본공간의 원소를 실수로 변환하는 함수입니다.

  • 동전을 던져 앞면을 1, 뒷면을 0으로 변환한다고 가정하면, 확률변수 𝑋는 다음과 같이 정의됩니다:
    𝑋(𝐻) = 1, 𝑋(𝑇)= 0
  • 즉, 표본공간 {𝐻,𝑇}를 실수 {1,0}으로 변환하는 역할을 합니다.

확률함수(Probability Function)

 

확률변수의 값을 확률로 변환하는 함수입니다. 를 들어, 동전을 던질 때 𝑃(𝑋=1)=1/2, 𝑃(𝑋=0)=1/2 입니다.
모든 확률은 0 이상이어야 하며, 확률의 총합은 1이어야 합니다.

 

이 확률함수는 이름이 두개입니다. 이산형 확률변수의 확률함수는 확률질량함수라고 하고 연속형 확률변수의 확률함수는 확률밀도함수라고 합니다.

 

확률분포가 되기 까지

 

위는 강의 노트 중에 있는 내용입니다. 쉬운 내용이니까 꼭 정리하시면 좋습니다. 표본공간에는 전체 원소가 있습니다.(동전을 던진 다면 H, T) 이 표본공간의 원소를 숫자로 바꿔주는 함수를 확률변수(Random Variable X, X(H) =1 / X(T) =0)라고 합니다. 마지막으로 이 확률변수를 확률로 바꿔주는 함수를 확률 함수라고 하고, 확률함수에는 이산형과 연속형이 있다는 겁니다. 꼭 정리하시기 바랍니다.

 

강의를 보시면 동전과 주사위로 두 번 정도 예를 들어 드렸으니 기억하시는데 도움이 되실 겁니다.

 

이산형 확률변수와 확률분포

이산형 확률변수(Discrete Random Variable)

 

이산형 확률변수는 유한하거나 셀 수 있는 무한한 값을 가질 수 있습니다.

 

예시 1: 동전 던지기

동전 한 번 던질 때 표본공간은 {𝐻,𝑇}이며, 확률변수 𝑋는 {1,0}으로 변환됩니다.

예시 2: 주사위 던지기

주사위를 던지면 표본공간은 {1,2,3,4,5,6}이고, 확률변수도 동일하게 {1,2,3,4,5,6}입니다.

 

확률분포(Probability Distribution)

 

확률분포는 확률변수를 통해 얻어진 확률들의 패턴을 나타냅니다.

이산형 확률분포: 동전 던지기처럼 값이 딱딱 떨어지는 분포입니다.

연속형 확률분포: 동물의 몸무게처럼 값이 연속적으로 나타나는 분포입니다.

기대값과 평균의 차이

기대값(Expected Value)은 확률분포의 평균을 나타냅니다. 이는 실험을 하기 전에도 계산할 수 있습니다.

반면, 평균(Mean)은 실제 데이터를 기반으로 계산한 값입니다. 예를 들어, 주사위의 기대값은 모든 값의 확률 가중 평균으로 𝐸[𝑋]=3.5 입니다. 이는 공정한 주사위를 가정한 이론적 확률에서 계산된 값입니다.

 

기대값과 평균의 차이에서도 저는 빈도주의자와 베이지안 관점의 차이가 느껴집니다. 기대값은 실험을 하기 전에 예측할 수 있는 값이니 베이지안 관점이고 평균은 실험을 통해서 나올 수 있는 값이니 빈도주의자 관점 같습니다. 

결론

확률과 통계는 데이터 분석에서 떼려야 뗄 수 없는 개념입니다. 이번 글에서는 확률과 통계의 기본 개념부터 확률변수, 확률함수, 이산형 확률분포, 그리고 기대값과 평균의 차이를 살펴봤습니다. 다음 글에서는 연속형 확률변수와 분포에 대해 알아보겠습니다.

지난 시간 정리

15강 ~ 19강 MLE 정리

 

MLE(최대우도추정법)에 대한 심층적인 이해를 위해 15강에서는 확률의 철학적 접근부터 시작하여 19강까지 이어지는 과정을 다루었습니다. 위 그림은 15강부터 현재까지의 내용을 요약한 것입니다.

 

최대가능도 구하기 요약

MLE 계산 단

 

이전 강의를 충실히 따라오신 분이라면 위 그림만 보셔도 주요 개념이 정리될 것입니다. 복습이 필요하신 분들은 19강 5분 40초까지의 내용을 다시 보시면 도움이 될 것입니다.

강의 보러 가기: https://youtu.be/BqQKI74ym1A?si=qSSM_0iUVfBjbQXJ

정규분포의 MLE

정규분포 MLE 직관적 설명

19강 강의 5분 41초부터 가우시안 분포(정규분포)에 대한 MLE 설명이 진행됩니다.

 

이번 예시에서는 제주도 옆 우도의 고양이 무게를 측정하여 분석하는 과정을 통해 정규분포의 MLE를 이해해 봅시다. 우도 고양이들의 몸무게가 정규분포를 따른다고 가정한 후, 10마리의 고양이 무게를 측정한 결과는 다음과 같습니다:

 

[48, 52, 47, 49, 50, 53, 51, 50, 51, 48]

 

고양이 10마리의 평균과 분산을 계산한 결과, 평균은 50, 분산은 2.8이 나왔습니다. 그렇다면, 이 고양이들의 무게가 어떤 정규분포에서 나왔을 가능성이 가장 높을까요?

 

당연히 평균이 50이고 분산이 2.8인 정규분포에서 뽑혔을 확률이 가장 높을 것입니다.

정규분포의 MLE 수학적 설명

 

이제 MLE를 통해 평균과 분산이 얼마일 때 Likelihood 함수가 최대가 되는지 수학적으로 구해보겠습니다. 정규분포의 확률 밀도 함수(PDF)는 위 그림의 1번과 같은 형태를 가집니다.

 

가우시안 분포 또는 정규분포라고 하는 저 식은 사실 저도 잘 모릅니다. 한 번도 증명해 본 적이 없습니다. 그냥 고등학교 때부터 봐서 익숙한 느낌뿐입니다. ChatGPT에 물어보면 적분이 1인 성질을 이용해서 증명한다고 돼있습니다. 그럼 자연상수 e가 들어가는 식이라는 건 이미 알고 있다는 말인데 그건 또 어떻게 알게 됐는지... 저는 정규분포 외 포아송분포, t분포 등 이 분포들의 확률밀도함수는 받아들이기로 했습니다. 도전하실 분은 응원합니다.

 

아무튼, 가우시안 분포는 $\mu$(평균)와 $\sigma$(분산)에 parameterized 된 확률밀도함수를 가지고 있다는 것을 알 수 있습니다. 그리고 함수를 보면 직관적으로는 우리가 익숙한 "종"모양의 분포가 되겠다는 걸 알 수 있죠.

 

이제, Likelihood 함수를 로그 변환한 후에 미분하여  $\mu$와 $\sigma$를 최대화하는 값을 구해보면 아래 그림과 같은 결과를 얻을 수 있습니다.

 

이 결과는 우리의 데이터가 실제로 우리가 알고 있는 평균과 분산을 가지는 정규분포에서 나온 것이 가능도를 최대로 한다는 것을 수학적으로 증명합니다.

​지난 시간 정리

우리는 MSE(Mean Squared Error)를 사용하여 빨간 선을 찾는 것이 합리적인지 알아보기 위해 MLE(Maximum Likelihood Estimation)를 공부하고 있습니다. 지난 시간에는 MLE를 더 잘 이해하기 위해 이항분포와 함께 순열(Permutation)과 조합(Combination)을 공부했습니다. 

 

다시 제주도 옆 우도 예제를 보면서 MLE로 가봅시다.

$$ L(\theta) = P(D ; \theta) = \binom {10}{7}\theta^7(1-\theta)^3 $$

 

이항분포와 조합을 이해한 후 이 식이 더 잘 보일 것입니다. 마지막 식이 아직 어색하다면 이전 강의를 참고해 주세요. 이제, 개를 7번 고양이를 3번 봤을 때 정말 개를 볼 확률이 $\frac {7}{10}$이였을 때 최대우도가 되는지 보겠습니다. 다시 말해, $\theta = \frac {7}{10}$ 일 때 개를 7번 고양이를 3번 본 사건이 가장 "있음 직한 일"인지 확인하겠습니다.

강의 보러 가기: https://youtu.be/sjLQctg61iY?si=Iujle4rvpXWlKSxY

 

Likelihood의 가정 IID (Identically Independently Distributed)

우도의 가정을 분석해 봅시다.

$$ L(\theta) = P(D ; \theta), D \, are \, IID $$

$L(\theta)$는 $\theta$에 대한 Likelihood 함수라는 의미입니다. $P(D ; \theta)$는 $\theta$를 파라미터로 하는 데이터의 확률을 의미합니다. 베이즈 정리의 Likelihood와 약간 차이가 있습니다. 베이즈 정리에서 우도는 $P(D | \theta)$ 였습니다. $\theta$는 사전믿음(사전 확률, Prior)이었고 이를 기반으로 Data의 확률이 어떻게 되느냐의 관점이었습니다.

 

Data가 IID 하다는 가정을 해야 합니다. 엄청 어렵게 다가오실 수도 있지만 사실 별거 아닙니다. 우도를 돌면서 개를 볼 때 첫 번째 개를 봤어도 두 번째로 개를 볼 확률이 변하지 않는다는 겁니다.
(사실은 변할 수도 있는 거죠? 개를 이미 봤으니까 두 번째로 볼 때는 처음 본 개를 제외하고 계산할 수 있는 가정을 할 수 있는 거니까요)

이렇게 가정해야 이항분포 식이 나옵니다. 이항분포를 배울 때 각 사건이 독립적이다라는 가정을 했던 거 기억하시는 분들도 있을 겁니다. 동전 던지기로 생각해 보면, 바로 직전에 동전이 앞면이 나왔다고 다음에 앞면이 나올 확률이 변하는 게 아니라는 뜻입니다.

Likelihood 수식

최종적으로 식은 다음과 같이 표현됩니다

$$ L(\theta) = P(D ; \theta) = \binom {10}{7}\theta^7(1-\theta)^3 $$

 

그럼 $L(\theta)$를 최대로 하는 $\theta$는 어떻게 구할까요? 최댓값, 최솟값을 구하려면 미분이라는 좋은 방법이 있습니다. 그런데 위 식을 보니까, 미분이 너무 복잡해 보입니다. $\theta^{10}$ 항이 나오는 게 미분하기 싫어지는 기분이 확 듭니다.(미분이 불가능하다는 뜻이 아닙니다.)

 

우리는 이럴 때 Log를 사용할 수 있습니다.

Log의 도입

왜 로그를 도입해도 될까요? 위 강의 9분 44초부터 자세히 설명했으니 원리가 궁금하신 분들은 강의를 보시는 게 좋습니다.

 

간단히 말하면, 로그를 취해도 $0\le\theta\le1$에서 log를 취하기 전 $L(\theta)$와 비슷한 형태를 유지하기 때문입니다.  즉, 같은 $\theta$에서 최댓값을 갖는다는 겁니다. 또한, 로그를 사용하면 곱셈을 덧셈으로 바꿀 수 있습니다. 로그를 취한 우도를 log Likelihood라고 하고, 이를  $l(\theta)$로 정의합니다.

$$ l(\theta) = \log L(\theta) = \log \theta^7 (1-\theta)^3 $$

 

위와 같이 됩니다. 위 식을 보니까 훨씬 미분하기 수월하다는 게 느껴집니다.

결론

위 식을 미분해서 $theta$값을 구하면 $\frac {7}{10}$이 나옵니다. 이로써, 우리의 직관대로 개를 볼 확률이 $\frac {7}{10}$일 때 우리의 Likelihood 함수가 최댓값을 갖는 것을 확인할 수 있었습니다.

세부풀이와 원리가 궁금하신 분은 강의를 시청해 주세요 ^^. 강의 안 봐도 되는 분들을 위해서 우리 예제의 Likelihood와 Log Likelyhood 함수의 그래프를 첨부합니다.

Likelihood 함수
log Likelihood 함수

 

​지난시간 정리

우리는 빨간선을 찾기 위해 사용한 MSE가 합리적이였는가를 공부하고 있습니다. 이를위해 MLE(Maximum Likelihood Estimation)를 공부해야 합니다. 

 

MLE를 본격적으로 공부하기 전에 베이즈 정리를 살펴 봤습니다. 베이즈 정리에서도 우도(Likelihood)가 나왔습니다.  

베이즈 정리와 우도

베이즈 정리에서의 우도는 왜 사용했죠? 기억하시나요?

우리의 사전믿음(사전 확률, Prior)을 업데이트하기 위해 사용했습니다. 베이즈 정리에서의 우도는 주어진 $\theta$ 값에 따라 나오는 데이터의 확률을 의미하며, 이는 우리의 사전 믿음을 새로운 데이터에 기반해 갱신하는데 사용됩니다. .

 

15강에서 학습한 관점으로 설명하겠습니다. 베이즈 정리는 베이지안 관점을 반영하며, 이는 확률을 사전믿음의 업데이트 과정으로 보는 시각입니다. 반면, MLE는 빈도주의자 관점에서 접근합니다. 빈도주의는 관찰된 데이터를 기반으로 확률을 추정하는 방법으로, MLE는 이 관점에서 매우 중요한 도구입니다.

MLE에서의 우도 

MLE에서 우도는 사전믿음과는 다르게 다루어집니다. MLE는 관찰된 데이터를 기반으로 그 데이터를 가장 잘 설명할 수 있는 파라미터를 추정하는 방법입니다. 예를 들어, MLE는 "우도가 가장 높은 파라미터가 무엇인가?"라는 질문을 통해 우리가 관찰한 데이터를 가장 있음직하게 만드는 파라미터를 찾습니다. 따라서, "가능도"라는 표현이 우도보다 더 적절할 수 있습니다. 혹은 그냥 Likelihood라고 생각해도 무방합니다. 저는  "있음직한 일"이라는 표현이 더 직관적이고 마음에 듭니다. 

 

Likelihood는 사실 직관적으로 이해하기 너무 쉽습니다. 예제로 보겠습니다. 

 

 

  • 제주도 옆 우도에서의 관찰: 우도에서 개를 7번, 고양이를 3번 관찰했다고 가정합시다. 그렇다면, 개를 볼 확률이 얼마일 때 이 사건이 가장 있음직했을까요?
  • 동전 던지기: 동전을 10번 던져서 앞면이 7번, 뒷면이 3번 나왔다고 가정합시다. 앞면이 나올 확률이 얼마일 때 이 사건이 가장 있음직했을까요?

 

두 문제에 대한 답은 $\frac{7}{10}$ 입니다. 직관적으로도 이해할 수 있지만, 수학적으로도 이를 확인해 볼 수 있습니다. 그 전에 순열(Permutation)과 조합(Combination) 개념을 다시 살펴봅시다.

강의보러가기 : https://www.youtube.com/watch?v=JJkb1QdZy0s

로또확률

로또 다들 하시죠?

로또는 45개 숫자 중 6개를 맞추는 겁니다. 특별히 설명안해도 다들 아시리라 생각됩니다. 그럼 로또 확률은 어떻게 될까요? 경우의 수가 $_{45}C_6$ 이고 아래와 같이 계산합니다. 

$$_{45}C_6=\frac{^{45}P_6}{6!}=\frac{45!}{6!\left(45-6\right)!} = 8,145,060 $$

 

약 8백만분의 1입니다. 왜 당첨이 안되는지 알겠죠? 저는 100명 이상 참가하는 행사에서 행운권 당첨된 적도 한 번도 없습니다.

 

로또에는 두가지 특성이 있습니다.

  1. 비복원 추출
  2. 순서를 고려하지 않음.

비복원 추출은45개 번호 중에 6개를 뽑는데 하나뽑고 다음 수를 뽑을 때 이 전에 뽑았던 수를 다시 넣지 않는다는 겁니다. 예를들어 처음에 1을 뽑았으면 두 번째에는 2~45 중의 숫자를 뽑느다는 겁니다.

 

순서를 고려하지 않는다는건 추첨할때 1,2,3,4,5,6 의 순서로 뽑던 6,5,4,3,2,1의 순서로 뽑던 내가 선택한 번호가 1,2,3,4,5,6 이면 당첨이라는 거죠. 만약 순서까지 맞춰야 한다면 Permutaion의 경우의 수가 되서 더 당첨이 어려워지는 겁니다.

 

위의 설명이 잘 이해 안가시는 분은 강의를 꼭 봐주세요. 강의에서 Easy 로또로 예를들어 더 쉽게 직관적으로 설명했습니다.

이항분포

곧 확률분포가 뭔지 설명할 예정입니다. 그 전에 이해가 쉬운 이항분포를 조금 공부하고 가겠습니다. 이항분포는 동전던지기라고 생각하면 좋습니다. 사실 성공과 실패로 나뉘는 사건을 다루기 좋은 분포입니다. 이 전에 우리는 2개를 했었죠?

  1. 개를 볼 확률
  2. 동전의 앞면이 나올 확률

첫 번째는 개를 보는 것을 성공으로 보고 성공확률 $p$라고 표현할 수 있고요, 두 번째는 동전의 앞면이 나온 결과를 성공으로 보고 똑같이 $p$라고 표현할 수 있습니다. 그럼 10번 중에 7번 개를 봤을 확률과 동전을 10번 던졌는데 7번 앞면이 나올 확률을 아래와 같이 표현할 수 있습니다.

$$ P( x = 7 ) = \binom{10}{7} p^7 (1-p)^3 $$

 

총 시행회수 10번/성공확률 7번을 일반화 시켜서 n, k라고 하면 아래와 같이 됩니다.

$$ P( x = k ) = \binom{n}{k} p^k (1-p)^{n-k} $$

많이 본 식이죠? 네 맞습니다. "있음직한 일"에서 본 식입니다.

 

이항분포 조금 더 말씀드리면 위 식은 $X ~ B(n,p)$를 따른다고 합니다. 그리고 평균과 분산은 아래와 같이 됩니다.

$$E(X) = np, V(X) = npq (q = 1- p)$$

 

이 부분 증명은 나중에 필요할 때 하겠습니다. 지금은 그냥 직관적으로 보겠습니다. 동전의 앞면의 나올 확률이 $\frac{7}{10}$일때 동전을 10번 던지면 몇번 성공할까요? 평균적으로 말이죠. 네 7번 성공하겠죠? 그래서 $np = 10 * 0.7 = 7$ 이렇게 되는 겁니다. 그 다음에 7번이 아니라면 몇 번 정도 성공이 나올까요? 5번에서 9번 정도로 가장 많이 나올겁니다. 그래서 분산은 $npq = 10*0.7*0.3 = 2.1$ 7번에서 -2.1, +2.1(4.9 ~ 9.1)사이 정도로 퍼진다는 겁니다.

 

잘 이해 안가시는 분은 강의 참고해주세요~

안녕하세요?

지난시간 정리

15강의 질문이 뭐였죠?

 

"우리가 빨간선을 찾는데 사용한 MSE가 과연 합리적인가?"

 

우리는 위 질문에 대해 "맞아, MSE는 합리적이야." 라는 결론을 내리기 위한 공부를 하고 있습니다.

(빨간선 찾기: 평균제곱오차로 우리의 선형회귀 모델을 수립하는 것)

 

만약 다른 방법으로도 우리의 모델을 찾는 식이 MSE와 같다면 우리는 MSE가 합리적이라는 확신을 가질 수 있을 것 입니다. 그래서 확률적 가정과 정규분포를 사용해서 합리적인 빨간선을 찾는 과정을 공부할 겁니다.

 

확률적 가정으로 우리의 모델을 찾기위해서 우리는 최대우도추정법(MLE, Maximu Likelihood Estimation)을 공부해야 합니다. 바로 MLE를 설명하고 싶었지만 많은 분들이 MLE를 어려워 하는 것을 봤고 저 역시도 이해하기 어려웠기에 아주 근본적인 원리부터 설명하는 것이 바람직하다고 판단하고 철학적 배경이 되는 존재론/인식론과 빈도주의자/베이지안 관점을 설명했습니다.

 

하지만, 철학에 관한 부분은 저도 잘 모르고 제 생각을 말씀드려서 틀린 내용을 말했을 가능성이 높습니다. 참고만 해주시기 바랍니다. 그리고 혹시, 잘 아시는 분이 계시면 가르쳐 주세요..

강의보러가기 : https://www.youtube.com/watch?v=hZqJZnzOSXk

 

베이즈 정리

 

아직 베이즈 정리를 본격적으로 공부하는 단계는 아닙니다. 베이즈 정리는 MLE를 다 공부한 후에 Logistic Regresssion을 공부하면서 다시 자세히 공부할 예정입니다.

 

그래도 지금 베이즈 정리를 언급하는 이유는 베이즈 정리에도 "Likelihood(우도)"라는 놈이 있기 때문입니다. 저는 최대우도추정법에서 우도를 공부하고 어느정도 이해했다고 생각한 후에 베이즈 정리에서 다시 우도를 봤을때 멘붕이였습니다. 그래서 저 같은 분이 없도록 베이즈 정리에서의 우도를 잠깐 보겠습니다. 

 

$$ P(\theta|D) = \frac{P(D|\theta)P(\theta)}{P(D)} $$

 

위 베이즈 정리 식을 자세히 알아보겠습니다.

  1. $P(\theta)$: Prior, 사전확률입니다.
  2. $P(D|\theta)$: likelihood, 우도입니다.
  3. $P(\theta|D)$: Posterior, 사후확률입니다.
  4. $P(D)$: Marginal Distribution of D, D의 주변분포입니다.

지난 강의에서 베이지안은 확률에 대해 사전 믿음(Prior)을 가지고 새로운 결과(Likelihood)를 받아들여 사전믿음을 업데이트(Posterior) 한다고 말씀드렸습니다. 동전던지기의 예를들면 동전이 Fair하다고 생각하고 $\theta$를 0.5라고 가정할 수 있습니다. 또는 동전의 모양을 분석하거나 주변에 그 동전에 대해 아는 사람들한테 물어봐서 $\theta$를 0.7로 믿을 수도 있습니다.

 

그리고 동전을 던지고 나온 결과로 $\theta$를 업데이트 해 나가는 겁니다.
(베이지안은 믿음을 업데이트 하는 반면, 빈도주의자는 무한의 시행결과로 확률을 정합니다. !!)

 

위 강의 내용에서 $P(\theta)$를 $\theta$의 확률이라고 했는데 이 부분은 틀린 얘기입니다. 더 정확하게 말하면 $P(\theta)$는 확률분포입니다. 그래서 정확히 쓰면, 아래와 같이 됩니다.

 

$$ P(\theta) = \begin{cases} 1 & \text{if } 0 \leq \theta \leq 1 \\
0 & \text{otherwise}
\end{cases} $$

 

$\theta$가 0에서 1의 범위일때 1이라는 겁니다. 연속확률분포이고 균등분포입니다. $\theta$는 확률값이니까 0에서 1사이 값을 가진다는 뜻이죠. 아직 확률분포를 다루지 않았습니다. 모르셔도 됩니다. (강의에서 $\beta$ 분포도 언급했고, 주변분포도 언급했지만 지금은 모르셔도 됩니다.)

 

지금은 아래 예제에 대해서 통찰력만 가지시면 됩니다.

 

ex> 동전의 앞면이 나올 확률 Prior를 0.5로 설정한 후에 동전을 10번 던진 결과가 앞면 7번 뒷면이 3번 나옴.

 

위 예제에서 사전믿음 Prior에 기반한 동전던지기 결과가 우도(likelihood)라는 것이고 아래와 같이 됩니다.

 

$$ \binom{10}{7} \theta^7 (1-\theta)^3 = \binom{10}{7} (1/2)^7 (1/2)^3 $$

 

우도의 $\theta$에 우리의 사전믿음 1/2를 대입했습니다. 그리고 이 우도는 우리의 사전믿음 Prior를 업데이트 하기 위해서 사용됩니다. 앞면이 7번 나왔으니까, 우리의 사전믿음 $\theta$는 어떻게 될까요? 네 0.7에 가까워 진다고 생각할 수 있는 겁니다.

 

우선 베이즈 정리는 여기까지만 이해하는 걸로 하겠습니다.

최대우도추정법(MLE)

베이즈정리에서 우도는? 기억하시나요?

네 맞습니다. 사전믿음을 업데이트하기 위해 사용되었습니다. 그래서 우리는 베이즈 정리에 있는 우도(likelihood)에 Prior $\theta = 0.5$를 대입해서 우도를 구하고 사전믿음을 업데이트 했습니다.

 

최대우도추정법서 $\theta$는 미지수입니다. 그래서 아래와 같이 식을 씁니다.

 

$$ L(\theta) = \binom{10}{7} \theta^7 (1-\theta)^3 $$

 

베이즈 정리에서와의 차이가 눈에 보이시나요? 우선 $L(\theta)$가 있습니다. $\theta$에 대한 함수라는 뜻입니다. 그리고 과연 $\theta$ 가 얼마일때 $L(\theta)$가 최대가 될 것이냐라는 것이죠.

 

눈치 빠르신분은 $L(\theta)$를 미분하고 미분값이 0 일때 최대값이라는 것을 예측하실 수 있을겁니다.

맞습니다. 그런데 조금 더 Skill을 씁니다. 계산을 쉽게하기 위한 방법으로 로그를 사용합니다.

 

직접 확인하는 계산은 다음 강에 하겠습니다.


안녕하세요?

선형회귀를 공부하고 있는 이유

우리는 지금 선형회귀를 공부하고 있습니다. 그런데 왜 선형회귀를 공부해야 할까요?

공부하면서 중간중간에 "내가 왜 이걸 공부하고 있지?"라는 질문을 스스로에게 던지는 것이 중요합니다. 이는 공부에 대한 동기 부여와 내용을 깊이 이해하는 데 도움이 됩니다. 제가 자주 사용하는 공부 방법이기도 합니다.

 

Syllabus가 있는 강의나 책으로 공부할 경우, 반드시 처음에 목차와 세부 목차를 보면서 전체 내용을 예측하고 세부 내용을 공부하는 것이 좋습니다. 세부 내용을 공부할 때는 앞뒤 연결 관계와 이 내용이 전체에서 어떤 위치에 있는지를 이해하는 것이 중요합니다. 그리고 한 단원이 끝날 때마다 그 내용을 머릿속으로 정리해 보세요.

 

시험 전날 벼락치기를 할 때도 이런 식으로 공부하는 것이 유익하며, 시간이 허락한다면 각 단원의 내용을 노트로 정리하는 것도 좋은 방법입니다. 중요한 것은 노트를 잘 필기하는 것이 아니라, 머릿속에서 내용이 잘 정리되도록 하는 것입니다. 단원이 끝난 후에 노트를 보지 않고 내용을 재구성해보는 것이 중요합니다. 가능하다면, 여러분도 직접 강의를 만들어보세요. 자신이 이해한 내용을 다른 사람에게 설명할 수 있을 때, 진정으로 그 내용을 이해한 것입니다.

 

기술사 시험이나 대학원 입시와 같이 방대한 양을 준비할 때는 반복 학습이 중요합니다. 반복 학습을 통해 점차 노트의 내용을 줄여가면서, 제목만 봐도 내용이 머릿속에서 자연스럽게 떠오를 수 있도록 훈련하는 것이 이상적입니다.

선형회귀와 머신러닝

선형회귀는 머신러닝에서 예측에 사용하는 가장 기본적인 알고리즘 중 하나입니다. 우리는 면적, 방의 수 등의 특성이 집값에 선형적으로 영향을 미치는 예를 통해 이 알고리즘을 학습했습니다. 이 과정에서 우리의 데이터에 대해 빨간 선을 그렸고(즉, 모델을 수립했고), 이 모델을 통해 새로운 데이터를 예측할 수 있었습니다.

 

이 빨간선을 그리기 위해 사용한 것은 평균 제곱 오차(MSE, Mean Squared Error)입니다.

 

MSE는 다음과 같이 정의됩니다:

$$ L(w) = \frac {1}{N}\sum_{i=1}^N (w^Tx_{i} - y_{i})^{2} $$

 

이때 우리가 고민해 볼 수 있는 질문은, "과연 MSE를 최소화하는 방식으로 빨간 선을 그리는 것이 합리적인가?" 하는 것입니다. 만약 다른 방법으로도 MSE를 통해 우리의 빨간선을 찾는 것이 옳다는 것을 확인할 수 있다면, 우리는 더욱 확신을 가지고 이 방법을 사용할 수 있을 것입니다.

 

따라서 이번 시간에는 확률적 가정을 통해 MSE로부터 빨간선을 찾는 것이 맞다는 것을 증명하고자 합니다. 이를 위해 먼저 확률 이론을 공부하겠습니다.

 

제가 설명하는 부분은 제가 이해한 내용이므로, 완벽하지 않을 수 있습니다. 하지만 제 설명이 여러분의 이해에 도움이 되기를 바랍니다. 또한, 여러분이 더 잘 알고 있는 내용이 있다면 저에게도 가르쳐주세요.

강의보고오기: https://www.youtube.com/watch?v=pzf4nqN_yCI

강의 동영상

확률 이론의 철학적 배경: 존재론 vs 인식론

 

갑자기 존재론과 인식론이 나옵니다. 저도 처음에 MA Book을 보는데 당황스러웠습니다.

출처: MA book 4th edition, page 255

 

위 표에서 보면 확률이론을 두 가지 관점에서 보고 있습니다. 존재론적 커밋먼트와 인식론적 커밋먼트. 그래서 우리는 먼저 존재론과 인식론에 대해서 이해할 필요가 있습니다.

 

존재론(Ontology): 존재론은 우리가 무언가가 실제로 존재하는지에 대한 질문을 던집니다. 확률 이론에서 존재론적 관점은 특정 사건이 객관적으로 존재하고, 그 사건의 사실 여부에 관심을 둡니다.

 

인식론(Epistemology): 인식론은 우리가 무엇을 어떻게 아는지에 대한 질문을 다룹니다. 확률 이론에서 인식론적 관점은 어떤 사실에 대한 믿음의 정도를 다루며, 이 믿음을 0과 1 사이의 숫자(0, 1 포함)로 표현합니다.

 

사실 철학적 내용은 저도 정말 잘 모르는 내용이니 아래 유튜브를 참고해 주시기 바랍니다.

 

Ontology/Epistemology: https://study.com/academy/lesson/ontology-vs-epistemology-differences-examples.html
(유료입니다. 여유되시는 분들은 결제해서 보세요)

 

영문 유튜브:

https://www.youtube.com/watch?v=F2mHeudPGNI

 

https://www.youtube.com/watch?v=hkcqGU7l_zU

 

 

한글 유튜브:
https://www.youtube.com/watch?v=YmO_6Fskt_w

 

https://www.youtube.com/watch?v=qxHvg6y9sZM

 

 

확률의 이해

확률 이론은 존재론적 관점에서는 사실에 초점을 맞추고, 인식론적 관점에서는 그 사실에 대한 믿음의 정도를 0과 1 사이의 숫자로 표현합니다. 예를 들어, 어떤 사건이 일어날 가능성을 70%로 표현한다면, 이는 그 사건에 대한 믿음의 정도를 나타내는 것입니다..

 

퍼지 논리는 존재론적 관점에서 사실을 받아들일 때 0과 1 사이의 값으로 표현합니다. 그러나 퍼지 논리는 더 유연하게 사실을 다룹니다. 더 자세한 내용은 아래의 유튜브 링크를 참고해 주시기 바랍니다.

 

Fuzzy의 이해: https://www.youtube.com/watch?v=CBTEVFphv-E

 

Fuzzy vs Probability: https://www.youtube.com/watch?v=RXThpkgba7w&list=PLO-6jspot8AL5wrkCNUXAJ8_0qHli6Zat&index=1

 

 

제 강의에서는 명제논리, 술어논리 등에서도 간략하게 설명합니다. 그리고 확률과 Fuzzy의 차이점을 설명하기 위해, 켄타우로스의 예를 들었습니다.

 

각 Language에서 차이점을 보면, 아래와 같이 표현할 수 있습니다.

 

확률: 켄타우로스는 사람이야. 사람일 확률은 60%야
Fuzzy: 켄타우로스는 60% 사람이고, 40%는 말이야. 켄타우로스는 사람에 가까워.

빈도주의(Frequentist) vs 베이지안(Bayesian)

이제 확률에 대한 두 가지 관점을 보겠습니다. 빈도주의와 베이지안입니다.

 

빈도주의(Frequentist):

빈도주의자는 확률을 객관적인 사실로 봅니다. 예를 들어, 동전의 앞면이 나올 확률을 계산할 때, 수많은 동전 던지기 실험을 통해 이 확률을 계산합니다. 즉, 실험 결과에 기반한 객관적 확률을 중요시합니다. 한 번 동전을 던진 결과에 대해서는 확률을 말할 수 없다고 보는 것이 빈도주의자의 입장입니다.
(빈도주의자는 존재론적 관점과 많이 닮아있습니다. 빈도주의자는 사실 자체에 관심이 있습니다. 빈도주의는 동전의 확률을 말할 때 수없이 많은 횟수를 던졌을 때 나온 결과에 따라 확률을 말합니다. 주관적 믿음이 아니라 사실 자체로 받아들인다고 할 수 있습니다. 강의에서 예시처럼 동전을 던진 다음에 확률을 말하라고 하면, 이미 던진 결과에 대한 확률은 없다고 합니다.)

 

베이지안(Bayesian):

베이지안 관점에서는 확률을 주관적인 믿음으로 봅니다. 동전을 던지기 전에도, 던진 후에도 확률을 말할 수 있습니다. 또한, 새로운 증거를 얻을 때마다 기존의 믿음(사전 확률)을 업데이트하여 확률을 재계산합니다.
(베이지안은 인식론적 관점처럼 확률을 믿음으로 봅니다. 따라서 동전을 던지기 전과 던진 후에도 확률을 말할 수 있습니다. 그리고 결과를 본 후에 사전믿음을 업데이트합니다.)

베이즈 정리

 

베이지안관점

베이즈 정리는 베이지안 확률론에서 중요한 역할을 하는 수학적 정리로, 관측된 데이터를 바탕으로 초기 가정이나 믿음을 업데이트하는 방법을 설명합니다. 이 정리는 새로운 증거나 데이터를 반영하여 사전 확률(사전 믿음)을 사후 확률(사후 믿음)로 갱신하는 과정에서 사용됩니다.

 

베이즈 정리 수식의 의미

그림 왼쪽의 식 $P(A|B) = \frac {P(B|A) P(A)}{P(B)}$는 조건부 확률의 기본 성질을 나타내며, 사건 $A$가 주어졌을 때 사건 $B$가 발생할 확률을 계산합니다. 하지만 이것만으로는 베이지안 관점에서의 베이즈 정리를 완전히 설명하지는 않습니다.

 

베이즈 정리와 베이지안 접근

베이즈 정리가 진정으로 의미를 갖기 위해서는 베이지안 관점이 필요합니다. 베이지안 접근법에서는 우리의 사전 믿음 $\theta$를 설정한 후, 데이터를 관찰하고 이를 바탕으로 우리의 믿음을 업데이트합니다.

오른 쪽 아래식으로 설명하면, 어떤 가설 $H$를 세우고 증거 $E$를 관찰한 후, 우리는 베이즈 정리를 통해 이 가설이 맞을 확률을 갱신할 수 있습니다. 위 그림에서 오른쪽의 식이죠.

 

여기서:
$P(H|E)$: 증거 $E$가 주어졌을 때 가설 $H$가 참일 확률 (사후 확률)
$P(E|H)$: 가설 $H$가 참일 때 증거 $E$가 나타날 확률
$P(H)$: 가설 $H$가 참일 사전 확률 (사전 믿음)
$P(E)$: 증거 $E$가 나타날 전체 확률

 

이렇게 베이즈 정리는 기존의 믿음($P(H)$)을 새로운 증거($E$)에 따라 어떻게 업데이트해야 하는지를 수학적으로 설명합니다.

최대우도추정법(MLE, Maximum Likelihood Estimation)

위의 모든 내용은 앞으로 설명할 MLE를 좀 더 확실히 이해하기 위한 내용들입니다. MLE를 왜 하냐고요? MSE가 과연 합리적인지 알아보기 위해 확률적 가정으로도 MSE를 통해 빨간 선을 구하는 것이 맞나 본다고 했습니다. 다음 시간부터 MLE를 공부하도록 하겠습니다.

그라디언트 디센트까지 드디어 정리했습니다. 이번 강은 ITPE에서 제공해주신 서브노트를 정리하는 시간입니다.

초반에도 언급했지만 저는 기술사를 공부할때 AI관련 서브노트 보기가 참 힘들었습니다. 읽어도 이해가 안가서...

지금은 그때보다는 괜찮은 것 같습니다. 앞의 내용을 읽고 강의를 들으신 모든 분들이 서브노트 보시는게 편해졌기를 바랍니다.

 

강의보기: https://www.youtube.com/watch?v=w8q1LnX3yRQ

 

강의수정내용:

강의 내용 6분 48초에 목적함수가 Convex해야 Gradient Descent가 의미있다고 했는데 틀린 설명입니다. Non Convex해도 우리는 GD를 사용합니다. 우선 GD를 사용하고 Local Minimum을 벗어나거나 Global Minimum을 찾는 알고리즘을 사용합니다. 

 

그래서,

 

"Convex 해야 GD를 수행했을떄 Global Minumum이 보장된다. Deep Learning에서 처럼 Convex하지 않다면, 우리는 Global Minimum을 구하기 위해 1. 초기화와 관련된 방법과 2. GD 알고리즘(수학식)에 변형을 주는 기법을 사용한다."

 

6분 48초 내용을 위와 같이 바꿔야 합니다.

 

감사합니다. 

지난 시간에 최적화를 공부했습니다. 왜 최적화를 공부했을까요? 최적화를 이해하면 그라디언트 디센트가 목적함수(손실함수)를 최소화하는 방향으로 모델 파라미터 $w$를 조정하는 과정을 이해할 수 있습니다.

(모델 파라미터: Weight, Bias / 하이퍼 파라미터: Learning Rate)

 

최적화를 판단해서 그라디언트 디센트를 할지 말지 결정할 수도 있습니다. 하지만, 최적화 판단을 GD전에 하는 것은 비효율적이기 때문에 실제로는 사용하지 않는다고 설명드렸습니다. 

 

우리가 아직까지 우리가 배운 선형회귀 모델은 아주 단순해서 Convex를 확인하는 알고리즘 필요 없습니다. 어차피 Convex한 모델만 합니다.  $L(w)$는 $w$에 대한 함수인데, 우리가 현재까지 배운 $L(w)$는 선형회귀의 평균제곱합(MSE)이였습니다. 그리고 이 MSE는 겨우 $w$에 대한 2차 함수이고 계수도 $x^2$으로 다 양수니까 Convex 하다는 겁니다. 최고차항이 2차이고 2차항의 계수가 양수니까요.

 

그래도 지금 최적화에 대한 기본적인 이해를 가져가면 딥러닝을 공부할 때 Convex 하지 않은 목적함수에서 Global Minimum을 어떻게 찾는지에 대해서 더 쉽게 이해할 수 있다고 말씀드렸습니다.

 

이번 강에서는 그라디언트 디센트에 대해서 본격적으로 알아보겠습니다. 알고리즘 기본원리와 종류에 대해 가봅시다.~

강의보기: https://www.youtube.com/watch?v=tDcHML8FW1M

 

그라디언트 디센트 알고리즘

 

기본 알고리즘

우리의 목적함수 MSE는 아래와 같습니다. 

$$ L(w) = \frac {1}{N}\sum_{i=1}^{N}(w^Tx_i - y_i)^2 $$

위 $L(w)$를 $w$에 대해 미분하면 아래와 같이 됩니다. 

$$ \nabla L(w) = \frac {2}{N}\sum_{i=1}^{N}(w^Tx_i - y_i) x_i $$

주로 $x$를 미분해 와서 머릿속이 조금 복잡해지지만, 충분히 하실 수 있습니다.

Gradient Descent Algorithm

 

$x$가 아니라 $w$에 대한 거라는 것만 익숙해지신다면, 위 그림 이해는 쉽습니다. 2차 함수만 이해하면 됩니다. 제 경험상 많은 분들이 그라디언트 디센트 부분은 금방 이해하시더라고요.

무작위 시작점 $w_0$가 그림의 그래프에서 최소점보다 오른쪽에 있으면 $w$에 대한 미분값은 양수가 되어 $w_0$부터 시작하여 점점 작아집니다. 이를 $w$에 대한 미분 값 $\nabla L(w)$가 $\epsilon$ 보다 작거나 같을 때까지 반복한다는 거죠.

 

$w_0$가 그림의 그래프에서 최소점보다 왼쪽에 있을 때도 현재 알고리즘이 맞는지 각자 생각해 보도록 합시다. 

 

Learning Rate(LR) $\gamma$

우리가 처음 배우는 Hyper Parameter입니다. 다른 종류의 파라미터가 하나 더 있었습니다. 네 맞습니다. 모델 파라미터였습니다. $w$와 $b$, Weight와 Bias였습니다. 우리가 모델을 만들기 위해서 구해야 하는 값이죠. Hyper Parameter는 모델을 만들 수 있도록 조정할 수 있는 값들입니다. 하이퍼 파라미터를 구하는 방법이 뭘까요?

별다른 방법이 없습니다. 그냥 성능이 잘 나온다 싶은 놈을 고르면 됩니다. 여러 개 넣어보거나 경험적 지식으로 후보군을 선정해서 돌려본 다음에 성능이 잘 나온 걸로 고르면 됩니다. 하이퍼 파라미터를 선택하는 방법에 대해서는 Youtube 강의 14강에서 다뤘습니다. 궁금하신 분들은 Youtube 강의 14강 2분 9초부터 3분까지 들으시면 됩니다.

https://www.youtube.com/watch?v=w8q1LnX3yRQ

 

아무튼 그라디언트 디센트에서 LR이 너무 크면 $w$ 값이 최소점으로 수렴하지 못하고 최소점의 왼쪽, 오른쪽으로 진동하며 움직일 수 있고, 너무 작으면 수렴하는데 너무 많은 시간이 걸릴 수 있습니다.

여기까지 대부분 학습하는 분들이 잘 이해해서 자세한 설명은 생략하겠습니다. 부족하다 느껴지시는 분들은 유트브 강의를 보시면 좀 더 도움이 되실 겁니다.

그라디언트 디센트 알고리즘의 종류

Batch, Stochastics, Mini Batch 3가지가 있습니다.

 

Batch GD

위 그림에서 아래 부분입니다. 가장 기본적인 부분이죠. 잘 봐야 할 부분은 아래와 같습니다.

$$ L(w) = \frac {2}{N}\sum_{i=1}^{N}(w^Tx_i - y_i) x_i $$

$\sum$가 있으니, 모든 데이터에 대해서 다 더해준 값의 평균을 미분해 준다는 겁니다. 모든 데이터에 대해서 하니까 이 전에 배운 Direct Solution 보다는 속도면에서 괜찮을지 몰라도 맘에는 안 듭니다. 더 빠르게 할 수 있는 방법이 있을 거 같습니다.

 

Stochastics GD

Stochastics는 주식하시는 분들은 대부분 들어보셨을 것 같습니다. 확률적이라는 뜻입니다. 위 Stochasitcs 식에서 보면 Batch와 결정적 차이가 있습니다. 네. 맞습니다. $\sum$이 없습니다. 데이터 하나에 대해 바로 $w$를 업데이트합니다. 그리고 정해진 값만큼 반복하거나 $w$값에 업데이트가 없을 때까지 반복합니다.

따라서, 운이 좋으면 BGD에 비해서 빠르게 괜찮은 Global Minimum으로 수렴하지만, 운이 없으면 Local Minimum에 빠질 수 있습니다. 따라서 데이터를 적용할 때마다 잘 섞어줄 필요가 있습니다.

무슨 소리냐고요? 이해가 잘 안 갈 때 가장 좋은 방법은 극단적인 예시를 보는 겁니다.

위 SGD 그림에서 그래프를 봅시다. 파란색 동그라미가 데이터 포인트라고 하고 epoch가 4라고 가정하겠습니다. 그리고 빨간 선은 BGD로 구한 우리의 빨간 선입니다. 만약 우리가 SGD를 하면서 4개의 Point를 분홍색으로 고른다면, 많은 데이터 포인트에 대해서 다 고려할 필요 없이 4개의 포인트 만으로도 빨간 선과 거의 유사한 선을 구할 것입니다. 아주 빠르게 수렴할 수 있다는 겁니다.

하지만 만약 4개의 포인트를 빨간색으로 고른다면 초록색 선으로 수렴해 버릴 겁니다. Local Minimum에 빠지는 거죠. 그래서 데이터를 잘 섞어줄 필요가 있는 겁니다. 이해가 가셨나요? Youtube를 보신다면 더 잘 이해하실 수 있을 겁니다.

 

Mini Batch GD

예상하셨겠지만 BGD와 SGD의 절충안입니다. BGD는 한 번에 전체 데이터를 고려해서 하고, SGD는 한번에 하나의 데이터르 고려해서 합니다. 절충안인 Mini Batch는 적절한 데이터 수로 그룹핑해서 돌립니다. 총 데이터 수가 100개 일 때 10개 데이터 포인트를 골라서 정해진 epoch만큼 진행한다는 겁니다.

Batch Size를 어떻게 정할까요? 네, 이것도 하이퍼 파라미터이고 별다른 방법이 업습니다. 데이터마다 다를 수 있기 때문입니다.

세 개 GD 알고리즘 성능

 

세개 알고리즘에 대한 아주 유명한 그림입니다. 위의 수식과 설명을 이해하셨다면 이 그림의 의미를 분명히 이해하셨을 겁니다. 뭔가 답답하신 분들은 Youtube 강의를 보시면 될 것 같습니다. 저는 개인적으로 혼자 생각해 보시는 것을 강력히 추천드립니다.

Over Fitting

데이터가 너무 부족하거나 내재된 편향이 있을 때 오버피팅이 발생할 수 있습니다. 데이터가 적을 때 우리의 회귀선이 모든 데이터 포인트를 지나가게 한다면 어떨까요?

 

현재 주어진 데이터(훈련데이터)는 완벽하게 설명하고 있다고 볼 수 있습니다. 그런데 새로운 데이터는요(테스트 데이터, 실제데이터)? 선 위에 없을 확률이 높아집니다. 그런데 현재 데이터를 모두 선위에 두려고 복잡한 다항식을 만들었다면 계속해서 다르게 찍히는 새로운 데이터의 경향성과 관계가 없을 확률도 높아지는 겁니다.

오버피팅은 다시 다룰 예정이니 이 정도만 하고 마치겠습니다.

 

감사합니다.

안녕하세요?

 

11강에서 그라디언트에 대해서 공부했습니다. ML을 공부하며 제가 처음 넘겼던 고비였습니다. 그라디언트 디센트를 공부하면서 이해는 하겠는데, 뭔가 답답한 기분이 계속 들었습니다. "그라디언트가 기울기 벡터라고 하고 원래 그라디언트는 증가하는 방향이다."라는 의미가 안 다가왔었습니다. 네 맞습니다. 그라디언트에 대해서 잘 몰랐습니다. 이번강의 보시면서 저처럼 답답한 기분이 드시는 분은 꼭 11강부터 보시기 바랍니다.

11강 보기: https://www.youtube.com/watch?v=rpZnpiAa_TI

강의보기: https://www.youtube.com/watchv=kVFyBvwrcoA&list=TLPQMjcwNzIwMjSR4y9Zt-PaQw&index=2

 

Optimization(최적화)

최적화는 머신러닝뿐만 아니라 다양한 분야에서 활용되는 이론입니다. AI 대학원에서도 따로 한 과목이 있을 정도로 내용도 많고 중요한 이론이죠.

하지만, 우리는 아직 Deep Learning을 공부하는 단계가 아니니까 아주 간단하게만 공부할 예정입니다. 그래도 딥러닝 최적화에 대한 맛보기 정도는 같이 학습할 겁니다. 지난 강에서 Jacobian과 Hessian을 간단히 소개했기 때문에 충분히 이해할 수 있습니다.

가봅시다.!!

최적화의 3 요소: Objective function, Decision Variable, Constraint

영어로 3요소를 보니까 처음 보는 거 같지만, 앞에 두 개는 이미 공부했습니다.

1. Objective Function(목적함수)

$$ \min_x f(x) $$

$f(x)$ 가 목적함수고 이걸 최소화시키는 x를 찾는다는 겁니다. 많이 보고 들은 말입니다. 우리의 목적함수는 뭐였죠? 맞습니다. MSE 또는 SSE였습니다.

$$ \min_w L(w), \quad L(w) = \frac {1}{N}\sum_{i=0}^{N}(w^Tx_i - y_i)^2 $$

위와 같이 쓸 수 있습니다.

 

2. Decision Variable(결정변수)

$$ x = \begin {bmatrix}
x_0 \\
x_1 \\
... \\
x_{N}
\end {bmatrix} $$

우리의 결정변수는 $w$ 였습니다. 우리의 회귀 선을 결정해 주는 변수인 거죠.

$$ w = \begin {bmatrix}
w_0 \\
w_1 \\
... \\
w_{N}
\end {bmatrix} $$

이 두 가지는 Direct Solution을 공부하면서 계속 봐왔습니다. 혹시 잘 모르시면 이전 강의 빨리 돌려서 보시면 금방 이해하실 수 있습니다.

 

3. Constraint(제약조건)

우리의 목적함수 MSE, Loss Function을 구할 때는 제약조건이 없었습니다. 그래서 강의에서 하나 추가해서 예를 들었습니다. $w_j \geqq 0, \forall j$ 즉, 모든 $j$에 대하여 $w_j$는 0보다 크거나 같다는 겁니다. 결괏값(종속변수) $y$ 에 대해서 모든 입력값(독립변수)$x$가 양의 관계를 갖는다고 제약조건을 줬습니다.

집값과 관계가 있는 독립변수를 면적과 방의수로 했는데 만약 전체 데이터에 대해 양의관계가 아니라면 데이터가 부족하거나 편향돼있다고 판단하고 최적화 알고리즘을 실행시킬 필요도 없다는 거죠.

Convex function

출처: https://vitalik.eth.limo/general/2020/11/08/concave.html

 

사실 다 아실 겁니다. "아래로 블록", "위로 블록". Convex를 왜 공부할까요? 그라디언트 디센트가 뭐였는지 제가 간략하게 설명했었습니다. 아무점이나 잡은 다음에 $w$에 대응하는 L(w)를 구하고 $w$를 계속 변경하면서, $\nabla L(w)$가 거의 0과 가까워지면 stop 하는 알고리즘입니다. 그럼 아무 데나 잡은 점에서 convex 한 function 이어야만 합니다. 그래야 $w$를 계속 변경하면서 대입하는 게 의미가 있는 겁니다. $w$에 대한 함수가 아래로 블록 하지 않은데 $w$를 움직여 봤자 최솟값으로 갈 수 없겠죠.

 

여기서 의문이 드셔야 됩니다. 우리가 배운 MSE는 $w$에 대한 함수이고 2차 방정식이었고, 최고차항의 계수는 $x_i^2$으로 무조건 컨벡스인데 이런 알고리즘을 배워야 돼?

 

네 맞습니다. 현재까지 배운 목적함수에 대해서 Convex를 결정하는 알고리즘을 넣는 거는 의미가 없습니다. 하지만 딥러닝에서는 얘기가 다릅니다.

딥러닝의 목적함수

 

딥러닝의 목적함수는 위 그림처럼 아주 복잡합니다. GD는 초기화 시, 아무 점이나 고르기 때문에 현재 점에서 Convex 한 지 판단할 수 있으면, Convex 하지 않은 경우 GD를 생략할 수 도 있을 겁니다.

Convex Function, Convex Set

 

Convex인지 어떻게 판단할까요? 위 그림 아래 수학식이 있습니다.

(수학식의 내용은 강의에서는 더 자세하게 설명했습니다.)

"왜 Convex 수식을 공부해야 되는 거야?" 더 나아가면, Machine Learning 수학식들을 왜 다 공부하는지도 의문입니다.

도대체 왜???????

 

수학식으로 쓸 수 있으면 알고리즘으로 만들 수 있고, 컴퓨터로 프로그래밍이 가능합니다. 컴퓨터는 계산기니 까요.

그럼 진짜 우리가 쓰는 GD알고리즘이 Convex를 판단하고 GD를 할까요?

 

다시 복잡한 딥러닝의 목적함수를 생각해 봅시다. 

 

저렇게 복잡하니 무조건 Non-Convex인데 무슨 소리인지 모르겠는데...

 

그럼 구간을 나누어서 특정 구간에서 Convex인지 판단하는 건 괜찮을 까요? 그리고 다른 $w$(즉 다른 점)를 잡아 다시 해당 구간에서 Convex여부를 판단하고 GD를 한다면 효율적일 것 같습니다. 

 

유튜브 강의에서 Non-Convex 한 4차 방정식의 경우로 생각해봅시다. 4차 방정식은 아래로 블록 2개가 있으니까 Random Initialization을 몇 번해서 Convex한 경우에 GD를 수행하고 $L(w)$가 가장 작을 때를 구하면 될 것 같습니다.  

 

진짜 이렇게 구하는 게 좋을까요? 

GD 코드 예시

 

우리가 쓰는 패키지의 GD관련 Method가 이런 방법을 사용할까요? 진짜 효율적일까 한번 생각해 봅시다. 

 

정답부터 말씀드리면 실제 GD 알고리즘에서 Convex를 판단하는 로직은 없습니다. 위 Deep Learning 목적함수 그림에서 Deep Learning 목적함수를 매우 복잡한 것처럼 표현했지만, 3차원 공간에 최대한 복잡하게 보이게 표현한 것뿐입니다. 실 데이터에서 딥러닝의 목적함수는 3차원 공간에 표현 불가능하고 훨씬 더 복잡합니다. 그 복잡한 목적함수를 구간 별로 나누어서 Convex를 판단한다는 건 전혀 실용적이지 않습니다. Convex 한 지 판단하는 계산을 추가하는 것 자체가 컴퓨터에게 추가적인 부하를 주는 겁니다.

 

그냥 그라디언트 디센트를 진행하고 Local Minimum을 피하기 위한 기법들을 사용하는 게 훨씬 효율적입니다. 또한 앞 서 말씀 뜨렸지만, 우리가 현재까지 배운 MSE는 명확하게 Convex입니다. 굳이 Convex 판단 로직을 추가하지 않아도 됩니다. 

 

Non-Convex는 Global Minimum이 보장되지 않습니다. 즉 Local Minimum에 도달할 가능성이 있다는 거죠. 하지만, Global Minimum을 찾는 방법과 Local Minimum을 피하는 방법이 있습니다. 그래서 굳이 Convex를 판단하지 않고 일단 GD를 진행하고 Global Minimum에 가는 방법을 쓰는 겁니다. 

 

대표적으로 2가지 방법이 있습니다.

 

1. 초기화와 관련된 방법과

2. 수학적으로 GD 식에 변형을 주는 방법도 있습니다.

 

1번 중에 하나는 여러 점에서 그라디언트 디센트를 하고 가장 작은 $L(w)$를 선택하는 방법입니다. 유튜브 강의에서 설명했습니다.  또한, 향후 딥러닝을 공부할할 때 여러 번 초기화 하는 것 말고도 Xavier/He 초기화를 공부할 것입니다.

 

2번에는 AdaGrad, Adam, RMSProp 등이 있습니다. 이 역시도 Deep Learning을 학습하며 공부할 예정입니다.

 

아직까지는 Shallow만 이해하셔도 됩니다. 

Gradient Descent

유트브 강의에서는 Gradient Descent에 대한 자세한 내용을 하기 전에 Gradient에 대해서 다시 복습합니다. 11강 블로그에서 말씀드렸지만, 12강에도 틀린 부분 정정합니다.

그라디언트의 방향이 그라디언트 값이 커지는 방향이라고 했는데 *함수 $f$가 커지는 방향이 더 정확합니다.

 

*함수 $f$는 $w$에 대해 미분하기 전 원래 함수 즉, MSE를 의미합니다.

 

유트브 강의에서는 MSE를 미분한 식으로 GD를 한다는 걸 설명하고, Direct Soultion과 비교하면서 끝을 냈습니다.

마찬가지로 GD에 대한 포스팅은 다음 강으로 넘기겠습니다. ^^

+ Recent posts