728x90

AI 51

05 Laplace transform 01, 02 (라플라스 변환)

는 b1, b2 vector의 내적을 의미한다. c_i 는 x가 b_i를 얼마나 가지고있는가 를 의미한다. c_i를 나태내는 분모의 값 (b_i, b_i) 는 normalization factor라고 생각하면 된다. H(jw) 는 fourier series에서 각 harmonic component의 계수를 의미했었다. 현재 x에 e^jwt 가 얼마만큼 분포 해 있는 지 구하기 위해서 내적을 한 결과가 결국 x를 fourier transform 한 결과라는 것을 의미한다. Fourier transform 은 laplace transform의 special case이다. imagnary 영역 (compelx) 만 고려할 때 사용되는 개념이다. 즉 s = jw (complex) 일 때 적용된다. laplace..

04 forced response 09 (강제 응답)

Second Order ODE wn 은 system(H, LTI system)의 natural frequency 이다. 오메가는 input 의 frequency이고 natural frequency와는 아무런 상관이 없다. 계산한식으로 A, theta를 r(gamma) 에 대해서 plot을 해보고 싶다. 그래프 색깔의 zeta는 damping 지수 (zeta) 이다. 이것이 커질수록 output response인 A(amplitude)가 감소하는 경향을 확인 할 수 있다. gamma 가 4인 경우 system frequency 보다 input frequency가 압도적으로 높은 경우이다. 이때는 Amplitude 가 거의 0으로 수렴하는 것을 확인 할 수 있다. natural frequency 랑 inpu..

04 forced response 08 (강제 응답)

Fourier Transform w = kw0 , dw = w0 인 이유는 T가 무한으로 가면 w0 가 dw 가 되기 때문이다. (아주 작은 delta가 됨) 이떄 k 는 정수배를 의미하는것이다. X(jw) 는 크기 + phase 를 , e^jwt 는 compelx harmonic 즉 주기를 의미하게 된다. aperiodic input은 기존 periodic input과 다르게 discrete harmonic compoenent 로 이뤄지는게 아니라 continous , 즉 모든 frequency로 이뤄진다고 볼 수 있다. anaysis 부분은 위 공식에서 e^jwt, e^-jw't 의 곱연산중에 w==w'이 되는 순간에만 주기함수의 적분할때 0이 되는것에서 살아남음을 표현한 것이다. w == w'이면 ..

04 forced response 06 , 07 (강제 응답)

filtering이 된다는 것은 LTI System인 H 를 구했을 때 k 에따라 (ak, w0k 가 fourier series에 index임으로) amplitude 가 달라짐을 의미한다. input 함수의 T를 높여서 frequency 를 늘리니까 H의 값 (즉 amplitude) 이 frequency가 클수록 감소되는 양상을 보인다. 즉 고주파 input들은 값이 줄어들게 된것이다. input은 빨간색 사각형 주기함수인데 실제로 LTI를 거쳐서 나오는 output은 모양을 달리 띄게 된다. 주로 저 직각 부분에 frequency가 높은 부분이라 output이 잘 따라오지 못하는 양상을 띄게 된다. y는 x의 주기 (ejwt)와 같고 phase, amplitude만 달라지기에 저렇게 놓고 식을 전개할 ..

04 forced response 05 (강제 응답)

Fourier Series LTI(linear time invariant) system에 일정한 주기를 가지고 있는 input이 들어왔을 때 output y를 계산하는 법은 convolution 을 이용하여 계산하게 된다. convolution은 어떤 특정 input값 t (x(a), h(b) 에서 a+b = t가 되는) 에 대해서 y(t) (output) 을 구하는 방법이다. 알아둬야할 점은 input의 frequency와 output 의 frequency 가 그대로 유지되고 앞단에 eigen value가 붙어서 복소평면에서 보면 크기와 회전만 다르다. 즉 주기는 같지만(원운동을 하는 각속도는 같지만) 높이와 phase가 달라진다고 볼 수 있다. 실제 한 예시를 state space representa..

Let's build GPT: from scratch, in code, spelled out.

# here are all the unique characters that occur in this text chars = sorted(list(set(text))) vocab_size = len(chars) print(''.join(chars)) print(vocab_size) account_circle !$&',-.3:;?ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 65 small shakespear 라는 몇장의 문단에서 character들만 추출 한 것이다. # create a mapping from characters to integers stoi = { ch:i for i,ch in enumerate(chars) } itos = { i:ch fo..

AI/Andrej Karpathy 2023.11.26

Building makemore Part 5: Building a WaveNet

lossi 를 표현한 그래프가 굉장히 보기가 어렵다. plt.plot(lossi) plt.plot(torch.tensor(lossi).view(-1, 1000).mean(1)) (200,1000) 으로 만든후에 row를 기준으로 평균을 내어 loss decay가 일어난곳을 좀 더 명확히 확인 할 수 있다. class Embedding: def __init__(self, num_embeddings, embedding_dim): self.weight = torch.randn((num_embeddings, embedding_dim)) def __call__(self, IX): self.out = self.weight[IX] return self.out def parameters(self): return [se..

AI/Andrej Karpathy 2023.08.15

Building makemore Part 4: Becoming a Backprop Ninja

logprobs = probs.log() loss = -logprobs[range(n), Yb].mean() logprorbs 는 ([32,27]) tensor인데 -logprobs[range(n), Yb]는 1~32 row를 iterate하면서 그중 Yb에 해당하는 column 만 indexing 하는것이다. -logporbs[range(n), Yb] 의 shape 은 32 이다. batch size = 32 dlogprobs/da = -1/3a -1/3b + -1/3c dlogporbs/dsomething = -1/n dlogprobs = torch.zeros_like(logprobs) dlogprobs[range(n), Yb] = -1.0/n -logprobs[range(n), Yb] 여기에 평균값..

AI/Andrej Karpathy 2023.02.26

Building makemore Part 3: Activations & Gradients, BatchNorm

fixing the initial loss weight 초기화를 우선 잘못하고 있다. 현재는 loss 가 거의 27이 나오는데 27개의 alphabet 중에 첫 번째 훈련에서는 어느 것이 나와도 이상하지 않다. 즉 최소한 기대할 수 있는 것 uniform distribution을 가정할 수 있다. -torch.tensor(1/27.0).log() tensor(3.2958) 3 정도의 loss를 init step 에 가져가면 괜찮게 가져간 것이다. 3보다 높으면 그냥 뽑는 것만 못하다는 의미이다. logits 의 값들이 가질 수 있는 범위가 클수록 loss 가 굉장히 커지기 쉽다. 거의 0 에 수렴하게 만들고 싶다. # MLP revisited n_embd = 10 # the dimensionality o..

AI/Andrej Karpathy 2023.02.19

Building makemore Part 2: MLP

현재는 bigram이니 27개의 row만 존재하지만 2, 3개의 input 기준으로 다음 단어를 예측하게 되면 27^2 , 27^3 의 row가 생겨서 점점 W.shape이 말도 안되게 커지게 된다. https://www.jmlr.org/papers/volume3/bengio03a/bengio03a.pdf 논문은 word modeling 우린 character modeling 이지만 아이디어는 똑같이 적용할 수 있다. word를 30차원으로 embedding한다. 비슷한 의미들은 embedding space에서 비슷한 곳에 분포하게 된다. 3개의 word 를 기준으로 다음 word를 예측하는 모델이다. C.shape는 (17000,30) 으로 17000은 총 word갯수이고 30은 우리가 embbedin..

AI/Andrej Karpathy 2023.02.04
728x90