본문 바로가기

전체보기256

3대 작도 문제 부피가 2배인 정육면체 작도하기임의 각도를 3등분하기정사각형과 넓이가 같은 원 그리기. 작도는 4칙연산과 루트를 사용하는 연산들이라고 한다. 그런데 위의 3가지 문제는 이 5가지 연산 이외의 것이 추가로 필요하므로 작도가 불가능하다고 한다. http://cafe.naver.com/geochips/5015 2015. 4. 2.
Projection Matrix, Eigenvector - 프로젝션 메트릭스프로젝션 매트릭스는 위와 같이 생긴 매트릭스를 말한다. (물론 트랜스포즈를 취하거나, 1이 1,1 항에 있어도 상관 없음)프로젝션 메트릭스의 정의는 AP=AP^2=AP^3 ... 을 모두 만족하는 것으로 아무리 곱해도 한번 곱한 것과 같아지는 행렬을 의미한다.즉 어떠한 공간상에 정사영되었기 때문에, 다시 정사영을 하여도 같은 것이다.간단히 생각해보면 a가 0일때의 프로젝션 매트릭스는 (2,2)의 성분만이 남아있는 직선위로 정사영 시킨 것이고, a가 1이라면 마찬가지로 어떠한 직선위에 정사영되어 행렬의 일부 성분만 남는 것을 의미한다.a가 2나 3등의 수 일 경우 각도가 직각이아닌 어떤 임의의 각도를 가진 직선으로 정사영시키는 것이라고 볼 수 있다. http://en.wikipedia... 2015. 4. 1.
Markov Random Field, MRF 인공지능 수업 필기. 마코프 랜덤필드란, 확률그래프 모델로써 맥시멈클릭에 대해 포텐셜펑션-확률테이블같은것 의 곱으로 전체 조인프 프로버블리티를 표현함. 로컬한 분포여러개로 전체분포를 표현한다. 클릭이란, 풀리커넥티드된 그룹을 의미함. 맥시멈클릭은 중복이 없는 최대크기의 그룹을 의미 확률그래프 모델-다이렉티드 그래프:베이지안 네트워크-언다이렉티드 그래프:마코프 랜덤필드 응용예시노이즈가 생긴 이미지에서 원본 이미지를 복원해내는 일이 역시 베이지안 쎄오렘-포스테리어공식으로 표현할 수 있다.y가 트루이미지, x가 관찰이미지p(y|x)=p(x|y)*p(y)/p(x) 위식에서 풀베이지안은 베이지안식에서 노멀라이즈 텀인 p(x) , 에비던스 확률분포를 고려한것. 세상읳모든데이터의 확률분포를 구해야함. p(x)를 안구.. 2015. 3. 26.
머신러닝의 응용사례 베이지안네트워크 : 인과 관계의 추론, 이런 일이 얼마나 가능할법한 일인가를 추정해봄. ex) 신용카드 사용시 도난여부 판단 마르코프 랜덤 필드 : 변수간의 조건부독립을 도입, 주변의 변수로부터 값을 추론 ex) 이미지 프로세싱 베이지안 어프로치 : 사전지식을 이용한 확률초기값과 데이터관측 후의 확률을 모두 고려 ex) 의사가 폐렴환자를 진단함. 진찰하기전에 이러한 시기에는 몇프로의 폐렴이 있더라 - 프라이어확률 / 환자를 직접관찰했더니 피를 토하더라 - 라이클리 후드 2015. 3. 24.
Unbiased Estimation, Biased Estimation # 불편 추정치(unbiased estimation) : 모집단(population)의 통계값을 정확하게 측정할 수 있는 방법. - 설문조사를 통해 모집단 평균 구하기 : n개의 샘플 그룹을 만들고 각 샘플 그룹에서의 평균의 평균을 내면 모집단의 평균을 정확하게 예측 가능함이 증명되었다. 그러므로 이는 unbiased estimation에 속한다. # 편의 추정치(biased estimation) : 모집단(population)의 통계값을 정확하게 측정할 수 없는 방법. - 설문조사를 통해 모집단 분산 구하기 : 모집단의 분산은 표본들의 분산과 항상 같지 않으므로(n-1배만큼 작음)이는 biased estimation이다.-> n개의 샘플 그룹을 만들고 각 샘플 그룹에서 분산을 내서 모으면 모집단의 분산.. 2015. 3. 23.
openFramework, ofxFenster 버그 수정 오픈소스 개발에 기여하였다. I found a little bug on the latest version "of_v0.8.4_vs_release". The 'glfw3' library is old or wrong. so some addons using the latest 'glfw3' doesn't work. I found on "ofxFenster". And there are some more bugs on ofxFenster...http://forum.openframeworks.cc/t/glfw3-library-has-some-problem/18889 --------ofxFenster 사용하기1. 오픈 프레임워크 0.8.4 다운로드 http://openframeworks.cc/download/ 에서 .. 2015. 3. 15.
Practical Theano Tutorial theano는 아주 강력하고 편리한 병렬처리 딥러닝 연구 라이브러리이다. 파이썬 기반이며 gpu 병렬프로그래밍을 할 줄 몰라도 쓸 수 있으며, 심볼릭 연산기반으로 사용이 편리하다. 들으면서 소스코드 및 메모등을 정리하였다. 2015. 3. 11.
Kalman Filter HMM는 모든 변수가 discreteKalman filter는 모든 변수와 히든도 가우시안임. 똑같이 히든스테이트가 있고, 히든 스테이트 간의 transition이 있음 2015. 3. 11.
Bayesian Network 베이지안 네트워크 (Bayesian Network)베이지안 네트워크는 Naive Bayes 모델의 빈약한 인과관계 구조(1 depth)를 훨씬 복잡하게 표현할 수 있는 조건부 확률 기반의 Probabilistic Graphical Model(PGM) 이다. 베이지안 네트워크의 핵심은 다음과 같다. 1. 조건부 확률을 사용한 인과관계 모델링2. 인과관계 모델(=structure)은 사람이 만든다.3. 그 모델의 조건부 확률 값을 데이터로부터 학습한다. 예를 들어 어떠한 일련의 사건과 관련이 있다고 생각되는 Binary(True/False) variable이 5가지라고 생각해보자. 그런데 이 변수들이 서로 복잡한 구조의 인과성을 가질 수 있다. 아주 유명한 아래의 그림을 예시로 들 수 있다. 만약 단순히 5.. 2015. 3. 10.
뇌과학 - Place cell 다음과 같은 격자 형식의 뇌 세포들이, 위치 구조를 코딩하고 있다. 2015. 3. 3.
추천하는 소프트웨어 스택 - GPU 병렬처리CUDATheano - 분산 병렬 처리용 머신러닝 라이브러리아파치 머하웃 - 분산 병렬 처리스파크카산드라하둡MapReduce - OS리눅스 우분투 - 웹Node JS : 자바스크립트로 서버사이드개발이 가능하도록 한 것(자바스크립트의 JSP기능을 코딩) -> 자바스크립트로 통일된 언어로 서버와 클라를 모두 개발할 수 있음. -> 트위터나 페이스북 등 대규모 서비스를 처리할 정도로 매우 빠른속도를 가짐: 기본적으로 JS가 요청에 대해 콜백함수로 처리하는 멀티 스레딩이라서 구조자체가 대규모 서비스에 적합하다고 함. Angular JS : 주로 클라이언트를 개발하는 데 쓰인다고함. Node JS는 서버Jquery : 자바스크립트 라이브러리PHP - 데이터베이스 매니지먼트NoSQL(Not onl.. 2015. 3. 3.
Sampling, Detailed Balance, Gibbs Sampling, Rejection Sampling MCMC, Dirichlet Process, RBM, Particle Filtering Sampling - C.D.F , P.D.F샘플링을 하려면 P.D.F 가 아닌 C.D.F 의 역함수를 알아야한다. PDF는 확률이 아니다. 확률의 미분값이다(적분한 값이 확률이므로). 따라서 0~1 사이의 확률에 대해 uniform distribution을 가지고 샘플링을 하려면, y축에 대해 [0,1]로 샘플링을 한 다음, C.D.F에서 그 y축에 해당하는 x값을 알아내는 것이 바로 샘플링이다.당연히 이를 위해서는 CDF의 역함수를 알아야 한다. (y축의 값이 어떤 x에 해당하는지 알아야함.)그러나 CDF의 역함수는 일반적으로 구하기가 매우 어렵다.가우시안 분포에서도 CDF가 적분으로 정의만 되어있지 계산이 안된다. 그러나 가우시안 분포는 엔지니어링적으로 샘플링이 거의 가능해서 proposal로 많이사.. 2015. 1. 27.
Theano 사용법 - Theano 에서 심볼릭 변수 print하기단, 반드시 최종 theano.function을 하는 computation graph에 해당 변수가 포함되어있어야 만 함.# this is the optimal solution for the checking the real shape outputs = Print(' outputs shape: ', attrs=['shape'])(outputs) http://deeplearning.net/software/theano/library/printing.html아래의 것들은 최적화가 아닌 여러 방법들.#print (outputs.get_value(borrow=True, return_internal_type=True).shape) # get_value is exist i.. 2015. 1. 20.
Ada boost 0.51의 정확도 (0.50 가 랜덤)를 가진 weak classifier를 여러개 합쳐 정확도 1 에 가까운 strong classifier 를 만들 수 있다. 각 weak classifier 마다 weight에 해당하는 계수가 있고, 각 classifier가 낸 error를 이 weight로 평균낸, 평균 error를 최소화하는 방향으로 학습을 함.그래서 특정 weak classifier가 틀리면 weight를 내리고, 맞으면 그대로 둠.이를 무한히 반복하면 점진적으로 acc가 같거나 좋아짐 2014. 12. 16.
평균과 분산 통계적 검정, T 검정, 카이스퀘어 검정 - T 분포 : 정규분포*자유도/카이스퀘어분포t분포는 데이터의 개수에 따라서 점점 뾰족하게 모양이 변하는 분포이다. 따라서 t분포를 이용한 검정 즉, t검정을 하면 그냥 정규분포로한 일반 검정보다 데이터의 샘플수가 적을때 보다 아웃라이어에 강한 특징이 있다.그대신 데이터가 30이상이 되면 가우시안과 분산이 거의 같아지므로 t분포를 쓰는 의미가 없다.보통 데이터의 개수가 적은 경우, 즉 데이터 1개짜리의 자유도가 작은 경우에 t분포를 사용한다. (t분포는 자유도가 작으면 양끝이 두툼해지는 모양이되어 아웃라이어에대해 robust해진다.)http://blog.naver.com/gracestock_1/120202114986 - 카이스퀘어 분포 : 표준정규분포를 제곱한 데이터의 분포통계에서 쓰는 자유도는 모두 같.. 2014. 12. 15.
C++ STL의 Vector 사용법 C 언어를 다룰 때 필요한 마인드 : 나는 기계를 제어하는 중이다. 진짜 멍청한 기계다. 정적할당은 해제할 필요가 없고 일반적으로 할당 속도가 더 빠르다.동적할당은 메모리 오버플로우 문제가 발생할 수 있고, 메모리가 연속적으로 할당되지 않을 수 있어 메모리 엑세스 속도가 느릴 수 있다. 따라서 new , delete 방식의 동적할당을 쓰지말고 vector를 써라.(vector를 1차원)그러면 heap corrupt 문제가 발생하지 않고, 메모리 연속성을 보장 받을 수 있다. - 2차원 배열 동적 할당 : new , deletefloat ** parray = new float*[sizeOfColumn]; for(int i=0; i< sizeOfColumn; i++){ parray[0] = new float.. 2014. 12. 4.
C++ 프로그래밍 - window에서 하위 폴더까지 파일 목록 가져오기#include "stdafx.h"#include "windows.h"#include "winbase.h"#include "stdio.h"#include "cstringt.h"#include "atlstr.h" bool FindnFile( const wstring strPath ) {bool bContinue = true;WIN32_FIND_DATAW FindFileData;HANDLE hFind;wstring strFindPath, strFileName;wstring FullPathName;strFindPath.assign(strPath+L"\\*.*");hFind = FindFirstFileW( strFindPath.c_str(), &FindFile.. 2014. 11. 26.
Visual Studio -error LNK2038: '_MSC_VER'에 대해 불일치가 검색되었습니다. '1600' 값이 '1700'(File.obj에 위치) 값과 일치하지 않습니다.Visual Studio 2012에서 컴파일된 라이브러리는 Visual Studio 2010 에서 참조할 수 없다.따라서 재컴파일을 하거나 또는 버전이 맞는 개발환경을 설정해야 한다 - 프로젝트 참조 설정에서, 상대 경로 디렉토리 지정 방법$(ProjectDir)..\을 이용하면, 프로젝트 파일 하위 경로에 대해 상대경로로 참조 가능하다. - 인텔리센스(IntelliSense) 저장 경로 바꾸기인텔리 센스 : 컨트롤+스페이스를 누르면 자동완성이 되는데 그러한 기능을 제공하기 위한 데이터베이스그러나 프로젝트 폴더내에 위치하게 되면 큰 용량을 차지하여.. 2014. 11. 24.
CUDA Programming CUDA 프로그래밍에서의 위험요소 https://drops.dagstuhl.de/opus/volltexte/2018/8984/pdf/LIPIcs-ECRTS-2018-20.pdf https://www.cs.unc.edu/~tamert/papers/rtss17.pdf https://github.com/yalue/cuda_scheduling_examiner_mirror 공식문서 https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#abstract 기본 튜토리얼 https://cuda-tutorial.readthedocs.io/en/latest/tutorials/tutorial01/ http://www.youtube.com/watch?v=m0nheP.. 2014. 11. 17.
Digital Signal Processing, Parallelization 과거에는 신호처리를 아날로그 방식(하드웨어에서 처리)으로 많이 했었으나, 하드웨어의 발달로 빠르고 자유로운 프로그래밍이 가능한 디지털 방식이 선호되고 있다.물론 디지털 방식은 아날로그 방식에 비해 속도가 느리므로, 아직도 성능이 중요한 부분은 아날로그 방식을 사용하고 있다. 즉 기술이 발달될 수록 기존 기술은 디지털화가 되고, 성능이 중요한 새로 개발된 기술은 아날로그가 담당하게 된다.Embeded System이란 단일 목적으로 개발된 (일종의 아날로그) 하드웨어이다. 아날로그 방식 : 상대적으로 저전력, 저비용에 고성능이다. 그러나 한번 완성된 제품은 수정이 불가능하고 개발 기간이 매우 길고, 단일 목적만 가능하다.디지털 방식 : 상대적으로 고전력, 고비용에 저성능이나 반대로 수정이 언제든지 가능하며 .. 2014. 11. 17.