[랜덤프로세스] Brownian motion simulation
·
확률 및 랜덤프로세스 Random process
Stochastic process를 이해하기 위한 중요한 개념 중 하나는 brownian motion이다. 정확히는 Random walk (Wiener process)를 이해하고 보면 좋을 것 같은데 여기에서는 차치하고 설명한다. Brownian motion은 연속 시간 시스템일 때 다음과 같이 정의된다. $d\beta = w\; dt$ $w$는 zero mean white noise이다. 이 시스템은 초기값이 0이고 초기 분산이 0이다. $(\beta(0)=0, \operatorname{Var}(\beta)(0)=0)$ $w$가 zero mean white noise이므로 다음과 같은 성질을 만족한다. $\mathbb{E}[w(t+\tau)w(t)^{\top}]=Q_{c}(t)\delta(\tau)$ ..
[추정] Estimator 역할 : Prediction, smoothing, filtering
·
추론 & 추정 이론 Estimation
Estimation 분류 기준에 대해 알고 싶으면 다음 글로 이동 measurement $z(t)$가 주어질 때 우리가 알고 싶은 signal $x(t)$가 있다고 하자. 이를 추정하기 위한 estimator $\hat{x}(t+\tau) \text{ at some time }t+\tau$가 있다. 이 estimator의 역할을 분류하면 다음과 같다. Prediction $\tau>0$일 때 prediction. 미래의 값을 예측하는 것이기 때문이다. Smoothing $\tau
[확률및통계] 모멘트
·
수학 Mathematics/확률및통계 Probability & Statistics
우리가 통계를 배울 때 가장 먼저 배우는 개념은 평균과 분산(또는 표준편차)이다. 이 2개는 어떤 분포를 표현하는데에 사용되는 지표라고도 이해할 수 있다. 가우시안 분포의 경우에는 평균과 분산 두 개만 가지고도 표현할 수 있는 분포이기 때문에 많이 쓰이지만 실제 분포가 항상 가우시안일 것이라고 기대하기 힘들다. 가우시안 분포를 많이 쓰는 이유는 central limit theorem 때문이다. 개별 표본이 같은 분포(꼭 가우시안이 아니어도 됨)에서 추출되고 서로 독립일 때 이 표본들의 평균이 표본 수 증가함에 따라 가우시안 분포를 따를 것이라는 Theorem이다. 하여튼 이런 경우가 아니라면 분포를 표현하기 위해 여러 moment를 공부하게 된다. $x$는 continuous random variable..
[확률] 랜덤 숫자를 생성하는 방법 (1) Uniform distribution
·
확률 및 랜덤프로세스 Random process
우리가 MATLAB에서 랜덤함수를 쓸 때 별 생각없이 쓴다. 코드 한 줄이면 원하는 사이즈의 랜덤한 숫자를 원하는 분포(ex. 가우시안 분포)에서 추출할 수 있다. 그런데 실제로 이 값들이 어떻게 생성되는지는 잘 모른다. 임의의 확률분포가 있을 때 그 확률분포를 따르는 난수를 생성하기 위해서는 기본적으로 uniform distribution이 필요하다. 그래서 처음에는 uniform distribution을 만드는 방법을 배우고 확장해나가는 흐름이다. Uniform distribution interval $(0,m)$에서 uniformly distributed integer $z_{i}$를 구하기 위한 알고리즘은 다음과 같다. general한 알고리즘으로는 $z_n = f(z_{n-1},\ldots,z_..
[Mosek] academic license와 MATLAB에서 사용
·
카테고리 없음
최적화 문제를 풀기 위해서는 본인이 직접 솔버를 만들 수도 있겠지만 보통 다른 사람이 만든 솔버를 사용한다. YAMLIP은 최적화 문제를 정의하도록 도와주는 프로그램이라고 보면 된다. 그런데 문제를 풀기 위해서는 solver가 필요하고 기본적으로 YAMLIP에서는 'quadprog', 즉, quadratic programming을 사용할 수 있다. 그러나 더 나은 솔버를 사용하기 위해 잘 알려진 mosek을 쓰고자 하였다. mosek은 학생과 같은 academic 목적으로 사용하는 사람들에게는 1년 간 라이센스를 무료로 쓸 수 있게 해준다. 다음 사이트에서 personal academic license를 눌러서 학교 이메일 주소와 기관명을 입력하면 메일을 보내준다. 메일 인증을 통해서 lic 파일을 받을..
[MATLAB] 경로추가 방법
·
프로그래밍 Programming/매트랩 MATLAB
MATLAB은 기본적으로 자신들이 지정해놓은 경로에서 파일을 찾아서 사용한다. 함수 파일을 따로 만들어서 쓰면 당연히 그 함수 파일을 읽을 수 있도록 함수 파일을 사용하는 코드가 있는 경로에 같이 함수 파일이 있거나 OR 경로에 함수파일이 있는 경로를 추가해야 한다. 1. 코드로 추가하는 방법 addpath라는 함수를 이용한다. addpath('C:/Users/user/문서/프로그램/') 이런 식으로 경로를 추가한다. 경로에 한글이 들어가도 다행히 된다. 2. 직접 추가하는 방법 위 그림의 경로 설정에 들어가서 여기에 추가하면 좋은 이유는 영구적으로 경로가 보존되기 때문에 MATLAB을 지웠다 켜도 경로를 계속 쓸 수 있다는 점이다. 다만 그 경로가 삭제되거나 할 경우에는 관리가 어렵기 때문에 보통은 항..
[영어] 영어공부 사이트
·
영어 공부 English Study
영어 공부하기에 좋은 사이트 모음 듣기 영화 듣기 (넷플릭스가 영어자막이 잘 되어있어서 좋음, 한국 ott 사이트는 영어자막을 지원을 안 해주는 듯) TED talks 유튜브 채널 스마트폰 앱 : 안드로이드 기준 [리스너] 앱 읽기 뉴욕 타임즈나 월스트리트 저널 Dear abby 단어 말해보카 앱 (각종 예시 문장과 함께 학습하며 복습 플랜을 잡아줘서 좋음. 유료지만 값어침 함/ 2인 모아서 74500원 정도) Quizet (암기카드로 테스트하기 좋음. 테스트를 무제한으로 하려면 유료지만 무료로도 어느정도 할 만함) 말하기 발음 연습 겸 하는데 https://www.google.com/intl/en/chrome/demos/speech.html Chrome Browser Click on the microp..
[JAX] 학습한 모델 저장 및 로드
·
연구 Research/인공지능 Artificial Intelligent
기존에 자주 사용되면 파이토치나 텐서플로에서도 그렇듯이 학습한 모델을 저장하는 것은 필수이다. 나중에 다시 결과를 출력해야하거나 Transfer learning 등에 활용해야하기 때문이다. 이 글에서는 JAX 모델을 학습한 다음, 저장하고 다시 로드하는 방법에 대해서 다룬다. 1. 학습 후 저장 이 글에서는 model이라는 class 안에 optimizers를 정의하고 그 안에 있는 loss 등의 함수로 학습을 하고 있었다. class 안에 self.opt_init, \ self.opt_update, \ self.get_params = optimizers.adam(optimizers.exponential_decay(1e-3, decay_steps=1000, decay_rate=0.9)) self.opt_..
[LaTeX] LaTeX Error: Command \openbox already defined.
·
기타/논문작성 Writing
\usepackage{asmthm}를 쓰면 아래와 같은 에러가 뜰 수 있다. LaTeX Error: Command \openbox already defined. Or name \end... illegal, see p.192 of the manual. See the LaTeX manual or LaTeX Companion for explanation. Type H for immediate help. ... l.426 \vrule\hfil}} Your command was ignored. Type I to replace it with another command, or to continue without it. 이 에러는 \openbox라는 커맨드가 여러 패키지에 정의되어있어서 발생하는 오류이기 때문에 다음..
[JAX] 병렬컴퓨팅 예제 - jax.pmap으로 신경망 학습 예제
·
연구 Research/인공지능 Artificial Intelligent
JAX를 통해 병렬로 뉴럴 네트워크를 학습하는 예제를 고민하였다.JAX에서 제공해주는 예제도 있지만 이는 아주 심플한 선형 모델의 파라미터를 regression하는 문제이기 때문에 실제 뉴럴 네트워크 모델과는 괴리가 좀 있어서 직접 예제를 만들었다. JAX 0.3.1. 버전 1. JAX에서 제공하는 예제 import jaxjax.devices()>> [GpuDevice(id=0, process_index=0), GpuDevice(id=1, process_index=0), GpuDevice(id=2, process_index=0), GpuDevice(id=3, process_index=0)] 필자는 gpu 4개를 가지고 병렬 컴퓨팅을 사용했다. import numpy as npimport jax.numpy..