정규 분포, t 분포, 중심 극한 정리 정규 분포 (Normal Distribution)정규 분포는 가장 대표적인 연속 확률 분포로, 종 모양의 대칭 곡선을 가진다.키 평균, 몸무게 평균 등의 자연적인 현상 대부분은 정규 분포를 따른다.정규 분포의 PDF는 표본 평균 \(\mu\)과 표본 분산 \(\sigma^2\)을 통해 정의 된다.\begin{align*}N( \mu ,\sigma^2) &= \frac{1}{ \sigma \sqrt{2\pi}}e^{-{\frac{(x-\mu)^2}{2\sigma^2}}}\end{align*}표준 정규 분포 (Z분포)정규 분포의 PDF가 매우 복잡하기 때문에 보통 평균과 표준편차를 0과 1로 표준화 한 표준 정규 분포를 사용하게 된다.이 때 확률 변수 X를 표준화 한 확률 변수 Z는 다음과 같이 정의 된다.. 확률 변수, 확률 분포, 표본 분포 확률 변수확률 변수란 특정 사건에서 발생할 수 있는 이벤트 값과, 각 이벤트 값의 확률을 나타내느 실수 함수이다.예시) 동전을 2번 연속으로 던질 때 앞면이 몇번 나올지에 대한 확률 변수는 다음과 같이 정의할 수 있다.\( X = \{ 0, 1, 2 \} \) 이러한 확률 변수는 특정 이벤트의 확률을 정확히 알 수 있는가를 기준으로 이산 확률 변수, 연속 확률 변수로 나뉜다. 이산 확률 변수확률 변수의 값이 유한하기 때문에 셀 수 있는 확률 변수이다.확률 변수에 대한 확률이 1대1로 대응하기 때문에, 표 형태로 정리할 수 있다.이산 확률 변수에 사용 되는 함수는 확률 질량 함수 (Probability Mass Function, PMF)라 칭한다.연속 확률 변수확률 변수의 값이 무한하여 셀 수 없다. 보통.. 모집단, 표본 모집단 (Population)모집단은 연구 혹은 측정하고자 하는 그룹 전체를 뜻한다.또한 모집단의 평균이나 분산, 표준 편차 등의 특성을 모수(Parameter)라고 한다.대한민국 남자, 65세 이상 인구 등 보통의 경우 광범위한 그룹을 담게 된다. 때문에 모집단 전체의 데이터를 가져오는 것은 보통의 경우 불가능한 경우가 많다.표본 (Sample)그렇기 때문에 모집단에서 일부만 가져온 데이터를 표본이라고 한다.또한 표본의 평균이나 분산, 표준 편차 등의 특성은 통계량(Statics)라고 한다.모집단 전체의 데이터를 추출할 수 없기 때문에, 무작위로 일부 데이터를 가져와서 데이터를 추출하게 된다.이러한 표본 데이터를 기반으로 모집단을 추론하게 된다.편향 (Bias)이러한 표본은 아무 관계도 없는 데이터를 .. 결합 확률, 합 확률, 조건부 확률, 베이즈 정리 결합 확률, 합 확률서로 독립적인 사건 A와 B가 있다고 생각하자 이 떄 A와 B가 둘 다 발생할 확률 P\( A \cap B \) (혹은 P(A AND B))는 P(A) * P(B)로 정의 된다.이를 결합 확률(joint probability)이라 한다. A 혹은 B가 발생할 확률은 P\( A \cup B \) (혹은 P(A OR B))는 P(A) + P(B) - P(A AND B)로 정의 된다.이를 합 확률 (union probability)라 한다.조건부 확률B가 발생했을 때 A가 발생할 확률은 조건부 확률 (conditional probability) 이라 한다.이는 P(A | B) 또는 P (A GIVEN B)로 나타낸다. A와 B의 순서가 바뀌어도 무방한 결합 확률, 합 확률과 다르게, 조건부.. 데이터 차원 (Dimension) 개요선형 대수에서 데이터는 다양한 종류가 있고, 각 데이터가 n차원인가에 따라 특성이 나뉜다.수학적으로 엄밀한 정의가 아닌 대략적인 내용 정리 Point0 or 1로 정의 되는 존재 유무 정의Scalar일반적인 실수, 1차원 수직선에 놓을 수 있는 데이터\( x \in \mathbb{R} \)Vectorn차원의 데이터, n차원의 공간에서 방향을 가지는 데이터\( x\in \mathbb{R} ^{n} \)MatrixM x N 차원의 데이터, M or N = 1일 경우 벡터와 동일하다\( x \in \mathbb{R} ^{m \times n} \)TensorMatrix에서 추가 차원이 들어간 데이터 M x N x ... SSE2를 이용한 Vector, Matrix 구축 SSE2? SSE2는 SIMD 명령어 집합 중에 하나로, 2001년에 처음 공개되었다. 그 후에도 SSE3, 4와 AVX 등의 다양한 명령어 집합이 발표되었다. 그중에서 SSE2를 선택한 가장 큰 이유는 128비트 레지스터와 활용에 필요한 명령어가 있고, 거의 모든 컴퓨터가 지원하는 명령어 집합이기 때문이다. 물론 추후 다른 명령어 집합으로 확장할 수 있게끔 구축하였다. 어떻게 구축하였는지 역시 뒤에 설명되어있다. SIMD 명령어와 Vector, Matrix의 분리 가장 중요한 부분이다. SIMD 명령어를 분리하면 추후 다른 명령어 집합으로 확장해도 Vector, Matrix에는 영향을 주지 않게 된다. 또한 SIMD 명령어의 최적화를 위해서는 Load, Store를 최대한 줄이고 적재되어있는 상태에서 .. 현대 컴파일러에서의 inline 함수 inline 키워드는 inlining과 관련이 없다 일단 inline의 정의부터 확실히 하자. inline은 컴파일러에게 해당 함수의 inlining을 요청하는 함수이다. 강요가 아니다. 그렇기에 __forceinline 등의 inlining을 강요하는 키워드가 있다. 그러나 요즘의 컴파일러는 똑똑해서 자체적으로 inlining 여부를 판단한다. 즉 inline 키워드는 inlining과 관련이 없다. inline 키워드의 의의 그럼 inline 키워드는 쓸 이유가 없을까? 그건 아니다. inline 키워드는 해당 함수가 ODR을 무시하게 만들어준다. ODR은 One Definition Rule의 약자로, 객체나 함수의 정의는 유일해야한다.라는 규칙이다. 이 때문에 선언은 헤더에, 정의는 cpp 파일에 .. Random의 객체 기반 설계 객체 기반 Random이 필요한 이유 기존에 사용하던 C언어의 rand(), srand()와 UE4의 Random(Random Stream 제외)은 전역 State 기반 랜덤이다. 그렇기에 어디서 난수를 뽑더라도 그것이 다른 곳에 영향을 미치게 된다. 이는 특히 네트워크 환경에서 난수를 동기화하거나, 멀티 스레드 환경에서 프로젝트를 진행할 때 문제가 된다. 이를 객체 기반으로 하면 해결할 수 있다. 객체의 시드만 맞춰주면 다른 객체에 영향을 주고받지 않으면서 원하는 난수를 얻을 수 있다. 그리고 객체로 하면 Engine과 Distributor를 자유롭게 설정할 수 있다는 장점이 존재한다. 구현 코드와 함께 보도록 하자. 단순히 보면 C++ 11의 random 객체를 wrapping 한 것이긴 하다. T는.. 이전 1 2 3 다음