일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 논문작성
- 고체역학
- 옵시디언
- MATLAB
- Numerical Analysis
- Zotero
- 논문작성법
- 텝스
- 에러기록
- 딥러닝
- Python
- LaTeX
- WOX
- 수치해석
- 수식삽입
- 텝스공부
- IEEE
- ChatGPT
- Julia
- Statics
- obsidian
- 우분투
- 인공지능
- Linear algebra
- pytorch
- teps
- matplotlib
- 생산성
- JAX
- Dear abby
- Today
- Total
목록연구 Research/인공지능 Artificial Intelligent (39)
뛰는 놈 위에 나는 공대생
물리기반 인공지능 관련해서 접근성을 높이기 위한 여러 라이브러리가 있다. 보통은 코드를 직접 작성하는게 낫지만 빨리 테스트해보고 싶을 때는 라이브러리가 도움이 많이 되기 때문에 저장한다. 1. Python - PyTorch 1.1. TorchDiffeq Neural ode 창시자인 Chen이 배포한 코드 : https://github.com/rtqichen/torchdiffeq 1.2. DeepXDE Arxiv에 올라와있는 http://arxiv.org/abs/1907.04502에서 더 많은 정보를 얻을 수 있다. (논문 정보 L. Lu, X. Meng, Z. Mao, and G. E. Karniadakis, “DeepXDE: A deep learning library for solving differe..
chatGPT의 흥미로운 점은 어떤 프롬프트를 쓰느냐에 따라 결과가 달라질 수 있다는 점이다. 이런 측면에서 더 나은 프롬프트를 사고 파는 시장까지 생겼다고 하니, 세상에는 참 많은 아이디어가 돈이 된다 싶기도 했다. 실제 openAI에서는 몇 가지 유용한 강좌를 제공해준다. 그중 하나가 지금 이야기하고자 하는 ChatGPT Prompt Engineering for Developers라는 강의이다. chatGPT를 더 유용하게 사용하기 위해 어떻게 명령을 넣으면 좋을지에 대해 설명해준다.80퍼센트 정도 들었는데 충분히 chatGPT를 사용하는 법에 대해 익숙해지기 좋은 것 같다.나중에 시간이 나면 어떤 식으로 프롬프트를 하는지 정리해놓고 싶다. (크흠..) 괜히 이상한 유튜브에서 chatGPT 설명을 찾..
Quasi Newton method를 이용해서 JAX에서 최적화를 시키고 싶었는데 JAX 자체가 Deep learning에 포커스가 있고 대부분 딥러닝이 Gradient descent method로 최적화를 하다보니 라이브러리를 찾게 되었다. 대부분 jaxopt라는 라이브러리를 추천했기 때문에 이걸로 수행해보았다. jaxopt에는 jaxopt.ScipyMinimize와 jaxopt.LBFGS가 있는데 다른 분들의 시도를 보니 ScipyMinimize가 더 성능이 괜찮은 것 같다. ScipyMinimize는 scipy에 있는 최적화를 사용한 것이고 LBFGS는 직접 만든 것 같은데 line search 방법 등이 다르다고 한다. import jax import jax.numpy as np from jax ..
맨날 Bayesian Neural Network (BNN)에 대해서 얘기를 듣다가 좋은 강의를 접하게 되어서 요약 정리하고 개별 내용을 보는 것이 어떨까 생각한다. 모든 자료들이 notation을 다르게 쓰다보니 따라가기 어려운 점이 있기도 하고.. 만약 BNN 관련한 라이브러리를 한 번쯤 보신 분들이라면 MCMC, Dropout, Stein Variational Gradient Descent, Variational Inference 등 알 수 없는 용어들을 봤을 것이다. 필자도 배우는 단계이기 때문에 공부하면서 이 글이 수정될 수도 있다. 다루고 싶은 내용은 1) Bayesian Neural Network의 이론 기반 2) BNN에 포함되는 알고리즘 3) BNN Implementation (JAX 라이..
인공지능을 하다보면 경험적으로 알게 되는 것들이 있는데 그 중 하나가 scaling의 문제이다. 간단한 regression 문제를 풀어보자. import jax import jax.numpy as jnp from jax import random, vmap from jax.example_libraries import optimizers def diffusion(t, y, args): sigma = 0.15 diff = sigma * jnp.sqrt(y) return diff # Define a simple neural network model def init_params(layer_sizes, key): params = [] for i in range(1, len(layer_sizes)): key, sub..
JAX를 쓰다보니 분명 vmap을 사용했음에도 안에 있는 루프는 빨리 되지만 정작 vmap을 나올 때 느려지는 현상을 발견하였다. 구체적으로 알아보려면 jax.make_jaxpr 또는 jax.block_until_ready를 써보라고 하는데 make_jaxpr 같은 경우에는 컴파일할 때 각 변수 flow를 보여주는 역할을 해서 도움이 될 수도 있다. vmap과 jit의 시간 차이를 알아보려면 아래의 예제를 사용해볼 수 있다. from functools import partial from timeit import timeit from jax import vmap, jit, random, numpy as jnp n, d = 512, 64 a = random.normal(random.PRNGKey(0), (n..
MATLAB을 제외하고 인공지능 툴을 쓸 수 있는 환경은 대부분 파이썬이다. 그런데 파이썬만 있다고 끝나는 것이 아니라 인공지능 라이브러리를 동반해야 한다. 나는 Tensorflow2, Keras, PyTorch, JAX 까지 다 써보고 현재는 Julia도 고려하는 중이다. (Tensorflow1은 써봤는데 불편하기도 하고 그 때는 2가 막 활발해지던 시점이라서 그냥 넘겼다.) 철저히 개인적인 경험을 바탕으로 작성하는 것이라서 연구 쪽에 초점이 맞춰져있고, 그걸 감안하고 보면 될 것이다. 혹시 실무를 하시는 분들이 있으면 본인의 경험을 공유해주시면 정말 좋을 것 같다. 아래가 내용을 정리한 표 Tensorflow Keras PyTorch JAX Julia 특징 Google에서 시작 프랑소와 숄레가 창시한..
다음과 같이 jax.lax.stop_gradient로 묶어준 결과를 사용하면 그 이전까지는 gradient가 기록되지 않는다. jax.lax.stop_gradient(sol.ts)
다음 글에서 재현성을 위해 설정해야하는 것들은 다음과 같다. import random random_seed = 1 torch.manual_seed(random_seed) torch.cuda.manual_seed(random_seed) torch.cuda.manual_seed_all(random_seed) # if use multi-GPU torch.backends.cudnn.deterministic = True torch.backends.cudnn.benchmark = False np.random.seed(random_seed) random.seed(random_seed) 이것까지는 좋은데 주의해야할 점이 있다. 예를 들어 내가 어떤 random integer를 뽑는 상황이 온다고 하자. 그러면 seed..
아직 많이 논문을 읽어보지는 못했지만 최근 Neural network의 수렴성에 대한 연구가 이루어지는 것들이 있는 것 같아서 논문 목록을 미리 작성해놓는다. NN에서 마주치는 어려움 중 하나는 수렴성에 대한 문제이다. 최적화도 nonlinear programming에서 수렴이 어렵기 때문에 이를 convex화시켜서 해결하고자 하는 시도들이 많은데 인공지능 분야도 실제 상황에서 활용되기 위해서는 충분히 수렴이 가능한지에 대한 연구도 많이 필요할 것으로 보인다. Neural network의 convexity에 대한 연구 Milne, T. (2019). Piecewise strong convexity of neural networks. Advances in Neural Information Processin..