본문 바로가기

전체보기256

Kernel Density Estimation, Gaussian Mixture Model 비 모수적 방법 (Non-parametric method) : Model의 구체적인 스펙을 정하지 않고, 데이터에 따라 저절로 정해지도록 하는 방법 Kernel Density Estimation : N개의 데이터가 주어졌을 때, 각각의 데이터를 평균으로하는 N 개의 가우시안 분포를 가정한다. 이때 가우시안의 분산은 임의로 정한다.(그래도 가장 중요한 평균은 데이터에 맡기므로 non-parametric에 해당함) 그리고 N개의 가우시안을 모두 더하여 다음과 같은 Model을 만든다. 가우시안 믹스쳐 모델 (Gaussian Mixture Model) : 가우시안 믹스쳐 모델도 가우시안을 기본으로 모델링을 한다는 점은 같지만, 가우시안의 개수를 직접 지정해주기 때문에 parametric 에 해당한다. 이 모델.. 2014. 10. 30.
Bayes Error 베이즈 에러 (Bayes Error) Classification 문제에서, P(Y | X)에 대한 확률 분포(underlying true distribution)를 알고 있다고 가정했을 때, 이론적으로 도달할 수 있는 최소의 classification error를 의미한다. https://en.wikipedia.org/wiki/Bayes_error_rate 단, 여기서 중요한 것은 아무리 underlying true distribution를 알고 있다하더라도, 이를 이용해 class label을 inference하는 방법이 반드시 P(y1, x)와 P(y2, x)를 비교해서 확률이 높은 쪽을 정답으로 골라야만 이 Bayes Error에 도달할 수 있다. 이 방식이 아닌 모든 inference 방법은 이론.. 2014. 10. 27.
안드로이드 Thread 사용하기 1) 어떤 클래스의 내부 클래스로 원하는 스레드를 만든다. class CaptureThread extends Thread{ int counter = 0; boolean running = true; void stopRunning(){ running = false; }@Overridepublic void run() {super.run();while(running){try {Thread.sleep(3000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}counter++; mCamera.startPreview(); mCamera.takePicture(null, null, jpegCallBack); .. 2014. 10. 5.
Polynomial Regression, Non-Linear Features 변수들이 선형적인 관계만을 갖는 Linear Regression 의 경우 모델링이 극히 단순하고 학습이 쉽다.그러나 변수들이 비선형적인, 예를 들어 서로 곱샘이나 제곱 등의 관계를 갖는 경우 다소 어려운 모델링이 필요하다. Ex) 집의 가격 = f(면적, 도로와의 거리, 층 수) Ex) 배란다의 면적 = f(집의 가로, 세로 길이,층 수) Ex) 키 = f(유전적 요소(부모의 키), 환경적 요소(영양공급상태)) 이러한 비선형적 문제는 Neural Network 중 가장 간단한 Multi-Layer Perceptron 만 사용하여도 충분히 쉽게 풀린다. 왜냐하면 Neural Network 는 충분한 Hidden Node를 가질 때, 그 어떤 함수도 근사시킬 수 있는 Universial Function Ap.. 2014. 10. 3.
Information Theory, Distance Metric on PDF 1. Information Theory (=Shannon's Information Theory) 정보량에 대해 기술하기 위한 이론으로 엔트로피를 핵심 개념으로 사용하며, 기계학습을 비롯해 셀 수없이 방대한 분야에서 활용되고 있다. * Shannon's Bits : Information의 양(정보량)을 나타내기 위해 샤논은 bit를 사용하였다. 먼저 정보량을 다음과 같이 정의한다. 확률 p인 사건의 정보량 = 1/p 를 나타내는데 필요한 bit의 개수 = log_2(1/p) 즉 정보량의 정의는 log_2(1/p)인 것이다. 이에 따라 확률(o)가 낮은 사건일수록 그값을 표현하는 데 bit가 더 많이 필요하게 된다. 즉 낮은 확률의 사건일 수록 정보량이 더 큰 것이다. http://en.wikipedia.o.. 2014. 9. 29.
표본평균의 평균과 분산 / 모평균 추정에 대한 비판 표본평균의 평균 표본평균이 모평균과 같은게 아니라, 표본평균의 평균이 모평균과 같다. 가장 크게 착각하는 점이 모집단에서 임의로 N개의 샘플을 뽑은 단 1개의 표본집단의 평균은 절대 모평균과 같지 않다. 고등학교 확률에서 말하는 개념은, 이러한 N개 샘플을 뽑은 표본집단이 충분히 큰 수인 M개가 있을 때, 각각의 표본집단을 평균내서 만든 표본평균들의 평균이 모평균과 같아진다는 말이다. 이 경우 표본평균들의 분산이 모집단의 분산보다 작은 이유는 쉽게 납득 가능하다. 당연히 표본평균들은 이미 1차적으로 표본집단에 대해서 평균이 취해지는 과정에서 분산이 상당히 사라지기 때문이다. 즉, 이 표본평균이라는 확률변수는 아래와 같은 분포를 따른다. 즉, 이 "표본평균"이라는 녀석은 표본집단을 평균 냈을 때의 변수이고.. 2014. 8. 14.
Generative Model, Discriminant Model Generative Model : Bootstrapping이 가능한 모델이라고 생각하면 됨. 즉 학습한 input 데이터의 분포를 따르는 데이터를 생성해낼 수 있다. 즉 input과 속성이 동일한, 새로운 input2 데이터를 만들 수 있다. - PGM(MRF, BN 이 해당됨) Discriminant Model : 재생성이 불가능하고 오직 분류만 가능하다. -SVM, DNN------ 탐미첼 책에서 든 예시(Naive-Bayes 와 Logistic Regression의 분류에서의 비교. 둘다 거의 비슷한 방식인데 하나는 Generative, 하나는 Discriminant 임)Generative Model은 데이터가 작을 때 유리하고,(간단히 생각해보면 Resampling을 통해 데이터를 더 많이 취하는.. 2014. 8. 12.
확률 법칙, The Rules of Probability. sum rule과 product rule은 연속확률 변수에대해서도 똑같이 사용 가능하다.(시그마 대신 적분을 사용) 위의 두 공식으로부터 유도되는, 또 다른 아주 자주 쓰이는 공식 (sum rule에 product rule을 대입하면 유도됨.) Conditional Probability , P(A|B)에서 자주 헷갈리는 모든 경우를 더해서 1이되는 개념.앞에있는 확률 변수 A가 실제로 계산되어지는 확률변수이다. given B는 그냥 단순히 조건일 뿐, P(A|B)는 A에대한 확률이다.따라서 더해서 1이 되는 것은 given이 같을때, 앞의 확률변수의 모든 경우를 더했을 때 1이 되는 것이다. (모든 given을 더해서 1이 되는 것으로 종종 헷갈림) 2014. 8. 11.
테일러 급수, 푸리에 급수 - 다항함수 : y=1+x^2과 같은 다항식만으로 표현 가능한 함수- 초월함수 : 로그함수, 지수함수, 사인함수와 같이 다항식으로는 표현할 수 없는 함수 - 테일러 급수의 의미 : 초월함수를 다항함수로 근사한다. - 테일러 급수의 직관적 이해여기서는 엄밀한 증명이나 정의보다는 테일러 급수를 거꾸로 분석해 최대한 직관적으로 이해해보고자 한다. 우선 테일러 급수는 작은 구간에 한하여, 초월함수를 다항함수로써 근사시키는 것이다. (다항식으로 근사하는 이유는 수식의 계산이 엄청나게 쉽고 편해지기 때문이다) 이때 테일러 급수에 왜 미분계수가 사용 될까?x=a 지점에서의 초월함수가 근방의 좁은 구간에서 어떤 임의의 다항함수 g(x)와 같다고 가정해보자.그럼 이때 다항함수는 g(x) = C1 + C2*x + C3*x.. 2014. 8. 10.
Jacobian Matrix, Fisher Matrix, Hessian Matrix, Jacobian Matrixoutput이 1차원 실수인 함수를 n차원 벡터로 미분하면 자코비안(1*n)행렬이 된다.output이 1차원 실수인 함수를 n차원 벡터로 2번 미분하면 헤시안(n*n)행렬이 나온다. (이는 자코비안을 한 다시 n짜리 벡터로 미분한 것과 같다.) (행렬을 벡터가 아닌 스칼라로 미분할 때는 그냥 하나의 변수에 대해 미분하면 된다.) 여기서 맨 오른쪽의 matrix는 함수 f의 output이 1차원 실수일 때는 무시해도 된다.(맨 윗줄만 존재하는 것임.) Jacobian Matrix : 어떤 행렬을 벡터 각각의 변수들로 차례차례 바꿔가면서 한 번 씩 미분한 행렬이다.어떤 행렬의 성분에 대해 첫 번째 줄은 첫 번 째 성분에 대해 모든 변수들로 차례차례 한 번 씩 번갈아가면서 미분. 두.. 2014. 8. 6.
Weight Decay, Regularization, Overfitting, Validation set, Drop out, ReLU Overftting : 뉴럴 네트워크를 학습하다보면, 오버피팅이 쉽게 일어난다.오버피팅은 training set을 너무 많이 학습해서, training set에대한 error는 매우 줄어들지만, 문제에대한 일반성이 떨어져서 test set 또는 validation set(오버피팅 여부를 확인하기위해 error를 측정하기위한 데이터 셋으로, test set도 아니고 training set도 아닌 데이터)에대한 error가 증가하는 것을 의미한다. Regularization : 이러한 현상은 weight가 처음에는 매우 작게 세팅되어 있다가, 점점 커지는 것과 비례해서 오버피팅이 일어나는 것으로 해석된다.따라서 이것을 막기위해 weight decay(=regularization) 을 사용한다.이것은 Erro.. 2014. 8. 4.
Deep Belief Network DBN : 보통 MLP에서 Hidden Layer의 개수가 1개보다 큰 경우 Deep이란 말을 쓰는 것 같다. MLP에서 Deep한 뉴럴넷을 학습시키기위해 BackPropagation 이 개발되었으나, Hidden Layer의 개수가 많아질 수록 아래쪽 Layer까지 제대로 error를 전파시키지 못하는 문제가 생겼다.그래서 이를 해결하기위해 2006, Hinton 이 만든 DBN은 RBM을 이용해서 MLP의 Weight를 input 데이터들만을 보고(unsuperivesd로) Pretraining 시켜서 학습이 잘 일어날 수 있는 초기 세팅을 하는 방법을 고안하였다. (기존에는 초기조건으로 그냥 0~0.1 사이의 weight를 랜덤으로 주었음.)RBM은 두 레이어가 서로를 좀 더 잘 표현할 수 있는 방.. 2014. 8. 1.
RBM, Contrastive Divergence http://deepcumen.com/2015/04/restricted-boltzmann-machine/#comment-437http://147.46.219.139:8889/tree/DeepLearningTutorials/code RBM 학습 알고리즘 다시 정리 :cost = T.mean(self.free_energy(self.input)) - T.mean(self.free_energy(chain_end))이 cost function을 최소화하는 gradient descent를 수행한다. 이 cost function은 (input데이터에 대한 free energy)-(input데이터로 k번 왔다갔다하면서 gibbs 샘플링한 V노드의 데이터의 free energy)이다. 이 둘이 최대한 같아지도록 grad.. 2014. 7. 23.
MCMC, Metropolis-Hastings, Gibbs Sampling Markov Assumption(=Markov Property) : 직전 사건에의해서만 현재 사건이 영향을 받는 속성Chain : discrete한 Time Sequence 사건Markov Chain : Markov Assumption 을 만족하는 ChainMonte Carlo Method : 다음과 같이 여러개의 표본을 추출해서 전체적인 분포를 파악하는 방법론 Sampling : 해당 모델을 만족하는 데이터를 생성, 추출해내는 것. 단 그 모델의 확률 분포에 비례하여 확률 밀도가 높은 곳에서 그에비례하게 더 많은 데이터가 나오도록 추출해야 한다. Markov Chain Monte Carlo : Markov Chain에서 샘플링을 하기위해 Monte Carlo Method를 써서 확률 분포가 반영된 데이.. 2014. 7. 22.
P, NP, NP-Complete, NP-Hard, 시간 복잡도 # 아주 직관적인 설명P: 폴리노미얼 타임으로 완전한 정답을 구할 수 있는 쉬운 문제 NP: 임의의 값 하나에 대해서만 그것이 정답인지 아닌지 폴리노미얼 타임이하로 계산가능한 검산만 쉬운 문제보통 NP를 풀때는 휴리스틱 탐색 등의 계산적인 접근법을 사용한다. 위의 정의에서 P 문제는 애초에 폴리노미얼 타임으로 정답을 구할 수 있으므로, 당연 그 시간내에 검산도 가능하다. 따라서 P ⊂ NP이다. NP-Hard: NP-Hard는 계산복잡도가 NP일 수도 있고, 그보다 더 어려울 수도 있다. NP-Hard >= NP영어로는 이렇게 표현한다. "at least as hard as the hardest problems in NP". 그런데 여기서 어렵다의 의미가 조금 복잡하다. 어떤 NP문제를 다른 문제로 다항.. 2014. 7. 22.
[NeuroScience] New born neurons 사이언티픽 아메리칸에 올라온 글.간단히 요약하면, 뉴런은 성인이 되어서도 계속해서 새로 생겨나며, 이 새로 생겨난 뉴런은 기존의 뉴런들에대해 억제 시그널을 생성해 새로운 환경에대한 패턴 인식을 더 잘하게끔 도와준다.관련해서 불안 장애 또한 새로운 환경과 위험한 환경을 잘 구분하지 못해서 생기는 것이며, 이것을 새로 태어난 뉴런들이 죽지않게끔 유도해 해결할 수 있을 것이라고 제안한다. 2014. 7. 22.
RESTFUL API 철학 : HTTP 헤더에 이미 필요한 기능들이 다 포함되어있으니까, HTTP 헤더를 최대한 사용하자. 기존에는 표준으로 정해진 웹 통신 규약이 없었다. 이를 표준화 시키기위한 시도가 바로 REST API.REST API 는 엄격한 규약이 아니고, 개발 방법론이자 개발 철학이다. 규칙들1. Stateless, 인증에 있어서 세션과 쿠기를 쓰지 않는다. 대신에 토큰을 사용한다.2. Cacheable, 원래의 http처럼 캐쉬를 쓸 수 있다.3. Client-Server, 클라이언트 서버 모델4. Layered System, 분산 서버를 사용. 세션을 쓰면 이부분을 구현하기가 힘듬(ex)페이스북 서드파티 로그인 같은것을 구현해내기 어려움) 그래서 토큰이 중요하다.5. Code on Demand(선택적), 다양.. 2014. 7. 22.
Dimension Reduction, Curse Of High Dimensionality 고차원의 저주 (Curse Of High Dimensionality) : 고차원에서는 다음과 같은 현상이 일어나 기계학습에서 여러 문제가 발생한다.1) 차원이 무한으로 갈 수록 임의의 두 점간의 거리가 무한대로 발산한다. 그러므로 당연히 임의의 두점에 대한 거리의 비가 1로 수렴한다.(즉 임의의 점 4개를 뽑고, 2점들 간의 거리의 비가 1로 수렴한다) 2) 데이터의 instance가 고차원의 공간에서는 보다 희소(Sparse)해진다. 따라서 특정한 차원(Feature)를 충분히 설명할 수 없어지고, 부족한 데이터는 곧 모델의 Generalization Ability를 약화시켜 Overfitting이 일어난다. 차원 축소 (Dimension Reduction) :차원 축소는 고차원의 저주를 비롯해 여러가.. 2014. 7. 18.
Linear Discriminant Analysis (Latent Dirichlet Allocation 과 약자가 똑같으니 주의하자.) 선형판별분석법은 PCA와 그 원리가 거의 유사하다. PCA는 label 즉, 데이터의 클래스에대한 정보를 쓰지 않는 unsupervised learning인데비해, LDA는 클래스에대한 정보를 갖고 분석하는 supervised learning이다. 원리는 각 데이터들을 분리하는 최적의 정사영을 계산하는 것이다. 클래스가 2개가 있다면, 각각을 eigen vector를 이용해서 대각화 시켜, 서로 직교하도록 만드는 것이라고 한다. http://funnypr.tistory.com/36 2014. 7. 18.
라그랑지 승수법, KKT condition 라그랑지 승수법(Lagrange multiplier) : 어떤 함수(F)가 주어진 제약식(h)을 만족시키면서, 그 함수가 갖는 최대값 혹은 최소값을 찾고자할 때 사용한다. L(x,λ) = F(x) + λ*h(x) 으로 표기하며, (x,λ)변수들로 각각 편미분 한 식이 0이 되는 값으로 해를 구한다. 이러한 계산의 원리는, 사실 두 함수의 기울기가 같아지는 공통접선을 구하는 것이다.(위 수식이 가능한 이유는, F(x) = F(x) 에서 양변에 0에 해당하는 제약식( 0=h(x) )을 더해서 F(x) + 0= F(x) + λ*h(x) 으로 놓고 문제를 푼것이라 생각해볼 수 있다.) http://blog.naver.com/mindo1103/90154212128이글에 원리가 아주 잘 설명되어 있다. * 부연 설.. 2014. 7. 18.