목록전체 글 (117)
ROKO

export | grep SHELL 최근 맥북을 포멧하며 기본 설정이 날라갔다. 포멧을 한 계기는 환경변수가 꼬여서 더이상 커지다가는 스파게티나 꽈베기 노선과 같은 개발환경을 갖게 될거 같아 큰 결심을 하게 되었다. 유용한 기능중 하나인 vscode에서 git push시 내가 어떤 branch에 push하고 있는지 알려주는 설정인데, 맥 기본 shell이 bash에서 zsh로 바뀌면서 zsh를 기준으로 설정해야한다. 우선 어떤 기본 shell 설정을 사용하는지 확인해보자. export | grep SHELL 나는 zsh가 기본설정이므로 zsh를 기준으로 설명한다. vi ~/.zshrc vi로 zsh 설정파일을 편집해야 한다. 'i'를 누르면 insert라고 하단에 표시가 되면 수정이 가능하다. 빈공간에 ..
* : args, **:kwargs args는 가변인자들을 list형태로 input 받는다고 생각하면 쉽다. kwargs는 가변인자들을 dict형태로 input 받는다. def function1(*args): ... def function2(**kwargs): ... function1('a','b','c') function2(a = 'a',b = 'b', c = 'c') from [library] import * library에서 모든 내용을 import한다는 의미이다. 하지만 필요한 함수가 하나인 경우 그 함수명만 import하는게 최적화 면에서 좋다. 불러온 함수들 중 하나와 내가 설정한 변수명과 충돌이 생길수도 있다. function comment python 함수작성시 용이한 주석을 소개한다. d..
pip install -r requirements.txt pip 는 아주 효율적인 패키지 관리자이다. 하지만 가상환경을 사용하면서 pip와 conda의 설치 경로가 달라지는 문제가 발생한다. 그렇다면 위 명령어에서 pip를 conda로만 변경하면 가능할까? 불가능하다. -r 옵션은 pip에는 있지만 conda에는 없기 때문이다. 참고로 requirements.txt는 고유명사처럼 쓰이는건 아니고 관습적인 이름으로 쓰이는 파일로써 해당 프로그램을 실행하는데 필요한 library들과 호환 버전을 작성해놓은 text이다. conda를 이용하려면 아래 명령어를 사용하면 된다. while read requirement; do conda install --yes $requirement; done < requirem..

Overview PCA = linear AE PCA ~ MF MF는 matrix completion 문제로 확장하여 볼 수 있다 PCA와 MF의 차이점은 무엇일까? Matrix Factorization은 SVD(Singular Value Decompostion)를 활용하기 때문에 정확히 비교하자면 PCA vs SVD를 살펴보아야한다. PCA -> \(X ≈ UZ\) SVD -> \(X = U\Sigma V^T\) \(X\)가 mXn matrix라고 했을때, \(U\)는 mXm matrix인 orthonormal columns 이다. \(V\)는 nXn matrix인 orthonormal rows이다. \(\Sigma\)은 mXn diagonal matrix로써 min(m,n) 개수(rank)만큼의 non..

Tensorboard는 원래 tensorflow에서만 지원하던 데이터 흐름을 확인하기 위한 소프트웨어 프로그램이다. Pytorch도 지원이 된지는 오래된거 같은데 이제라도 알았으니 적극적으로 사용해야겠다. 가장 큰 장점 중 하나는 실시간성이다. 보통 loss나 특징 metric지표들을 실험이 모두 종료된 후에 보기 마련인데, tensorboard를 사용하면 실시간으로 loss가 어떻게 그려지는지 확인할 수 있다. 수치값도 좋지만 눈으로 확인 할 수 있다는 부분이 이해하기도 편하다. sin, cos 그래프 데이터를 tensorboardX로 살펴보자. 보통 log형식으로 파일에 입력하는 부분에 tensorboardX 코드도 아래와 같은 형식으로 작성하면된다. 다양한 기능은 Docs를 참고하자. https:/..
통계학 : 관찰 및 조사를 통해 얻은 데이터로부터 수치적 성질, 규칙성을 찾아내는 학문 분야 통계학 분야 Descriptive Statistics (서술적 통계학) 데이터 표본 특징을 정량적으로 표현 데이터 표본 축약, 분석 Inferential Statistics (유추적 통계학) or Inductive Statistics (귀납적 통계학) 데이터 표본을 통해 모집단의 정보를 추론 확률 : 불확실한 어떠한 일이 발생할 가능성이나 믿음의 정도 확률의 정의 주관적 정의 주관적인 믿음의 척도를 이용하여 확률을 정의 고전적 확률 표본의 결과가 유한하고, 나타날 확률이 같다는 가정하에 정의 \(P(A)=\frac{사건 A의 경우의 수}{전체(표본공간) 표본공간의 수}\) 표본공간이 무한할 경우 정의하기 어려움 ..
http://www.yes24.com/Product/Goods/97032765 선형대수와 통계학으로 배우는 머신러닝 with 파이썬 - YES24 머신러닝에 필요한 선형대수, 통계학, 최적화 이론부터파이썬, 사이킷런, 텐서플로를 활용한 실습까지『선형대수와 통계학으로 배우는 머신러닝 with 파이썬』은 머신러닝의 기본적인 사용 방 www.yes24.com 위 책을 기준으로 간략히 정리하였다. Matrix (행렬) 행과 열로 이우러진 집합. n차원으로 확장시 matrix가 아닌 tensor라고 부른다. Diagonal matrix (대각행렬) 대각원소를 제외한 모든 element가 0인 행렬 만약 대각원소가 1이라면 단위 행렬 identity(I)라고 부른다. Transposed matrix (전치 행렬) ..

지긋지긋하게 괴롭히던 버그?오류를 해결했다. vscode를 설치할때 PATH 환경변수를 설정을 안하고 설치했는지 과거의 내가 어떻게 설치했는지 기억이 안나는데 간략히 버그를 설명하자면 아래와 같다. 본인은 anaconda를 이용해 가상환경에서 코드를 실행하고 있다. vscode에서 화살표 모양의 run code를 실행하면 python언어 또한 가상환경에 해당하는 언어로 선택되어 실행되는데 터미널에서 그냥 python으로 실행시 가상환경에서 설치한 python이 아닌 기존 path에 있는 python으로 실행되어 에러가 발생하였다. 확인 방법은 화살표를 이용해 실행하면 python 경로가 절대경로로 가상환경에 설치된 위치가 터미널에 뜬다. which python3 터미널의 경우 위의 코드를 실행하면 기본 ..

mixture model 비지도 학습에는 label k가 없기에 latent z를 사용한다. \(p(x)=\sum_zp(x,z)=\sum_zp(x|z)p(z)\) 대표적인 mixture model인 GMM을 알아보자. GMM은 더 일반화된 분포를 다룰수 있다. \(p(x)=\sum_{k=1}^K\pi_kN(x|\mu_k,\sum_k),\pi_k\) : mixing coefficients \(\sum_{k=1}^K\pi_k=1,\pi_k\geq0, \forall k\) GMM은 밀도추정을 하고 universarial approximator 이다. 심지어 diagonal GMM 또한 universarial approximator이다. MLE \(lnp(X|\pi,\mu,\sum)=\sum_{n=1}^Nln(..

density modeling 중 nonparametric방식으로 latent data 없이 모두 관측 가능한 데이터셋에 대해 적용하는 기법이다. latent variable이 있거나 never observed 되는 부분이 있는 데이터라면 latent variable models이라고 부른다. Clustering 비슷한 데이터끼리 집합으로 모으는 방식으로 다른 집합끼리는 데이터끼리도 서로 다르다. label없이 데이터의 유사도끼리 grouping 하는 걸 clustering 이라고 한다. 이때 유사도를 어떤 metric으로 결정하냐에 따라서 다양한 cluster가 생성된다. 위의 예시는 multiple modes가 있으므로 multimodal distribution이라고 부른다. k-means intui..