사이언스/네이처, 같은날 단백질 접힘 프로토콜 각각 발표 RoseTTAFold / AlphaFold by 바죠


주피터허브? by 바죠

주피터허브?
A multi-user version of the notebook designed for companies, classrooms and research labs

주피터노트북이 유용함을 작년말 올초에 자습을 했다.
리눅스가 아니고 Python 언어를 이용하여 개발에 집중한다면 사실상 PC에서 사용할 수 있는 최고의 개발환경인 것 같다.
주피터노트북의 유용성은 바로 데이터 정리와 코드 개발에서의 유연성을 들 수 있다.
간단한 테스트를 셀 기반으로 진행하고 셀을 다시 만들어 낼 수 있는 유연성을 주피터노트북은 제공한다.
무엇보다도 계산결과를 모두 그림으로 저장할 수 있다. 아울러, html, pdf, latex으로 변환까지 자동으로 해준다.
실질적인 연구개발환경으로 손색이 없다.

실제로 github에 올라온 라이버러리들에 대한 설명은 대부분 주피터노트북으로 이루어지고 있다. 
이러한 사실은 주피터노트북의 유용성/편리함을 의미하는 직접적인 신호이다.

가까스로 주피터노트북에 익숙해졌다고 생각한다. 
거의 막차를 탄 것 같았다. 이미 많은 사람들이 이것을 이용하는 것을 보기는 했기 때문이다.

그런데, 또 다시, 새로운 환경을 마주치게 되었다. 
웹페이지 기반으로 로그인부터 시작하는 새로운 연구개발 환경에 노출되었다. jupyterhub

세상은 급속도로 바뀌고 있다.
세상은 결코 머물러 있지 않는다.

보다 더 많은 일들을 잘 할 수 있는 시스템의 개발과 응용이 진행되고 있다.

잘은 모르겠지만, 이것이 인공지능의 파괴적인 보급과도 관련이 있는 것 같다.
많은 사용자들이 새로운 인공지능 라이버러리들이 필요하게 되고, 이것을 보다 쉽게 활용하는 새로운 돌파구가 필요했는지 모른다.
마찬가지로 github를 통한 다수의 사용자들에게 노출된 개발환경이 한몫 하지 않았나 생각해 본다.
클라우드 환경이 떠오르고 있다.
다양한 단말기에서 접근이 가능하다. 동일한 방법으로 접근이 가능하다.

--------------------------------------------------------------------------------------------------------------
https://towardsdatascience.com/jupyter-lab-evolution-of-the-jupyter-notebook-5297cacde6b

#conda
conda install -c conda-forge jupyterlab
#pip
pip install jupyterlab
#pipenv
pipenv install jupyterlab
pipenv shell


jupyter lab

--------------------------------------------------------------------------------------------------------------

볼츠만 머신 [설명] by 바죠

볼츠만 머신 설명 URL


생성모형은 동물 이미지 x들이 가진 특징을 추출해서 데이터에 있는 동물들과 닮은 이미지 x를 생성하는 학습이다. 

위 경사하강법을 통해서 (W,b1,b2)를 업데이트하면 D(P0||P)가 줄어들면서 모형의 분포 P(x)가 데이터의 분포 P0(x)에 점점 가까워지게 된다. 

에너지가 낮은 패턴은 자주 발견된다.

모형을 이용해서 데이터를 저장하게 되면 세 가지 이로움이 생긴다. 

첫째, 데이터의 패턴과 빈도수를 통째로 저장하는 것보다 세 개의 숫자 (W,b1,b2)을 저장하는 것이 훨씬 수월하다. 

둘째, 관찰된 데이터에는 없었던 패턴의 관찰확률을 유추할 수 있다. 가령 x=(0.5,0.5)라는 패턴은 관찰된 적이 없지만, 확률모형은 P(0.5,0.5)3 값을 예측해준다. 

셋째, 이 확률모형을 이용해서 상대적으로 확률이 높은 패턴을 추출할 수 있다. 이것이 바로 생성모형의 원리가 된다.



# calculate the kl divergence
def kl_divergence(p, q):
return sum(p[i] * log2(p[i]/q[i]) for i in range(len(p)))
# calculate the js divergence
def js_divergence(p, q):
m = 0.5 * (p + q)
return 0.5 * kl_divergence(p, m) + 0.5 * kl_divergence(q, m)

16 distances by 바죠

16 distances


ML의 핵심은 데이터들 사이의 거리를 잘 정의해서 최대한 분해능 있게 자료를 재배치하는 것이다.

차별모델, 생성모델 모두 아주 이상적인 거리 측정자가 필요하다. 
다양한 샘플링을 위해서도 우리는 이상적인 거리 측정자가 필요하다.

볼츠만 머신에서는 쿨백-라이블러 거리를 이용한다.

이러한 작업을 수행하기 위해서 우리는 distance measure가 필요하다.
# calculate the kl divergence
def kl_divergence(p, q):
return sum(p[i] * log2(p[i]/q[i]) for i in range(len(p)))
# calculate the js divergence
def js_divergence(p, q):
m = 0.5 * (p + q)
return 0.5 * kl_divergence(p, m) + 0.5 * kl_divergence(q, m)






1 2 3 4 5 6 7 8 9 10 다음

최근 포토로그



MathJax