본문 바로가기

전체보기256

무선 통신의 원리 먼저 무선 통신은 전자기파를 이용하는 방식과 음파를 이용하는 방식으로 크게 나눌 수 있다. 대부분의 우리가 산업에서 쓰는 무선 통신은 전자기파를 이용한 통신 방식이며, 음파를 이용하는 통신은 일상생활에서 우리가 대화할 때 이외에는 크게 쓰이는 경우를 찾진 못하였다. 다만 통신이 아닌 음파의 응용으로는 보통 초음파진단이나, 초음파비파괴 검사, 수중음파탐지, 박쥐와 돌고래의 음파 통신 및 탐지 등이 있다. 물론 전자기파도 x-lay나 투사전자현미경 등에서 탐지를 위해 사용한다.https://ko.wikipedia.org/wiki/%EB%AC%B4%EC%84%A0_%ED%86%B5%EC%8B%A0 여기서 다시 전자기파는 주파수에 따라, 다양한 이름을 가지며 통신과 탐지에 사용이 된다. 그럼 우선 전자기파의 주.. 2015. 8. 10.
Word2Vec, Bag-Of-Words, 최신 word embedding - Word2Vec의 배경 Word2Vec는 원래 인공 신경망 연구에서 태어났으며 같은 맥락을 지닌 단어는 가까운 의미를 지니고 있다는 전제에서 출발한다. Word2Vec는 텍스트 문서를 통해 학습을 진행하며, 어떤 단어에 근처(전후 5-10단어 정도)에서 등장하는 다른 단어들의 출현 빈도를 이용한다. 이는 유사한 의미의 단어들은 문장의 가까운 위치에서 함꼐 출현할 가능성이 높기 때문에, 학습을 반복해 나가는 과정에서 같이 나오는 단어들이 가까운 좌표(벡터)를 갖도록 학습해나간다. Word2Vec 개발에 주도적인 역할을 담당한 Mikolov는 14년 8월 구글을 퇴사하고 페이스북으로 이적한 것으로 보이며, 벡터 해석을 단어에서 구문까지 확장시킨 Paragraph2Vec의 구현에 주력하고 있다고 한다. P.. 2015. 8. 3.
Ubuntu - virtualenv, scrapy 사용법 # GPU 모니터링 : watch -0.5 nvidia-smi (0.5는 시간) watch -n 0.5 "nvidia-smi | grep MiB" # CPU 모니터링 : top (또는 ps? 근데 top이 더 맞는듯) # GPU를 사용중인 Python 프로세스 종료 : 이 방식으로 해야만, 안전하게 다른 프로그램에 영향을 미치지 않음.nvidia-smi python process의 PID확인 kill -9 PID # 모든 GPU 프로세스 종료 : 이 명령을 사용하면, X window도 죽어버려서 위험하다. 위 방법을 추천kill -9 $(nvidia-smi | sed -n 's/|\s*[0-9]*\s*\([0-9]*\)\s*.*/\1/p' | sort | uniq | sed '/^$/d')https://.. 2015. 7. 31.
RNN의 Vanishing Gradient와 Exploding Gradient Spectral radius : 아이겐 벨류의 절대값중 가장 큰 것https://en.wikipedia.org/wiki/Spectral_radius RNN의 gradient가 0에 가깝게 사라저기나, 폭발적으로 발산하는 이유는 hidden to hidden Weight가 time unfolding을 하는 bptt의 과정에서 반복해서 곱해지기 때문이라고 한다. 만약 이 weight의 spectral radius가 1보다 작으면 결국엔 vanishing을 하게 되고, 1보다 크면 exploding을 하게 된다. 이를 해결하기 위해 L1, L2 norm regularization을 weight에 적용하여 exploding을 막거나 하는 방법 등이 사용된다.그러나 gradient vansihing 문제는 해결하.. 2015. 7. 8.
Hilbert Space, Orthogonality, Fourier Transformation Hilbert Space : 일반적으로 우리가 사용하는 유클리디안 스페이스를 좀더 일반적인 영역까지 확장한 개념.우선 우리가 사용하는 힐버트 스페이스는 무한차원의 벡터 스페이스를 의미한다. 이 힐버트 스페이스에서 두 벡터의 내적은 두 함수의 곱셈에 대한 적분으로 정의된다. 힐버트 스페이스 상에서의 한 점(벡터)은 무한개의 원소를 갖고 있어 함수의 형태로 표현을 해야한다. 그렇기 때문에 두 벡터의 내적은 결국 두 함수의 곱셈에 대해 적분하여 모든 점들의 정보를 합한 것이 된다. * 전문가의 제대로된 설명 * Orthogonality : 직교성을 기하학적으로 이해하면 90도로 비틀어진 축이다. 그러나 이렇게 이해하면 무한 차원에서는 다소 헷갈릴 수 있다. 단순히 대수적으로 내적의 값이 0 이다라고 생각하면 .. 2015. 7. 8.
다양한 Performance Measure in NLP, ASR Natural Language Generation 참고할 글: https://stats.stackexchange.com/questions/242617/comparing-perplexities-with-different-data-set-sizes Log Likelihood: log P(x|θ), 감독학습인 경우 log P(y|x, θ) 일반적으로 라이클리후드를 서로 다른 크기의 데이터 셋에 대해서 쓰려면 기하평균을 취해야한다. 왜냐하면 라이클리후드의 절대값은 항상 증가하는 방향이기 때문에 데이터의 크기가 같이 않으면 성능 비교가 의미가 없다. 따라서 마찬가지로 분류 문제에서의 -log라이클리후드인 크로스엔트로피는 데이터의 크기 N으로 나누어주면 된다. Log Likelihood per word: { log.. 2015. 7. 1.
IPython Notebook 사용법 http://ipython.org/ipython-doc/1/install/install.html#installation-using-easy-install-or-pip IPython server 설치 및 설정.Ipython notebook 설치 1) easy_install ipython[all] (pip 로 uninstall하면 충돌함) 2) sudo pip install "ipython[notebook]" 3) sudo pip install "ipython[notebook]==3.2.1" (2 번 방식은 최신 버전이 설치됨. 3번은 3.2.1 버전이 설치됨.)Ipython profile 생성 ipython profile create nbserverIpython profile 수정: 링크 참조, pem k.. 2015. 6. 2.
CNN, Spectrogram 을 CNN으로 학습 CNN(Convolutional Neural Network)model.add(Convolution2D(96, 1, 11, 11, subsample=(4, 4))) number_of_filter / stack_size / row / column size_of_filter / convolution_size(subsample)즉 96개의 피쳐를 추출하는, 11*11*3 사이즈의 filter를 만들것임. 이 filter는 (4,4)간격을 가지며 convolution함stack이란 : 일반 이미지는 (R,G,B)형태의 3차원 vector로 데이터가 구성되어 있음. 따라서 stack_size가 3이어야만 돌아감. 즉 r평면, g평면, b평면이 3층으로 쌓여 있는 3차원 매트릭스임.그래서 이 filter하나에는 11.. 2015. 4. 22.
Fourier Transform, Power Spectrum, Spectrum Fourier Transform (푸리에 변환) : 어떤 파동에 대한 주파수의 분포를 보는 방법. 원래 파동의 Y 축이 에너지이면 에너지-주파수 분포가 되고, 진폭이면 진폭-주파수 분포가된다. 즉 X 축은 시간에서 주파수로 되고, Y축은 원래 Y축값에 대한 주파수상의 분포를 의미한다. [시간-진폭]으로 된 time domain을 [주파수-분포]로 된 frequency domain으로 관점을 바꾸어 해석하는 방법 푸리에 변환은 푸리에 급수를 임의의 비주기적인 함수에도 적용할 수 있게 확장한 푸리에 적분(주기를 무한대로 보냄)을 의미한다. 직관적으로 이해하자면 임의의 함수를 여러개의 주기를 가진 코사인 N개의 합으로 표현한 것이 푸리에 변환이고, 이때 그 코사인의 주기와 계수들의 스펙트럼을 표현한 것이 fr.. 2015. 4. 22.
확률 통계 용어정의 0. 확률 분포에 대한 기본 용어probability density function (pdf): 연속 확률변수가 갖는 확률의 모양 probability mass function (pmf): 이산 확률변수가 확률의 모양 cumulative distribution function (cdf) : pdf 나 pmf 적분한 것 = 확률 probability distribution function (pdf) : 확률 분포에 대한 일반적인 텀. 즉, 위의 3가지 모든 확률 분포에 대해 다 쓸 수 있는 용어임. 즉 사용시 혼동의 여지가 있음. (보통 cdf 를 가르키는 말로 좀 더 자주 사용됨.) 1. Frequentist view VS Bayesian view of “probability”The biggest dif.. 2015. 4. 20.
BI CM세미나 동영상 Playlist https://www.youtube.com/playlist?list=PLzWH6Ydh35ggVGbBh48TNs635gv2nxkFI ----------Online Convex Optimization https://www.youtube.com/watch?v=BK_K1cYG3VU Multivariate Density Estimation by Bayesian Sequential Partitioning https://www.youtube.com/watch?v=HVY6QpPdN2w Dirichlet Process https://www.youtube.com/watch?v=O2NDm_XOnS0 Dynamic Cue Combination in Distributional Population Code Net.. 2015. 4. 20.
신경과학의 원리 1 수업 - Chapter 5. Ion Channels Principles of Neural Science 5th Edition- 세포막을 투과하는 성질 1) 크기가 작을 수록 세포막을 잘 투과한다. 2) 전하를 띌 수록 세포막을 투과하지 못한다. 이온의 경우 이 2번 성질 때문에 세포막을 투과할 수 없다. 이온은 세포의 활동에 필수적인 물질이므로 반드시 세포막을 통과해야 한다. 그래서 이온 채널이 필요하다. - Ion Channel의 특징 1) 이온 채널은 이온을 선택적으로 투과시킨다.(이온에 대한 selectivity가 있다.) -> 필요한 이온을 상황에 따라 골라서 받아들이거나 내보내는 것이다.2) 이온 채널은 멤브레인에 integral한 단백질이다. -> membrain에 박혀 있는 굴뚝 내지는 창문으로 생각할 수 있다.3) 이온채널을 열고 닫는 ga.. 2015. 4. 16.
신경과학의 원리 1 수업 - Chapter 4. The Cells of the Nervous System Principles of Neural Science 5th Edition : Chapter 4. The Cells of the Nervous System - Glial cell(신경교세포)는 뉴런과 달리 신경 전달 기능을 갖고 있지는 않지만, 신경세포를 지지하고 중추신경계의 대사 기능에 관여하는 세포. 준 신경세포 같은 느낌? 뉴런과 glia는 비슷한 특징이 많음. 다만 뉴런은 다른 뉴런에게 빠르고 정확하게 정보를 전달하는 것이 가능함. 이는 2가지 특징에 의해 이루어짐. 1) morphological and functional asymmetry : 형태와 기능이 비대칭적으로, 뉴런은 receptive dendrite가 한쪽 끝에 있고, 다른 한쪽에는 axon이 있음. 2) electrically and.. 2015. 4. 16.
TDNN, RNN, LSTM, ESN TDNN(Time Delay Neural Network) : 그냥 일반적인 MLP인데, input 데이터로 시간에 대해 (t, t-1, t-2) 인 데이터를 한 번에 넣는 방법. 시간을 고려한 모델이 아닌 데에 discrete 한 시간 데이터를 다룰 때 쓰는 가장 간단하고 대표적인 방법. Continuous 한 시간 데이터의 경우는 위 방법으로 할 수가 없다. 그래서 sliding windowing 방식으로 일정한 길이의 데이터를 일정 부분씩 겹치도록(보통 50%) 전처리 한 뒤 사용한다.(강제로 discrete하게 나누고, 대신 50%씩 겹치도록) 그러나 TDNN 방법은 한정된 데이터의 time sequence만 학습할 수 있기 때문에(예를 들면 t, t-1,t-2 면 third order) 시간데이터.. 2015. 4. 15.
학부생 미국 취직 팁 페이스북 생활 코딩 페이지에 Sak Lee 라는 분이 올린 글인데, 좋은것 같아서 퍼왔다. 1. 영어 기본 2. 학점 ( 2015. 4. 14.
빅데이터 플랫폼 - CRM(Customer relationship management) : 빅데이터가 있기 전, 고객 정보를 분석하여 경영 상 의사결정에 도움을 주는 분석 기술http://ko.wikipedia.org/wiki/%EA%B3%A0%EA%B0%9D_%EA%B4%80%EA%B3%84_%EA%B4%80%EB%A6%AC - DW(Data Warehouse) : 마찬가지로 빅데이터가 있기 전, 데이터를 분석하여 경영 상 의사결정에 도움을 주는 분석 기술을 의미http://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0_%EC%9B%A8%EC%96%B4%ED%95%98%EC%9A%B0%EC%8A%A4 - Hadoop : 빅데이터를 처리하는 오픈소스 분산 파일 시스템. 아래 블.. 2015. 4. 13.
오픈소스 라이센스 및 개발 가이드 BSD 3-Clause LicenseA permissive license similar to the BSD 2-Clause License, but with a 3rd clause that prohibits others from using the name of the project or its contributors to promote derived products without written consent.매우 관대한 라이센스로, 본 프로젝트의 원래 이름 또는 contributor에 대한 copyright 문구를 삽입하는 한 대부분의 이용이 가능하다. https://github.com/NVIDIA/nv-wavenet/blob/master/LICENSE.TXThttps://en.wikipedia.org/w.. 2015. 4. 13.
기계학습 오픈 소스 정리 Deep Learning주로 위 사이트에서 오픈소스로 링크된 리스트중 실제로 직접 실행해본 소스를 정리한다.http://deeplearning.net/software_links/ CuDNN : Theano : ConvNet :Torch :Caffe : RNNLM : C++로 되어있음, 윈도우 환경에서 실행이 안되는 것으로 판단됨. 우분투에서 실행해야한다는 이야기를 들음. 코드는 약간 분석하기 힘들어 보이나, 전체적으로 간결한 편임. http://www.fit.vutbr.cz/~kombrink/personal/rnn-kaldi/ RNNLIB : RNN이 구현된 몇안되는 라이브러리. 마찬가지로 리눅스 기반으로 보이며 LSTM, Bidrectional LSTM, Multidimensional RNN 등등의 알.. 2015. 4. 13.
MCMC, Sampling 예제 C언어를 기준으로 샘플링을 이해해보자 float arbitraryFunction(float x){ return integral(x*10+10,0,x); }이런 임의의 함수가 있다고 하자. 우리는 return integral(x*10+10,0,x); 이 부분을 모르고 있으며 단지 함수를 호출할 수 만 있다. 이상황에서 이 함수가 어떤 분포를 갖는지를 알아내보자. uniformrandom=(rand()/RAND_MAX)*10000; //0~10000사이의 임의 실수 발생 float observed = arbitraryFunction(unformrandom);이런식으로 유니폼 랜덤으로 값을 뽑고 함수에 넣어, 관측되는 값들을 살펴보아서 임의의 함수를 알아내는 것이다 2015. 4. 5.
Support Vector Machine SVM(Support Vector Machine) : 서포트 벡터 머신은 클래시피케이션 문제를 푸는데 쓰이는 매우 강력하고 빠른 알고리즘이다.학계 뿐만이 아니라 산업계에서도 실제 문제를 푸는 데 사용되며 MLP의 느린속도를 보완하며 2006년 이전까지 기계학습의 주류 알고리즘이었다.매우 수학적으로 잘 정리되고 논리적이어서 전처리가 잘된 피쳐가 있을 경우 아직도 최고수준의 성능을 보장한다. 간단히 원리를 이해하면, 2종류의 데이터들이 맵핑되는 공간에서 두 그룹을 나누는 경계선을 찾는데, 이 경계선은 두 데이터와 직선의 거리가 가장 커지는 maximum margin을 찾도록 되어있다. 그런데 어떤 데이터는 전처리를 아무리 잘하여도 직선으로 나눌 수 없는 분포를 이루기도 하는데, 이를 나누기 위해서는 임의의 .. 2015. 4. 3.