[공부] Automatic differentiation forward mode & reverse mode
·
연구 Research/인공지능 Artificial Intelligent
옛날부터 automatic differentiation을 보면서 용어가 잘 정리가 안되었는데 이번 기회에 정리를 하고자 한다. automatic differentiation만 궁금하다면 이 글을 봐도 좋지만 적절한 맥락을 알고 싶다면 다음 글을 참고하면 좋을 것이다.  이 글에서 다루는 키워드는 다음과 같다. Automatic differentiation (AD) Forward modeAutomatic differentiation (AD) Reverse mode 여기에 더해서 JAX에서 자주 나오는 용어인 Jacobian-vector-product (JVP)와 Vector-Jacobian-product (VJP)에 대해서도 다룬다.  1. Chain rule AD란 수치적으로 derivative를 구하는..
[Julia] Ubuntu 환경에서 설치하고 Jupyter notebook 환경에서 사용하기 (WSL2)
·
프로그래밍 Programming/줄리아 Julia
이 글은 윈도우에서 WSL2를 설치하고 WSL2의 Ubuntu에서 Julia와 Jupyter notebook을 같이 사용하는 방법을 설명한다.꼭 WSL2가 아니어도 우분투 환경이라면 비슷한 방식으로 할 수 있을 것이다.  나의 환경1) 윈도우 11 - WSL2 (Ubuntu 20.08)2) VS CODE가 이미 설치되어 있음3) VS CODE에 extension으로 ssh, WSL, Remote development가 설치되어 있음 1. Ubuntu 환경에서 Julia 설치 Julia 설치 방법은 다음 사이트에서 친절하게 설명되어 있다. Ubuntu 기준으로 설명하면 원하는 경로에서 다음과 같이 julia 파일을 다운받고 압축을 풀어서 설치한다. wget https://julialang-s3.julial..
[LaTeX] LaTeX Code 예쁘게 첨부하는 법
·
카테고리 없음
이전에는 listings 라이브러리를 활용하여 코드를 첨부하는 포스팅을 작성했었다.  간단하게 코드를 붙일 때는 위의 글로도 충분하지만 좀 더 예쁘게 해볼 수 없을까 고민하다가 찾은 코드를 저장한다. *overleaf 기준으로 작성되었음. \usepackage{tcolorbox}\usepackage[left=2cm,right=2cm]{geometry}\tcbuselibrary{minted,breakable,xparse,skins}\definecolor{bg}{gray}{0.95}\DeclareTCBListing{mintedbox}{O{}m!O{}}{% breakable=true, listing engine=minted, listing only, minted language=#2, minted s..
[기타] Jupyter notebook pdf로 export하기
·
카테고리 없음
Jupyter notebook에 markdown과 코드를 같이 쓸 수 있다는 것이 장점이다.그러나 ipynb 파일이 아니라 pdf 파일로 export하고 싶을 수 있다.  그럴 경우에는 다음과 같이 texlive를 비롯한 여러 패키지들을 linux 환경에 설치하고 (linux가 아닌 windows의 경우에는 texlive를 따로 설치한다.) 본인 conda 환경에서 nbconvert 와 pandoc을 설치한다.conda를 사용하지 않는다면 conda install 대신 pip install을 쓰면 된다.sudo apt-get install texlive-xetex texlive-fonts-recommended texlive-latex-recommendedconda activate (본인 환경이름)cond..
[정보] Faculty 연봉에 대한 기록
·
유학 생활 Daily
주요 대학의 연봉 수준을 나타낸 그림이다.  서부와 동부가 물가가 비싸기 때문에 상대적으로 연봉이 높게 책정된다. 아래는 지역 물가를 고려한 salary이다. 물가를 고려하더라도 stanford, MIT가 높게 책정된다. 하지만 이 데이터는 2017-2018년 데이터라서 정확하지는 않다.    다른 데이터를 찾아보면 다음과 같다. https://nces.ed.gov/ipeds/search/viewtable?tableId=33464&returnUrl=%2Fsearch IPEDS nces.ed.gov   Academic RankAverage SalaryProfessor$135,300Associate Professor$95,900Assistant Professor$82,500Instructor$75,300Le..
[공부] NVIDIA Omniverse, Isaac Sym
·
연구 Research
최근에 NVIDIA에서 Physical AI를 강조를 많이 하고 TED에서도 이와 비슷한 얘기가 나왔다. https://youtu.be/QOCZYRXL0AQ?si=OstjrO-6AKRJXoXm  그래픽 기술의 발달, GPU의 발전, 인공지능의 발전이 향하는 곳은 digital twin, robotics, simulation이다. 시뮬레이션은 각 분야마다 약간씩 다른 의미를 갖는다.기계공학과 고체, 열유체 분야에서 말하는 시뮬레이션은 발전된 수치해석 기법을 이용한 computational simulation을 말하고 이를 위해 정량화된 물성치를 얻는다.동역학, 제어 분야에서 말하는 시뮬레이션은 dynamics를 해석적, 수치적 기법을 통해서 시간에 대한 궤적을 구해서 이를 분석한다. 화학 분야에서 연구하는..
[유학] Accept을 눌렀다면 출국 전 해야할 일 GUIDE
·
유학 생활 Daily
유학을 어떻게 준비해야 하는지에 대해서는 다들 잘 알려주지만 막상 유학 어셉을 누르고 나서 무엇을 준비해야할지에 대해서는 잘 알려주지 않습니다. 그래서 겸사겸사 생각난 김에 쓰는 accept을 눌렀다면 해야할 일 리스트입니다.  이 글의 가정은 다음과 같습니다.미국에 있는 대학원에 가는 경우 (그렇다해서 모든 대학에게 통용되지 않을 수는 있음)박사과정 + 펀딩을 받는 경우  0-1. 학교에서 제공하는 New graduate student를 위한 문서/유튜브/OT 살펴보기 모든 인터넷에 있는 정보를 보기 전에 학교에서 제공해주는 정보를 반드시!! 확인하세요.학교는 학생들을 위해 필요한 절차를 제공해줄 의무가 있고 실제로 제공합니다.즉, 이 글을 읽기 전에 가장 먼저 해야할 일은 학교에서 주는 checkli..
[에러기록] CUDA, cuDNN 인식이 안 되는 경우
·
프로그래밍 Programming
가끔 CUDA, cuDNN을 설치했는데 파이썬 라이브러리에서 인식을 못 하는 경우가 있다. 컴퓨터 자체에 CUDA, cuDNN을 설치하는 것과 가상환경에서 CUDA, cuDNN을 설치하는 것에 따라 인식에 문제가 있을 수 있다. 컴퓨터에 CUDA,cuDNN을 설치했었으나 여러 개의 CUDA를 설치하는 것이 바람직하지 않다는 피드백을 받았다. 따라서 가상환경을 만들고 그 안에 CUDA toolkit을 설치하는 것이 바람직해보인다. https://stackoverflow.com/questions/73424216/how-to-install-cudnn-and-cuda-toolkit-in-a-python-virtual-environment How to install cudnn and cuda toolkit in ..
[최적화] Gradient를 계산하는 방법
·
연구 Research/최적화 Optimization
최적화 방법을 보면 gradient 정보를 사용하는 경우가 많다. 실제 최적화 알고리즘을 구현하고자 할 때 의문인 것이 바로 이 gradient를 어떻게 구하냐는 질문이다. 대표적최적화 방법을 보면 gradient 정보를 사용하는 경우가 많다. 실제 최적화 알고리즘을 구현하고자 할 때 의문인 것이 바로 이 gradient를 어떻게 구하냐는 질문이다.  그 방법으로는0. By hand1. Finite-difference method2. Auto-differentiation3. Complex step method 다음과 같이 설명할 수 있다. 0. By hand만약 목적함수가 파라미터에 대해 간단하게 표현되어있다면 사전에 gradient를 계산해서 결과 값만 대입하면 쉽게 구할 수 있다. 1. Finite-..
[알고리즘] KDTree로 가장 가까운 포인트 찾기
·
연구 Research/데이터과학 Data Science
K-neighbor 알고리즘에서 근접한 포인트를 찾을 때 다양한 방법으로 구할 수 있다.그 중 KD tree 방식을 이용한 효율적인 근접 포인트 찾는 알고리즘을 기록한다. import jax.numpy as jnpfrom jax import vmapclass KDTreeJAX: def __init__(self, data, depth=0): self.axis = depth % data.shape[1] self.median_idx = len(data) // 2 # Sort data along the current axis sorted_data = data[jnp.argsort(data[:, self.axis])] self.median_poi..