일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 수식삽입
- Linear algebra
- WOX
- 텝스
- 논문작성법
- 우분투
- Statics
- Python
- Dear abby
- JAX
- 에러기록
- 텝스공부
- IEEE
- 딥러닝
- 수치해석
- 생산성
- pytorch
- LaTeX
- Julia
- Zotero
- matplotlib
- ChatGPT
- 고체역학
- 논문작성
- Numerical Analysis
- MATLAB
- obsidian
- 옵시디언
- 인공지능
- teps
- Today
- Total
목록분류 전체보기 (436)
뛰는 놈 위에 나는 공대생
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
우리가 통계를 배울 때 가장 먼저 배우는 개념은 평균과 분산(또는 표준편차)이다. 이 2개는 어떤 분포를 표현하는데에 사용되는 지표라고도 이해할 수 있다. 가우시안 분포의 경우에는 평균과 분산 두 개만 가지고도 표현할 수 있는 분포이기 때문에 많이 쓰이지만 실제 분포가 항상 가우시안일 것이라고 기대하기 힘들다. 가우시안 분포를 많이 쓰는 이유는 central limit theorem 때문이다. 개별 표본이 같은 분포(꼭 가우시안이 아니어도 됨)에서 추출되고 서로 독립일 때 이 표본들의 평균이 표본 수 증가함에 따라 가우시안 분포를 따를 것이라는 Theorem이다. 하여튼 이런 경우가 아니라면 분포를 표현하기 위해 여러 moment를 공부하게 된다. $x$는 continuous random variable..
우리가 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_..
최적화 문제를 풀기 위해서는 본인이 직접 솔버를 만들 수도 있겠지만 보통 다른 사람이 만든 솔버를 사용한다. YAMLIP은 최적화 문제를 정의하도록 도와주는 프로그램이라고 보면 된다. 그런데 문제를 풀기 위해서는 solver가 필요하고 기본적으로 YAMLIP에서는 'quadprog', 즉, quadratic programming을 사용할 수 있다. 그러나 더 나은 솔버를 사용하기 위해 잘 알려진 mosek을 쓰고자 하였다. mosek은 학생과 같은 academic 목적으로 사용하는 사람들에게는 1년 간 라이센스를 무료로 쓸 수 있게 해준다. 다음 사이트에서 personal academic license를 눌러서 학교 이메일 주소와 기관명을 입력하면 메일을 보내준다. 메일 인증을 통해서 lic 파일을 받을..
MATLAB은 기본적으로 자신들이 지정해놓은 경로에서 파일을 찾아서 사용한다. 함수 파일을 따로 만들어서 쓰면 당연히 그 함수 파일을 읽을 수 있도록 함수 파일을 사용하는 코드가 있는 경로에 같이 함수 파일이 있거나 OR 경로에 함수파일이 있는 경로를 추가해야 한다. 1. 코드로 추가하는 방법 addpath라는 함수를 이용한다. addpath('C:/Users/user/문서/프로그램/') 이런 식으로 경로를 추가한다. 경로에 한글이 들어가도 다행히 된다. 2. 직접 추가하는 방법 위 그림의 경로 설정에 들어가서 여기에 추가하면 좋은 이유는 영구적으로 경로가 보존되기 때문에 MATLAB을 지웠다 켜도 경로를 계속 쓸 수 있다는 점이다. 다만 그 경로가 삭제되거나 할 경우에는 관리가 어렵기 때문에 보통은 항..
영어 공부하기에 좋은 사이트 모음 듣기 영화 듣기 (넷플릭스가 영어자막이 잘 되어있어서 좋음, 한국 ott 사이트는 영어자막을 지원을 안 해주는 듯) TED talks 유튜브 채널 스마트폰 앱 : 안드로이드 기준 [리스너] 앱 읽기 뉴욕 타임즈나 월스트리트 저널 Dear abby 단어 말해보카 앱 (각종 예시 문장과 함께 학습하며 복습 플랜을 잡아줘서 좋음. 유료지만 값어침 함/ 2인 모아서 74500원 정도) Quizet (암기카드로 테스트하기 좋음. 테스트를 무제한으로 하려면 유료지만 무료로도 어느정도 할 만함) 말하기 발음 연습 겸 하는데 https://www.google.com/intl/en/chrome/demos/speech.html Chrome Browser Click on the microp..
기존에 자주 사용되면 파이토치나 텐서플로에서도 그렇듯이 학습한 모델을 저장하는 것은 필수이다. 나중에 다시 결과를 출력해야하거나 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_..
\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에서 제공해주는 예제도 있지만 이는 아주 심플한 선형 모델의 파라미터를 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..
matplotlib에서 log scale그래프를 그리다가 다음과 같이 y축 숫자표기가 너무 크다는 것을 발견하고 이를 수정하기 위한 코드를 작성하였다. 여러 방법을 찾아보긴 했는데 내가 느끼기에 가장 간단하고 범용성이 높은 방법은 다음과 같다. 1. axes 인스턴스 필요 대부분의 matplotlib 그림에서 고급 기능을 쓰기 위해서는 axes 인스턴스를 필요로 한다. 이 axes는 내가 그리고자 하는 figure에 할당된 class인데 그 내부에서 구체적으로 설정하는 매서드가 담겨있어서 이것에 접근해야한다. plt.plot(num_history, train_mse_history) plt.ylabel('MSE') plt.xlabel('epoch') plt.yscale('symlog') ax = plt.g..