안녕하세요. 

이번 글에서는 이미지(data), 차원(dimension), 그리고 분포(distribution)간의 관계에 대해서 설명해보도록 하겠습니다.

 

앞으로 AutoEncoder, VAE, GAN이해하기 위한 가장 기본적인 background이니 만큼 잘 설명해보도록 하겠습니다.

 

 

 

1. 이미지와 차원(dimension) 간의 관계

먼저, 한 가지 질문을 던지면서 글을 시작하도록 하겠습니다.

 

"색(color)을 표현(representation)하기 위해서는 몇 차원이 필요한가요?"

 

답부터 말씀드리면 "색을 표현하기 위해서는 3차원이 필요"합니다. 현실세계에서는 3차원 (R,G,B) 값을 다양하게 조합하여 색상표현할 수 있죠. 그리고, 이렇게 표현된 공간을 "색 공간 (color space)"라고 부릅니다.

 

<그림 출처: https://geraldbakker.nl/psnumbers/rgb-explained.html>
<위 그림을 설명을 위해첨부되었습니다 . 실제 pixel 값과 색상이 매칭이 안될 수 도 있으니 유의하세요 !>

 

 

 

 

 

"그렇다면, 색을 표현할 수 있는 모든 경우의 수는 어떻게 될까요?"

 

당연히 조합 경우의 수를 구하면 되므로 \(255^{3}\)  이 될 것입니다

 

<그림 출처:  https://overface.tistory.com/593>

 

 

 

 

 

"gray color를 표현하기 위해서 필요한 차원은 무엇일까요?"

 

gray color1차원 (0~255) 으로 모두 표현 가능합니다. 또한, gray color표현할 수 있는 모든 경우의 수255가지가 되겠죠. 그래서, 흑백 이미지를 다루는 문제에서는 이미지를 1차원으로 가정하고 gray scale이라고 표현하기도 합니다.

 

<그림 출처:  https://medium.com/javarevisited/converting-rgb-image-to-the-grayscale-image-in-java-9e1edc5bd6e7>

 

 

 

 

 

"앞서 색상관련해서는 정해진 차원(1차원 or 3차원)이 필요하다고 했는데, 그렇다면 이미지를 표현하기 위해서도 정해진 차원이 필요한가요?"

 

결론부터 말씀드리면, 이미지에 대한 차원은 "이미지 크기에 따라 달라진다" 입니다. 아래 gray scale의 튜링 이미지의 크기가 200×200이라고 한다면, 이러한 이미지를 표현하기 위해서는 40000 차원이 필요합니다. 왜 이렇게 고차원이 나오는지 설명해보도록 하겠습니다. (사실 엄밀히 말하면 색상도 R,G,B외에 다른 요소들로 표현할 수 있으면 색상의 차원은 또 달라질 수 있습니다)

 

 

 

 

200×200 gray scale 이미지를 표현한다고 하면 어떻게 생각해볼 수 있을까요? 먼저, 이미지라는 것은 pixel의 조합으로 이루어져 있습니다. 그리고, 하나의 픽셀에는 하나의 색 표현이 가능하죠. Gray scale인 경우에는 하나의 pixel0~255 사이 값 중 하나가 할당될 수 있습니다.

 

<그림 참고: https://blog.tonkabi.com/blog/post/computer-vision-vs-human-vision>

 

 

그렇다면, 200×200 gray scale 이미지의 pixel들을 1차원 일렬로 늘린다고 생각해보겠습니다.

 

<2D 이미지를 1D 이미지로 늘리는 예시>

 

 

그럼 40000개의 pixel이 나올 것입니다. 이때, 각각의 pixel들은 0~255개의 값을 지니고 있죠. 이를 다른 관점에서 보면, 40000개의 독립된 변수로 볼 수 있고, 각각의 변수는 0~255 값의 범위를 갖고 있다고 할 수 있죠. 40000개의 독립된 변수하나의 이미지 구성될 수 있기 때문에, 200×200 gray scale 이미지는 40000차원을 갖는다고 할 수 있습니다. 200×200 이미지는 40000 차원의 독립된 변수들이 갖는 고유의 값들에 의해 표현될 수 있는 것이죠. 

 

 

 

"그렇다면, 200×200 gray scale 이미지를 표현할 수 있는 모든 경우의 수는 어떻게 될까요?"

 

정답은 아래에서 구한 것 처럼 \(10^{96329}\) 경우의 수가 됩니다.

 

 

 

 

 

2. 이미지와 분포간의 관계 

앞서 200×200 gray scale 이미지의 차원 40000차원이고, 표현할 수 있는 이미지의 개수 (경우의 수)는 대략  \(10^{96329}\) 라고 했습니다.

 

"그렇다면, 200×200 gray scale 에서 표현될 수 있는 모든 경우의 수에 해당하는 이미지들은 의미가 있다고 할 수 을까요?"

예를 들어, \(10^{96329}\) 경우의 조합들 중에서는 아래 왼쪽과 같이 의미 없는 이미지(noise image)들도 있을 것이고, 오른쪽 같이 사람이 구별할 수 있는 의미 있는 이미지가 있을 수 있습니다. 

 

<그림 출처: http://web.mit.edu/kenta/www/three/grayscale-noise/zxevanas/images/?S=A>

 

 

여기서 우리는 또 한 가지 질문을 던져볼 수 있습니다.

 

"200×200 gray scale  즉, 40000차원 상에서 의미있는 이미지들은 고르게 분포(uniform distribution)하고 있을까요? 아니면 40000차원이라는 공간의 특정 영역에 몰려있거나 특정 패턴으로 분포(non-uniform distribution)하고 있을까요?"

 

이러한 질문에 을 하는 방법 중 하나는 200×200 gray scale 이미지들을 uniform distribution으로 수 없이 샘플링 해봐서 경험적으로 보여주는 것입니다. 만약, uniform distribution을 전제로 수 없이 샘플링 했을 때, 의미있는 이미지들이 종종 보인다면 의미있는 이미지들이 40000차원 상에 고르게 분포한다고 볼 수 있겠죠.

 

(※ 직관적으로 이해하기 위해 편의상 40000차원을 아래 이미지 처럼 3차원으로 표현했습니다. (즉, 아래 그림은 '본래 40000차원이다'라고 간주하시면 될 것 같습니다))

 

 

"오토인코더의 모든 것"이라는 영상에서 이활석님은 20만번 샘플링한 결과 의미없는 이미지(noisy image)만 추출된 것을 확인 할 수 있었다고 합니다. 이러한 실험을 통해 의미있는 이미지들은 40000차원에서 특정 패턴 또는 특정 위치에 분포해 있다고 경험적으로 결론내릴 수 있게 되는 것이죠.

 

(↓아래 영상 1:01:25초 부터)

 

 

 

 

 

 

 

지금까지 AutoEncoder, VAE, GAN을 배우기 위한 기본 지식들을 정리해봤습니다.

다음 글에서는 AutoEncoder에 대해서 다루면서 dimension reduction에 대한 개념을 소개하도록 하겠습니다. 왜냐하면 VAE, GAN 같은 논문들을 살펴보려면 "latent"말을 이해하기 중요하기 때문이죠!

 

그럼 다음 글에서 뵙도록 하겠습니다! 

 

 

 

안녕하세요.

이번 장에서는 이산확률분포를 설명하기 위한 여러 개념들에 대해서 살펴보도록 하겠습니다.

 

1. 확률분포를 사용하는 이유

  • 우리는 사회현상, 자연현상을 분석하기 위해 통계적 개념을 이용합니다.
  • 예를 들어, 정규(확률)분포는 '일반적인 사회현상을 통계로 나타낼 때, 대부분 평균 주위에 가장 많이 몰려 있고, 그 수치가 평균보다 높거나 낮은 경우는 점점 줄어들게 되는 현상'을 나타내는데, 이러한 현상을 보여주는 확률 분포로써 '정규(확률)분포'를 사용합니다. (정규(확률)분포에 대해서는 연속확률분포를 다룰때 자세히 설명하도록 하겠습니다.)

https://sosal.kr/774

  • 통계학에서는 다양한 확률분포를 사용합니다. 당연히 다양한 자연현상과 사회현상이 있기 때문에, 이러한 현상들을 대표하는 확률분포도 다양하겠죠.
  • 그럼 지금부터 확률분포에 대해서 천천히 알아보도록 하겠습니다.

https://www.kdnuggets.com/2020/02/probability-distributions-data-science.html

 

 

 

 

2. 확률분포(Probability Distribution)

  • 실험(시행)을 통해 확률변수(random variable) 값이 정해지면, 그 값들의 빈도수를 기반으로한 확률함수를 통해 각각의 변수에 대한 확률 값이 정해집니다.
  • 아래 그림에서는 몸무게에 해당하는 정수 값들 (50,60,70,80)이 random variable이며, 상대도수 값이 확률 값입니다.

예시1

 

 

  • 위의 설명을 좀 더 직관적으로 표현하면 아래와 같습니다.

예시2

  • 실험 데이터들이 많아지면 확률 변수에 따른 확률 값들의 분포를 짐작할 수 있게 됩니다.
  • 이러한 실험을 통해서 얻은 확률분포 자체만으로도 굉장히 유용하게 쓰이지만, 해당 확률분포를의 expectation, variance 등의 개념들을 이용하여 유의미한 통계 작업을 하게 됩니다. (expectation, variance 에 대한 설명은 뒷 부분에서 하도록 하겠습니다)

 

 

 

3. Probability Mass Function (PMF)

  • 이전 글("2. 확률분포")에서 확률 함수에 대해서 앞서 설명했기 때문에 확률함수에 대한 설명은 생략하도록 하겠습니다. PMF는 간단히 말해 확률 함수가 취하는 정의역이 이산확률변수(discrete probability variable)일 뿐입니다.
    • Probability Mass Function describes a probability distribution over discrete variables.
  • 밀도라고 이름을 붙인 이유는 사실 연속확률분포와 관련된 PDF (Probability Density Function)를 먼저 살펴봐야 하는데, 먼저 여기에서는 간단히 "정의" 정도만 언급하고 자세한 설명은 연속확률분포 파트에서 설명하도록 하겠습니다.
  • 연속확률분포에서 사용되는 PDF는 밀도라는 개념을 이용합니다. '밀도'라는 것은 부피당 차지하는 질량의 정도(=질량/부피)를 말합니다. 연속확률분포에서는 면적이 확률 값이 되는데 아래 그림을 보면 면적에 해당하는 공간(부피)에 무수한 선들이 빽빽하게 채워져있는 것 처럼 보이게 됩니다. 

  • 이산확률분포에서는 질량에 해당하는 하나의 선 자체가 확률 값이 되기 때문에 해당 질량(확률 값)을 도출하는 확률 함수를 PMF라고 부르게 됩니다. 
  • PMF는 어떤 discrete random variable에 대한 probability model이라고 할 수 있습니다.

 

 

 

 

4. 이산확률분포(Discrete Probability Distribution) with PMF axiom

  • 우리는 실험을 통해서 확률변수(random variable)을 얻게 됩니다.
  • 보통 확률변수를 변량(variance)라고도 하는데, 예를 들어, 몸무게를 측정하는 실험을 통해 얻은 변량 or 확률변수는 50, 60, 70, 80이 될 수 있습니다.
  • 만약, 우리가 100명에 대해서 조사한다고 했을 때, "몸무게 50에 해당하는 사람이 2명, 60에 해당하는 사람이 52명, 70에 해당하는 사람이 30명, 80에 해당하는 사람이 16명"이라고 했을 때, 해당 확률변수(50,60,70,80)의 사람 수는 일종의 (빈)도수(frequency)가 됩니다.
  • 이러한 확률변수에 대한 (빈)도수를 표로 정리한 것이 도수분포표입니다.
  • 그리고 이러한 도수분포표는 상대도수(=도수/도수총합)를 통해 확률 값으로 변경되는데, 이 때 상대도수를 도출하기 위한 함수를 확률함수(PMF)로 볼 수 있습니다.
  • 그리고 이러한 PMF에는 아래 그림에서와 같이 두 가지 공리(axiom①, axiom②)가 존재합니다. 그러므로 다음글에서 소개할 다양한 이산확률분포의 확률함수는 아래 두 가지 공리가 항상 성립해야합니다.
    • 특히, 도수에서 상대도수로 바꿀 때, 각각의 도수를 도수총합(=N)으로 나누는데 이를 normalization(정규화)이라고 합니다.

위 그림을 통해 PMF의 공리를 확인할 수 있다.

  • 앞서 "실험을 통해 얻은 확률분포에서 expectation, variance 등의 개념들이 출현하게 되는데, 이러한 개념들을 이용하여 유의미한 통계 작업을 하게 됩니다."라고 언급했는데, expectation과 variance가 어떻게 쓰이는지 알아보기 전에, expectation과 variance가 무엇인지 먼저 알아보도록 하겠습니다.

 

 

 

 

 

5. Expectation (기댓값)

  • 기댓값 E(X)를 보통 평균(mean)이라고 합니다.
  • 만약 한 반의 시험점수 '평균'이 70점이라고 한다면, 해당 반의 학생 중 아무나 한명을 골랐을 때 시험점수가 70점일거라고 '기대'하기 때문에, '평균'과 '기대값'이라는 용어를 동일시합니다.

 

5-1. Linearity of expectations

  • 선현성에 대한 개념은 나중에 선형대수라는 과목을 다룰 때 더 자세히 설명하도록 하고, 여기에서는 기댓값과 관련된 성질을 알아보는 차원정도로 정리해보도록 하겠습니다.

https://ko.wikipedia.org/wiki/%EA%B8%B0%EB%8C%93%EA%B0%92

 

  • 평균(기댓값)이 통계적으로 의미가 있는 이유는 데이터들의 분포를 대표할 수 도 있기 때문입니다.
  • 예를 들어 아래 그림에서는 평균이 (대략) 175정도 된다고 볼 수 있는데, 아래와 같은 정규(확률)분포표를 따른다고 하면 실험을 통해 수집한 데이터들이 175에 몰려있다는 것을 추론할 수 있게 됩니다.
  • 즉, 평균(기댓값)이 데이터들의 분포를 대표할 수 있게 됩니다. 

https://sosal.kr/774

 

 

 

 

6. 편차(Deviation)와 분산 (Variance)

  • 앞서 살펴본 '키'관련 확률분포표에서 평균(기댓값)은 데이터들의 분포를 대표할 수 있다고 설명했습니다.
  • 아래와 같은 상황에서 A확률 분포는 평균(기댓값)이 데이터들의 분포를 대표할 수 있다고 말할 수 있겠는데, B확률분포를 상대적으로 봤을 때 평균(기댓값)이 데이터의 분포를 대표한다고까지 할 수 있을지 잘 모르겠습니다. 

 

  • B확률 분포와 같은 경우는 평균과 데이터들의 거리가 매우 멀기 때문에, 평균값이 데이터들의 분포를 대표한다고 자신있게 말하기 어렵습니다.
  • 그래서 B와 같은 확률 분포를 대표하기 위해서 '평균'과 '평균으로부터 떨어져 있는 데이터들의 거리정도'를 사용해야 B 확률분포를 상징(represent)할 수 있게 됩니다.
  • 이때 '평균과 데이터들의 거리'를 '편차'라고 하는데, 해당 확률분포가 평균과의 '편차'가 얼마나 심한지 알기 위해서는 '편차'의 평균을 구하면 됩니다.
  • 그런데 아래 그림에서보면 알 수 있듯이 편차가 분명 존재함에도 불구하고 편차들의 평균값이 0이 나올 수 있습니다. (아래 그림에서 변량(확률변수=random variable)은 몸무게에 해당하고, 몸무게의 평균은 70입니다)
  • 사실 아래 예시 뿐만아니라 모든 경우에도 편차(변량-평균)의 평균값은 '0'이라는 걸 알 수 있습니다.

 

  • 결국, 편차의 대푯값을 구하기 위해 편차에 존재하는 음수를 양수로 바꾸자는 idea가 나오게 되었고, 음수를 제곱하여 편차의 대푯값을 구하는 '분산'이라는 개념이 나오게 되었습니다. 
  • 모든 편차에 제곱을 해주면 항상 양수가 나오기 때문에 아래와 같이 계산하는 방식을 분산이라고 정의하게 됩니다.

 

  • 분산(variance) 공식은 아래와 같이 정리할 수 있습니다.

 

  • 분산은 아래와 같은 속성을 지닙니다.

  • 통계학에서는 평균(기댓값)과 분산을 통해 유의미한 연구를 진행하게 됩니다.

 

 

 

 

 

7. 표준편차 (Standard deviation)

  • 분산식을 보면 제곱 성질로 인해 값이 커진다는 것을 알 수 있습니다.
  • 그렇기 때문에 분산식에 루트 (√) 를 씌워주어 값의 크기를 줄여주는데, 이것을 표준편차라고 합니다.
  • 즉, 평균으로부터 데이터들이 얼마나 떨어져 있는지의 정도를 표준적으로 알려준다는 의미를 지닙니다.
  • 표준편차를 구할 때 식을 RMS (Root Mean Square)이라고도 부릅니다.

https://blog.daum.net/kfs-jjang/15858793

 

 

이번 장에서는 이산확률분포에 대한 개념과, 확률분포에서 사용되는 유의미한 개념들(평균, 분산, 표준편차)에 대해서 알아보았습니다. 그럼 다음 글에서부터는 이산확률분포의 여러 종류들에 대해서 알아보도록 하겠습니다.

 

안녕하세요.

이번 장에서는 확률분포에 대한 개념을 설명보겠습니다.

 

확률분포에 대한 개념을 설명하기에 앞서, 확률변수에 대해서 설명을 해보도록 하겠습니다.

 

 

 

 

1. Random Variable

 

  • Ways of assigning numerical results to the outcomes of an experiment = A function from the sample space (Ω) to the real numbers (R).
    • 우리가 사람에 대해서 어떠한(임의의(random)) 실험을 한다고 해보겠습니다.
    • 사람의 키를 측정하는 실험을 할 수 도 있고, 몸무게를 측정하는 실험을 할 수 도 있습니다.
    • 즉, 사람이라는 변수 는 어떤 실험을 하는지에 따라 굉장히 다양한 값 (randomness)을 가질 수 있습니다.
    • 만약, '키 측정 실험'을 하게 되면 특정 실수 값 (키) 을 갖게 됩니다. 예를 들어, 우리가 실험을 통해서 얻은 결과가 "키={150~190}"의 범위를 갖을 수도 있습니다. 
  • [요약1] 결국, 임의의(random) 실험에 따라서 다양한 변수(variable: 몸무게 or 키 or etc..) 들을 갖게되기 때문에 키, 몸무게와 같은 것들을 하나의 random variable이라고 부릅니다.
  • [요약2] 키와 몸무게라는 random variable 종류에 따라 실수 값(or 범위: 키={150~190}, 몸무게={40~80)) 이 정해지기(mapping되기) 때문에 해당 random variable을 하나의 함수라고 보기도 합니다.

사람=S, 키 random variable=S1, 몸무게 random variable=S2

 

 

 

2. Probability Variable

  • 앞서 Random variable은 '몸무게', '키'와 같은 하나의 함수라고 했습니다.
  • Probability variable은 위와 같은 함수(random variable)을 통해 얻은 실수 값이라고 할 수 있습니다.
  • 그런데, 어떻게 실수 값 자체가 또다른 변수(probability variable)가 될 수 있을까요?
  • 해당 실수 값에 해당 하는 경우가 얼마나 빈번하게 일어나는지 확률함수(\(P{_X}(X=x)\))을 통해 알아 낼 수 있기 때문에, '실수 값' 자체도 확률 값을 알아내기 위한 변수(variable)가 될 수 있습니다.

 

 

  • 결국, random variable 함수 = 실수 값 = probability variable 이기 때문에, random variable과 probability variable을 따로 구별하지 않고 동의어로 사용하기도 합니다.

 

 

 

 

 

 

3. 확률변수(Random Variable)의 종류

  • 확률변수는 크게 두 가지 종류로 나뉩니다.
  • 이번 글에서는 각각의 확률변수에 대한 정의만 설명하고, 다음 글에서 이산확률분포를 설명하면서 더 자세히 다루도록 하겠습니다.

 

3-1. 이산확률변수 (Discrete Random Variable)

  • Random variable X가 어느 특정 구간의 모든 실수 값을 택하지 않고 0, 1, 2, ..  와 같은 이산적인 값만을 택하는 변수입니다.

 

3-2. 연속확률변수 (Continuous Random Variable)

  • Random variable X가 어느 특정 구간의 모든 실수 값을 취하는 연속된 구간의 값을 취하는 변수입니다.

 

 

 

 

4. 확률분포 (Probability Distribution)

  • Probability distribution이란 확률변수(random variable)의 모든 값과 그에 대응하는 확률들이 어떻게 분포하고 있는지를 말합니다.
  • 앞서 정의한 확률변수의 종류에 따라 확률분포의 종류도 크게 두 가지 (이산확률분포, 연속확률분포)로 나뉘어 집니다.

www.slideshare.net/JaewookKang1/tf2017-day2-jwkangpub

 

 

다음 글에서 부터는 본격적으로 이산확률분포에 대한 개념과, 다양한 이산확률분포를 다루면서, 어떠한 상황속에서 해당 확률분포들을 사용하는지 알아보도록 하겠습니다!

 

 

 

 

 

+ Recent posts